no
no
permalink
yes
hide
hide
show
hide
show
hide
hide
no
yes
no
no
yes
1
380px
fixed
yes

tc-btn-boxed
no
yes
hide
hide
hide
hide
hide
show
hide
hide
{
    "tiddlers": {
        "$:/Acknowledgements": {
            "title": "$:/Acknowledgements",
            "type": "text/vnd.tiddlywiki",
            "text": "TiddlyWiki incorporates code from these fine OpenSource projects:\n\n* [[The Stanford Javascript Crypto Library|http://bitwiseshiftleft.github.io/sjcl/]]\n* [[The Jasmine JavaScript Test Framework|http://pivotal.github.io/jasmine/]]\n* [[Normalize.css by Nicolas Gallagher|http://necolas.github.io/normalize.css/]]\n\nAnd media from these projects:\n\n* World flag icons from [[Wikipedia|http://commons.wikimedia.org/wiki/Category:SVG_flags_by_country]]\n"
        },
        "$:/core/copyright.txt": {
            "title": "$:/core/copyright.txt",
            "type": "text/plain",
            "text": "TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright (c) 2004-2007, Jeremy Ruston\nCopyright (c) 2007-2017, UnaMesa Association\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
        },
        "$:/core/icon": {
            "title": "$:/core/icon",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path d=\"M64 0l54.56 32v64L64 128 9.44 96V32L64 0zm21.127 95.408c-3.578-.103-5.15-.094-6.974-3.152l-1.42.042c-1.653-.075-.964-.04-2.067-.097-1.844-.07-1.548-1.86-1.873-2.8-.52-3.202.687-6.43.65-9.632-.014-1.14-1.593-5.17-2.157-6.61-1.768.34-3.546.406-5.34.497-4.134-.01-8.24-.527-12.317-1.183-.8 3.35-3.16 8.036-1.21 11.44 2.37 3.52 4.03 4.495 6.61 4.707 2.572.212 3.16 3.18 2.53 4.242-.55.73-1.52.864-2.346 1.04l-1.65.08c-1.296-.046-2.455-.404-3.61-.955-1.93-1.097-3.925-3.383-5.406-5.024.345.658.55 1.938.24 2.53-.878 1.27-4.665 1.26-6.4.47-1.97-.89-6.73-7.162-7.468-11.86 1.96-3.78 4.812-7.07 6.255-11.186-3.146-2.05-4.83-5.384-4.61-9.16l.08-.44c-3.097.59-1.49.37-4.82.628-10.608-.032-19.935-7.37-14.68-18.774.34-.673.664-1.287 1.243-.994.466.237.4 1.18.166 2.227-3.005 13.627 11.67 13.732 20.69 11.21.89-.25 2.67-1.936 3.905-2.495 2.016-.91 4.205-1.282 6.376-1.55 5.4-.63 11.893 2.276 15.19 2.37 3.3.096 7.99-.805 10.87-.615 2.09.098 4.143.483 6.16 1.03 1.306-6.49 1.4-11.27 4.492-12.38 1.814.293 3.213 2.818 4.25 4.167 2.112-.086 4.12.46 6.115 1.066 3.61-.522 6.642-2.593 9.833-4.203-3.234 2.69-3.673 7.075-3.303 11.127.138 2.103-.444 4.386-1.164 6.54-1.348 3.507-3.95 7.204-6.97 7.014-1.14-.036-1.805-.695-2.653-1.4-.164 1.427-.81 2.7-1.434 3.96-1.44 2.797-5.203 4.03-8.687 7.016-3.484 2.985 1.114 13.65 2.23 15.594 1.114 1.94 4.226 2.652 3.02 4.406-.37.58-.936.785-1.54 1.01l-.82.11zm-40.097-8.85l.553.14c.694-.27 2.09.15 2.83.353-1.363-1.31-3.417-3.24-4.897-4.46-.485-1.47-.278-2.96-.174-4.46l.02-.123c-.582 1.205-1.322 2.376-1.72 3.645-.465 1.71 2.07 3.557 3.052 4.615l.336.3z\" fill-rule=\"evenodd\"/></svg>"
        },
        "$:/core/images/advanced-search-button": {
            "title": "$:/core/images/advanced-search-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-advanced-search-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M74.5651535,87.9848361 C66.9581537,93.0488876 57.8237115,96 48,96 C21.490332,96 0,74.509668 0,48 C0,21.490332 21.490332,0 48,0 C74.509668,0 96,21.490332 96,48 C96,57.8541369 93.0305793,67.0147285 87.9377231,74.6357895 L122.284919,108.982985 C125.978897,112.676963 125.973757,118.65366 122.284271,122.343146 C118.593975,126.033442 112.613238,126.032921 108.92411,122.343793 L74.5651535,87.9848361 Z M48,80 C65.673112,80 80,65.673112 80,48 C80,30.326888 65.673112,16 48,16 C30.326888,16 16,30.326888 16,48 C16,65.673112 30.326888,80 48,80 Z\"></path>\n        <circle cx=\"48\" cy=\"48\" r=\"8\"></circle>\n        <circle cx=\"28\" cy=\"48\" r=\"8\"></circle>\n        <circle cx=\"68\" cy=\"48\" r=\"8\"></circle>\n    </g>\n</svg>"
        },
        "$:/core/images/auto-height": {
            "title": "$:/core/images/auto-height",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-auto-height tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <path d=\"M67.9867828,114.356363 L67.9579626,99.8785426 C67.9550688,98.4248183 67.1636987,97.087107 65.8909901,96.3845863 L49.9251455,87.5716209 L47.992126,95.0735397 L79.8995411,95.0735397 C84.1215894,95.0735397 85.4638131,89.3810359 81.686497,87.4948823 L49.7971476,71.5713518 L48.0101917,79.1500092 L79.992126,79.1500092 C84.2093753,79.1500092 85.5558421,73.4676733 81.7869993,71.5753162 L49.805065,55.517008 L48.0101916,63.0917009 L79.9921259,63.0917015 C84.2035118,63.0917016 85.5551434,57.4217887 81.7966702,55.5218807 L65.7625147,47.4166161 L67.9579705,50.9864368 L67.9579705,35.6148245 L77.1715737,44.8284272 C78.7336709,46.3905243 81.2663308,46.3905243 82.8284279,44.8284271 C84.390525,43.2663299 84.390525,40.7336699 82.8284278,39.1715728 L66.8284271,23.1715728 C65.2663299,21.6094757 62.73367,21.6094757 61.1715729,23.1715729 L45.1715729,39.1715729 C43.6094757,40.73367 43.6094757,43.26633 45.1715729,44.8284271 C46.73367,46.3905243 49.26633,46.3905243 50.8284271,44.8284271 L59.9579705,35.6988837 L59.9579705,50.9864368 C59.9579705,52.495201 60.806922,53.8755997 62.1534263,54.5562576 L78.1875818,62.6615223 L79.9921261,55.0917015 L48.0101917,55.0917009 C43.7929424,55.0917008 42.4464755,60.7740368 46.2153183,62.6663939 L78.1972526,78.7247021 L79.992126,71.1500092 L48.0101917,71.1500092 C43.7881433,71.1500092 42.4459197,76.842513 46.2232358,78.7286665 L78.1125852,94.6521971 L79.8995411,87.0735397 L47.992126,87.0735397 C43.8588276,87.0735397 42.4404876,92.5780219 46.0591064,94.5754586 L62.024951,103.388424 L59.9579785,99.8944677 L59.9867142,114.32986 L50.8284271,105.171573 C49.26633,103.609476 46.73367,103.609476 45.1715729,105.171573 C43.6094757,106.73367 43.6094757,109.26633 45.1715729,110.828427 L61.1715729,126.828427 C62.73367,128.390524 65.2663299,128.390524 66.8284271,126.828427 L82.8284278,110.828427 C84.390525,109.26633 84.390525,106.73367 82.8284279,105.171573 C81.2663308,103.609476 78.7336709,103.609476 77.1715737,105.171573 L67.9867828,114.356363 L67.9867828,114.356363 Z M16,20 L112,20 C114.209139,20 116,18.209139 116,16 C116,13.790861 114.209139,12 112,12 L16,12 C13.790861,12 12,13.790861 12,16 C12,18.209139 13.790861,20 16,20 L16,20 Z\"></path>\n</svg>"
        },
        "$:/core/images/blank": {
            "title": "$:/core/images/blank",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-blank tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\"></svg>"
        },
        "$:/core/images/bold": {
            "title": "$:/core/images/bold",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-bold tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M41.1456583,51.8095238 L41.1456583,21.8711485 L67.4985994,21.8711485 C70.0084159,21.8711485 72.4285598,22.0802967 74.7591036,22.4985994 C77.0896475,22.9169022 79.1512515,23.6638602 80.9439776,24.7394958 C82.7367036,25.8151314 84.170863,27.3090474 85.2464986,29.2212885 C86.3221342,31.1335296 86.859944,33.5835518 86.859944,36.5714286 C86.859944,41.9496067 85.2465147,45.8337882 82.0196078,48.2240896 C78.792701,50.614391 74.6694929,51.8095238 69.6498599,51.8095238 L41.1456583,51.8095238 Z M13,0 L13,128 L75.0280112,128 C80.7647346,128 86.3519803,127.28292 91.789916,125.848739 C97.2278517,124.414559 102.068139,122.203563 106.310924,119.215686 C110.553709,116.22781 113.929959,112.373506 116.439776,107.652661 C118.949592,102.931816 120.204482,97.3445701 120.204482,90.8907563 C120.204482,82.8832466 118.262391,76.0411115 114.378151,70.3641457 C110.493911,64.6871798 104.607883,60.7133634 96.719888,58.442577 C102.456611,55.6937304 106.788968,52.1680887 109.717087,47.8655462 C112.645206,43.5630037 114.109244,38.1849062 114.109244,31.7310924 C114.109244,25.7553389 113.123259,20.7357813 111.151261,16.6722689 C109.179262,12.6087565 106.400578,9.35201972 102.815126,6.90196078 C99.2296739,4.45190185 94.927196,2.68908101 89.907563,1.61344538 C84.8879301,0.537809748 79.3305627,0 73.2352941,0 L13,0 Z M41.1456583,106.128852 L41.1456583,70.9915966 L71.8011204,70.9915966 C77.896389,70.9915966 82.7964334,72.3958776 86.5014006,75.2044818 C90.2063677,78.0130859 92.0588235,82.7039821 92.0588235,89.2773109 C92.0588235,92.6237329 91.4911355,95.3725383 90.3557423,97.5238095 C89.2203491,99.6750808 87.6965548,101.378145 85.7843137,102.633053 C83.8720726,103.887961 81.661077,104.784311 79.1512605,105.322129 C76.641444,105.859947 74.0121519,106.128852 71.2633053,106.128852 L41.1456583,106.128852 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/cancel-button": {
            "title": "$:/core/images/cancel-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-cancel-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n\t<g fill-rule=\"evenodd\">\n\t    <path d=\"M64,76.3137085 L47.0294734,93.2842351 C43.9038742,96.4098343 38.8399231,96.4084656 35.7157288,93.2842712 C32.5978915,90.166434 32.5915506,85.0947409 35.7157649,81.9705266 L52.6862915,65 L35.7157649,48.0294734 C32.5901657,44.9038742 32.5915344,39.8399231 35.7157288,36.7157288 C38.833566,33.5978915 43.9052591,33.5915506 47.0294734,36.7157649 L64,53.6862915 L80.9705266,36.7157649 C84.0961258,33.5901657 89.1600769,33.5915344 92.2842712,36.7157288 C95.4021085,39.833566 95.4084494,44.9052591 92.2842351,48.0294734 L75.3137085,65 L92.2842351,81.9705266 C95.4098343,85.0961258 95.4084656,90.1600769 92.2842712,93.2842712 C89.166434,96.4021085 84.0947409,96.4084494 80.9705266,93.2842351 L64,76.3137085 Z M64,129 C99.346224,129 128,100.346224 128,65 C128,29.653776 99.346224,1 64,1 C28.653776,1 1.13686838e-13,29.653776 1.13686838e-13,65 C1.13686838e-13,100.346224 28.653776,129 64,129 Z M64,113 C90.509668,113 112,91.509668 112,65 C112,38.490332 90.509668,17 64,17 C37.490332,17 16,38.490332 16,65 C16,91.509668 37.490332,113 64,113 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/chevron-down": {
            "title": "$:/core/images/chevron-down",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-chevron-down tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n\t<g fill-rule=\"evenodd\" transform=\"translate(64.000000, 40.500000) rotate(-270.000000) translate(-64.000000, -40.500000) translate(-22.500000, -26.500000)\">\n        <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n        <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n\t</g>\n</svg>"
        },
        "$:/core/images/chevron-left": {
            "title": "$:/core/images/chevron-left",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-chevron-left tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\" version=\"1.1\">\n    <g fill-rule=\"evenodd\" transform=\"translate(92.500000, 64.000000) rotate(-180.000000) translate(-92.500000, -64.000000) translate(6.000000, -3.000000)\">\n        <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n        <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/chevron-right": {
            "title": "$:/core/images/chevron-right",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-chevron-right tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\" transform=\"translate(-48.000000, -3.000000)\">\n        <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n        <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/chevron-up": {
            "title": "$:/core/images/chevron-up",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-chevron-up tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n\t<g fill-rule=\"evenodd\" transform=\"translate(64.000000, 89.500000) rotate(-90.000000) translate(-64.000000, -89.500000) translate(-22.500000, 22.500000)\">\n        <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n        <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n\t</g>\n</svg>"
        },
        "$:/core/images/clone-button": {
            "title": "$:/core/images/clone-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-clone-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M32.2650915,96 L32.2650915,120.002359 C32.2650915,124.419334 35.8432884,128 40.2627323,128 L120.002359,128 C124.419334,128 128,124.421803 128,120.002359 L128,40.2627323 C128,35.8457573 124.421803,32.2650915 120.002359,32.2650915 L96,32.2650915 L96,48 L108.858899,48 C110.519357,48 111.853018,49.3405131 111.853018,50.9941198 L111.853018,108.858899 C111.853018,110.519357 110.512505,111.853018 108.858899,111.853018 L50.9941198,111.853018 C49.333661,111.853018 48,110.512505 48,108.858899 L48,96 L32.2650915,96 Z\"></path>\n        <path d=\"M40,56 L32.0070969,56 C27.5881712,56 24,52.418278 24,48 C24,43.5907123 27.5848994,40 32.0070969,40 L40,40 L40,32.0070969 C40,27.5881712 43.581722,24 48,24 C52.4092877,24 56,27.5848994 56,32.0070969 L56,40 L63.9929031,40 C68.4118288,40 72,43.581722 72,48 C72,52.4092877 68.4151006,56 63.9929031,56 L56,56 L56,63.9929031 C56,68.4118288 52.418278,72 48,72 C43.5907123,72 40,68.4151006 40,63.9929031 L40,56 Z M7.9992458,0 C3.58138434,0 0,3.5881049 0,7.9992458 L0,88.0007542 C0,92.4186157 3.5881049,96 7.9992458,96 L88.0007542,96 C92.4186157,96 96,92.4118951 96,88.0007542 L96,7.9992458 C96,3.58138434 92.4118951,0 88.0007542,0 L7.9992458,0 Z M19.0010118,16 C17.3435988,16 16,17.336731 16,19.0010118 L16,76.9989882 C16,78.6564012 17.336731,80 19.0010118,80 L76.9989882,80 C78.6564012,80 80,78.663269 80,76.9989882 L80,19.0010118 C80,17.3435988 78.663269,16 76.9989882,16 L19.0010118,16 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/close-all-button": {
            "title": "$:/core/images/close-all-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-close-all-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\" transform=\"translate(-23.000000, -23.000000)\">\n        <path d=\"M43,131 L22.9976794,131 C18.5827987,131 15,127.418278 15,123 C15,118.590712 18.5806831,115 22.9976794,115 L43,115 L43,94.9976794 C43,90.5827987 46.581722,87 51,87 C55.4092877,87 59,90.5806831 59,94.9976794 L59,115 L79.0023206,115 C83.4172013,115 87,118.581722 87,123 C87,127.409288 83.4193169,131 79.0023206,131 L59,131 L59,151.002321 C59,155.417201 55.418278,159 51,159 C46.5907123,159 43,155.419317 43,151.002321 L43,131 Z\" transform=\"translate(51.000000, 123.000000) rotate(-45.000000) translate(-51.000000, -123.000000) \"></path>\n        <path d=\"M43,59 L22.9976794,59 C18.5827987,59 15,55.418278 15,51 C15,46.5907123 18.5806831,43 22.9976794,43 L43,43 L43,22.9976794 C43,18.5827987 46.581722,15 51,15 C55.4092877,15 59,18.5806831 59,22.9976794 L59,43 L79.0023206,43 C83.4172013,43 87,46.581722 87,51 C87,55.4092877 83.4193169,59 79.0023206,59 L59,59 L59,79.0023206 C59,83.4172013 55.418278,87 51,87 C46.5907123,87 43,83.4193169 43,79.0023206 L43,59 Z\" transform=\"translate(51.000000, 51.000000) rotate(-45.000000) translate(-51.000000, -51.000000) \"></path>\n        <path d=\"M115,59 L94.9976794,59 C90.5827987,59 87,55.418278 87,51 C87,46.5907123 90.5806831,43 94.9976794,43 L115,43 L115,22.9976794 C115,18.5827987 118.581722,15 123,15 C127.409288,15 131,18.5806831 131,22.9976794 L131,43 L151.002321,43 C155.417201,43 159,46.581722 159,51 C159,55.4092877 155.419317,59 151.002321,59 L131,59 L131,79.0023206 C131,83.4172013 127.418278,87 123,87 C118.590712,87 115,83.4193169 115,79.0023206 L115,59 Z\" transform=\"translate(123.000000, 51.000000) rotate(-45.000000) translate(-123.000000, -51.000000) \"></path>\n        <path d=\"M115,131 L94.9976794,131 C90.5827987,131 87,127.418278 87,123 C87,118.590712 90.5806831,115 94.9976794,115 L115,115 L115,94.9976794 C115,90.5827987 118.581722,87 123,87 C127.409288,87 131,90.5806831 131,94.9976794 L131,115 L151.002321,115 C155.417201,115 159,118.581722 159,123 C159,127.409288 155.419317,131 151.002321,131 L131,131 L131,151.002321 C131,155.417201 127.418278,159 123,159 C118.590712,159 115,155.419317 115,151.002321 L115,131 Z\" transform=\"translate(123.000000, 123.000000) rotate(-45.000000) translate(-123.000000, -123.000000) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/close-button": {
            "title": "$:/core/images/close-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-close-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M65.0864256,75.4091629 L14.9727349,125.522854 C11.8515951,128.643993 6.78104858,128.64922 3.65685425,125.525026 C0.539017023,122.407189 0.5336324,117.334539 3.65902635,114.209145 L53.7727171,64.0954544 L3.65902635,13.9817637 C0.537886594,10.8606239 0.532659916,5.79007744 3.65685425,2.6658831 C6.77469148,-0.451954124 11.8473409,-0.457338747 14.9727349,2.66805521 L65.0864256,52.7817459 L115.200116,2.66805521 C118.321256,-0.453084553 123.391803,-0.458311231 126.515997,2.6658831 C129.633834,5.78372033 129.639219,10.8563698 126.513825,13.9817637 L76.4001341,64.0954544 L126.513825,114.209145 C129.634965,117.330285 129.640191,122.400831 126.515997,125.525026 C123.39816,128.642863 118.32551,128.648248 115.200116,125.522854 L65.0864256,75.4091629 L65.0864256,75.4091629 Z\"></path>\n    </g>\n</svg>\n"
        },
        "$:/core/images/close-others-button": {
            "title": "$:/core/images/close-others-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-close-others-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M64,128 C99.346224,128 128,99.346224 128,64 C128,28.653776 99.346224,0 64,0 C28.653776,0 0,28.653776 0,64 C0,99.346224 28.653776,128 64,128 Z M64,112 C90.509668,112 112,90.509668 112,64 C112,37.490332 90.509668,16 64,16 C37.490332,16 16,37.490332 16,64 C16,90.509668 37.490332,112 64,112 Z M64,96 C81.673112,96 96,81.673112 96,64 C96,46.326888 81.673112,32 64,32 C46.326888,32 32,46.326888 32,64 C32,81.673112 46.326888,96 64,96 Z M64,80 C72.836556,80 80,72.836556 80,64 C80,55.163444 72.836556,48 64,48 C55.163444,48 48,55.163444 48,64 C48,72.836556 55.163444,80 64,80 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/copy-clipboard": {
            "title": "$:/core/images/copy-clipboard",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-copy-clipboard tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n\t<g fill-rule=\"evenodd\">\n\t\t<rect x=\"40\" y=\"40\" width=\"33\" height=\"8\" rx=\"4\"></rect>\n\t\t<rect x=\"40\" y=\"82\" width=\"17\" height=\"8\" rx=\"4\"></rect>\n\t\t<rect x=\"40\" y=\"54\" width=\"17\" height=\"8\" rx=\"4\"></rect>\n\t\t<rect x=\"40\" y=\"96\" width=\"33\" height=\"8\" rx=\"4\"></rect>\n\t\t<rect x=\"40\" y=\"68\" width=\"12\" height=\"8\" rx=\"4\"></rect>\n\t\t<path d=\"M40,16 L23.9992458,16 C19.5813843,16 16,19.5907123 16,24 C16,24.0016363 16.0000005,24.0032725 16.0000015,24.0049086 C16.0000005,24.0065441 16,24.0081803 16,24.0098166 L16,119.990183 C16,119.99182 16.0000005,119.993456 16.0000015,119.995092 C16.0000005,119.996727 16,119.998364 16,120 C16,124.409288 19.5813843,128 23.9992458,128 L104.000754,128 C106.205061,128 108.203844,127.105595 109.652065,125.659342 C111.102424,124.21251 112,122.214511 112,120.007595 L112,103.992405 C112,99.5776607 108.418278,96 104,96 C99.5907123,96 96,99.5783218 96,103.992405 L96,112 L32,112 L32,32 L96,32 L96,40.0075946 C96,44.4223393 99.581722,48 104,48 C108.409288,48 112,44.4216782 112,40.0075946 L112,23.9924054 C112,21.7851587 111.104671,19.7871591 109.657101,18.3409203 C108.203844,16.8944047 106.205061,16 104.000754,16 L88,16 C88,11.5907123 84.4151006,8 79.9929031,8 L48.0070969,8 C43.5881712,8 40,11.581722 40,16 Z M44,14.9958262 C44,12.7889923 45.7964248,11 48.0000255,11 L79.9999745,11 C82.2091276,11 84,12.7965212 84,14.9958262 L84,19.0041738 C84,21.2110077 82.2035752,23 79.9999745,23 L48.0000255,23 C45.7908724,23 44,21.2034788 44,19.0041738 L44,14.9958262 Z\"></path>\n\t\t<rect x=\"62\" y=\"64\" width=\"66\" height=\"16\" rx=\"8\"></rect>\n\t\t<path d=\"M60.6568542,85.6568542 L76.6568542,69.6568543 L65.3431458,69.6568542 L81.3431458,85.6568542 C84.4673401,88.7810486 89.5326599,88.7810486 92.6568542,85.6568542 C95.7810486,82.5326599 95.7810486,77.4673401 92.6568542,74.3431458 L76.6568542,58.3431458 C73.5326599,55.2189514 68.4673401,55.2189514 65.3431458,58.3431457 L49.3431458,74.3431457 C46.2189514,77.4673401 46.2189514,82.5326599 49.3431457,85.6568542 C52.4673401,88.7810486 57.5326599,88.7810486 60.6568542,85.6568542 L60.6568542,85.6568542 Z\" transform=\"translate(71.000000, 72.000000) rotate(-90.000000) translate(-71.000000, -72.000000) \"></path>\n\t</g>\n</svg>"
        },
        "$:/core/images/delete-button": {
            "title": "$:/core/images/delete-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-delete-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\" transform=\"translate(12.000000, 0.000000)\">\n        <rect x=\"0\" y=\"11\" width=\"105\" height=\"16\" rx=\"8\"></rect>\n        <rect x=\"28\" y=\"0\" width=\"48\" height=\"16\" rx=\"8\"></rect>\n        <rect x=\"8\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n        <rect x=\"8\" y=\"112\" width=\"88\" height=\"16\" rx=\"8\"></rect>\n        <rect x=\"80\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n        <rect x=\"56\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n        <rect x=\"32\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n    </g>\n</svg>"
        },
        "$:/core/images/done-button": {
            "title": "$:/core/images/done-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-done-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M3.52445141,76.8322939 C2.07397484,75.3828178 1.17514421,73.3795385 1.17514421,71.1666288 L1.17514421,23.1836596 C1.17514421,18.7531992 4.75686621,15.1751442 9.17514421,15.1751442 C13.5844319,15.1751442 17.1751442,18.7606787 17.1751442,23.1836596 L17.1751442,63.1751442 L119.173716,63.1751442 C123.590457,63.1751442 127.175144,66.7568662 127.175144,71.1751442 C127.175144,75.5844319 123.592783,79.1751442 119.173716,79.1751442 L9.17657227,79.1751442 C6.96796403,79.1751442 4.9674142,78.279521 3.51911285,76.8315312 Z\" id=\"Rectangle-285\" transform=\"translate(64.175144, 47.175144) rotate(-45.000000) translate(-64.175144, -47.175144) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/down-arrow": {
            "title": "$:/core/images/down-arrow",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-down-arrow tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <path d=\"M109.35638,81.3533152 C107.923899,82.7869182 105.94502,83.6751442 103.759224,83.6751442 L24.5910645,83.6751442 C20.225873,83.6751442 16.6751442,80.1307318 16.6751442,75.7584775 C16.6751442,71.3951199 20.2192225,67.8418109 24.5910645,67.8418109 L95.8418109,67.8418109 L95.8418109,-3.40893546 C95.8418109,-7.77412698 99.3862233,-11.3248558 103.758478,-11.3248558 C108.121835,-11.3248558 111.675144,-7.78077754 111.675144,-3.40893546 L111.675144,75.7592239 C111.675144,77.9416955 110.789142,79.9205745 109.356651,81.3538862 Z\" transform=\"translate(64.175144, 36.175144) rotate(45.000000) translate(-64.175144, -36.175144) \"></path>\n</svg>"
        },
        "$:/core/images/download-button": {
            "title": "$:/core/images/download-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-download-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path class=\"tc-image-download-button-ring\" d=\"M64,128 C99.346224,128 128,99.346224 128,64 C128,28.653776 99.346224,0 64,0 C28.653776,0 0,28.653776 0,64 C0,99.346224 28.653776,128 64,128 Z M64,112 C90.509668,112 112,90.509668 112,64 C112,37.490332 90.509668,16 64,16 C37.490332,16 16,37.490332 16,64 C16,90.509668 37.490332,112 64,112 Z\"/><path d=\"M34.3496823,66.4308767 L61.2415823,93.634668 C63.0411536,95.4551107 65.9588502,95.4551107 67.7584215,93.634668 L94.6503215,66.4308767 C96.4498928,64.610434 96.4498928,61.6588981 94.6503215,59.8384554 C93.7861334,58.9642445 92.6140473,58.4731195 91.3919019,58.4731195 L82.9324098,58.4731195 C80.3874318,58.4731195 78.3243078,56.3860674 78.3243078,53.8115729 L78.3243078,38.6615466 C78.3243078,36.0870521 76.2611837,34 73.7162058,34 L55.283798,34 C52.7388201,34 50.675696,36.0870521 50.675696,38.6615466 L50.675696,38.6615466 L50.675696,53.8115729 C50.675696,56.3860674 48.612572,58.4731195 46.0675941,58.4731195 L37.608102,58.4731195 C35.063124,58.4731195 33,60.5601716 33,63.134666 C33,64.3709859 33.4854943,65.5566658 34.3496823,66.4308767 L34.3496823,66.4308767 Z\"/></g></svg>"
        },
        "$:/core/images/edit-button": {
            "title": "$:/core/images/edit-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-edit-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M116.870058,45.3431458 L108.870058,45.3431458 L108.870058,45.3431458 L108.870058,61.3431458 L116.870058,61.3431458 L116.870058,45.3431458 Z M124.870058,45.3431458 L127.649881,45.3431458 C132.066101,45.3431458 135.656854,48.9248678 135.656854,53.3431458 C135.656854,57.7524334 132.07201,61.3431458 127.649881,61.3431458 L124.870058,61.3431458 L124.870058,45.3431458 Z M100.870058,45.3431458 L15.6638275,45.3431458 C15.5064377,45.3431458 15.3501085,45.3476943 15.1949638,45.3566664 L15.1949638,45.3566664 C15.0628002,45.3477039 14.928279,45.3431458 14.7913977,45.3431458 C6.68160973,45.3431458 -8.34314575,53.3431458 -8.34314575,53.3431458 C-8.34314575,53.3431458 6.85614548,61.3431458 14.7913977,61.3431458 C14.9266533,61.3431458 15.0596543,61.3384973 15.190398,61.3293588 C15.3470529,61.3385075 15.5049057,61.3431458 15.6638275,61.3431458 L100.870058,61.3431458 L100.870058,45.3431458 L100.870058,45.3431458 Z\" transform=\"translate(63.656854, 53.343146) rotate(-45.000000) translate(-63.656854, -53.343146) \"></path>\n        <path d=\"M35.1714596,124.189544 C41.9594858,123.613403 49.068777,121.917633 58.85987,118.842282 C60.6854386,118.268877 62.4306907,117.705515 65.1957709,116.802278 C81.1962861,111.575575 87.0734839,109.994907 93.9414474,109.655721 C102.29855,109.242993 107.795169,111.785371 111.520478,118.355045 C112.610163,120.276732 115.051363,120.951203 116.97305,119.861518 C118.894737,118.771832 119.569207,116.330633 118.479522,114.408946 C113.146151,105.003414 104.734907,101.112919 93.5468356,101.66546 C85.6716631,102.054388 79.4899908,103.716944 62.7116783,109.197722 C59.9734132,110.092199 58.2519873,110.64787 56.4625698,111.20992 C37.002649,117.322218 25.6914684,118.282267 16.8654804,112.957098 C14.9739614,111.815848 12.5154166,112.424061 11.3741667,114.31558 C10.2329168,116.207099 10.84113,118.665644 12.7326489,119.806894 C19.0655164,123.627836 26.4866335,124.926678 35.1714596,124.189544 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/erase": {
            "title": "$:/core/images/erase",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-erase tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M60.0870401,127.996166 L123.102318,64.980888 C129.636723,58.4464827 129.629513,47.8655877 123.098967,41.3350425 L99.4657866,17.7018617 C92.927448,11.1635231 82.3486358,11.1698163 75.8199411,17.698511 L4.89768189,88.6207702 C-1.63672343,95.1551755 -1.6295126,105.736071 4.90103262,112.266616 L20.6305829,127.996166 L60.0870401,127.996166 Z M25.1375576,120.682546 L10.812569,106.357558 C7.5455063,103.090495 7.54523836,97.793808 10.8048093,94.5342371 L46.2691086,59.0699377 L81.7308914,94.5317205 L55.5800654,120.682546 L25.1375576,120.682546 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/excise": {
            "title": "$:/core/images/excise",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-excise tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M56,107.313709 L53.6568542,109.656854 C50.5326599,112.781049 45.4673401,112.781049 42.3431457,109.656854 C39.2189514,106.53266 39.2189514,101.46734 42.3431458,98.3431457 L58.3431458,82.3431457 C61.4673401,79.2189514 66.5326599,79.2189514 69.6568542,82.3431458 L85.6568542,98.3431458 C88.7810486,101.46734 88.7810486,106.53266 85.6568542,109.656854 C82.5326599,112.781049 77.4673401,112.781049 74.3431458,109.656854 L72,107.313708 L72,121.597798 C72,125.133636 68.418278,128 64,128 C59.581722,128 56,125.133636 56,121.597798 L56,107.313709 Z M0,40.0070969 C0,35.5848994 3.59071231,32 8,32 C12.418278,32 16,35.5881712 16,40.0070969 L16,71.9929031 C16,76.4151006 12.4092877,80 8,80 C3.581722,80 0,76.4118288 0,71.9929031 L0,40.0070969 Z M32,40.0070969 C32,35.5848994 35.5907123,32 40,32 C44.418278,32 48,35.5881712 48,40.0070969 L48,71.9929031 C48,76.4151006 44.4092877,80 40,80 C35.581722,80 32,76.4118288 32,71.9929031 L32,40.0070969 Z M80,40.0070969 C80,35.5848994 83.5907123,32 88,32 C92.418278,32 96,35.5881712 96,40.0070969 L96,71.9929031 C96,76.4151006 92.4092877,80 88,80 C83.581722,80 80,76.4118288 80,71.9929031 L80,40.0070969 Z M56,8.00709688 C56,3.58489938 59.5907123,0 64,0 C68.418278,0 72,3.58817117 72,8.00709688 L72,39.9929031 C72,44.4151006 68.4092877,48 64,48 C59.581722,48 56,44.4118288 56,39.9929031 L56,8.00709688 Z M112,40.0070969 C112,35.5848994 115.590712,32 120,32 C124.418278,32 128,35.5881712 128,40.0070969 L128,71.9929031 C128,76.4151006 124.409288,80 120,80 C115.581722,80 112,76.4118288 112,71.9929031 L112,40.0070969 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/export-button": {
            "title": "$:/core/images/export-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-export-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M8.00348646,127.999999 C8.00464867,128 8.00581094,128 8.00697327,128 L119.993027,128 C122.205254,128 124.207939,127.101378 125.657096,125.651198 L125.656838,125.65759 C127.104563,124.210109 128,122.21009 128,119.999949 L128,56.0000511 C128,51.5817449 124.409288,48 120,48 C115.581722,48 112,51.5797863 112,56.0000511 L112,112 L16,112 L16,56.0000511 C16,51.5817449 12.4092877,48 8,48 C3.581722,48 7.10542736e-15,51.5797863 7.10542736e-15,56.0000511 L7.10542736e-15,119.999949 C7.10542736e-15,124.418255 3.59071231,128 8,128 C8.00116233,128 8.0023246,128 8.00348681,127.999999 Z M56.6235633,27.3113724 L47.6580188,36.2769169 C44.5333664,39.4015692 39.4634864,39.4061295 36.339292,36.2819351 C33.2214548,33.1640979 33.2173444,28.0901742 36.3443103,24.9632084 L58.9616908,2.34582788 C60.5248533,0.782665335 62.5748436,0.000361191261 64.624516,2.38225238e-14 L64.6193616,0.00151809229 C66.6695374,0.000796251595 68.7211167,0.781508799 70.2854358,2.34582788 L92.9028163,24.9632084 C96.0274686,28.0878607 96.0320289,33.1577408 92.9078345,36.2819351 C89.7899973,39.3997724 84.7160736,39.4038827 81.5891078,36.2769169 L72.6235633,27.3113724 L72.6235633,88.5669606 C72.6235633,92.9781015 69.0418413,96.5662064 64.6235633,96.5662064 C60.2142756,96.5662064 56.6235633,92.984822 56.6235633,88.5669606 L56.6235633,27.3113724 L56.6235633,27.3113724 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/file": {
            "title": "$:/core/images/file",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-file tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"nonzero\">\n        <path d=\"M111.96811,30.5 L112,30.5 L112,119.999079 C112,124.417866 108.419113,128 104.000754,128 L23.9992458,128 C19.5813843,128 16,124.417687 16,119.999079 L16,8.00092105 C16,3.58213437 19.5808867,0 23.9992458,0 L81,0 L81,0.0201838424 C83.1589869,-0.071534047 85.3482153,0.707077645 86.9982489,2.35711116 L109.625176,24.9840387 C111.151676,26.510538 111.932942,28.4998414 111.96811,30.5 L111.96811,30.5 Z M81,8 L24,8 L24,120 L104,120 L104,30.5 L89.0003461,30.5 C84.5818769,30.5 81,26.9216269 81,22.4996539 L81,8 Z\"></path>\n        <rect x=\"32\" y=\"36\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"52\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"68\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"84\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"100\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"20\" width=\"40\" height=\"8\" rx=\"4\"></rect>\n    </g>\n</svg>"
        },
        "$:/core/images/fixed-height": {
            "title": "$:/core/images/fixed-height",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-fixed-height tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M60,35.6568542 L50.8284271,44.8284271 C49.26633,46.3905243 46.73367,46.3905243 45.1715729,44.8284271 C43.6094757,43.26633 43.6094757,40.73367 45.1715729,39.1715729 L61.1715729,23.1715729 C62.73367,21.6094757 65.2663299,21.6094757 66.8284271,23.1715728 L82.8284278,39.1715728 C84.390525,40.7336699 84.390525,43.2663299 82.8284279,44.8284271 C81.2663308,46.3905243 78.7336709,46.3905243 77.1715737,44.8284272 L68,35.6568539 L68,93.3431461 L77.1715737,84.1715728 C78.7336709,82.6094757 81.2663308,82.6094757 82.8284279,84.1715729 C84.390525,85.7336701 84.390525,88.2663301 82.8284278,89.8284272 L66.8284271,105.828427 C65.2663299,107.390524 62.73367,107.390524 61.1715729,105.828427 L45.1715729,89.8284271 C43.6094757,88.26633 43.6094757,85.73367 45.1715729,84.1715729 C46.73367,82.6094757 49.26633,82.6094757 50.8284271,84.1715729 L60,93.3431458 L60,35.6568542 L60,35.6568542 Z M16,116 L112,116 C114.209139,116 116,114.209139 116,112 C116,109.790861 114.209139,108 112,108 L16,108 C13.790861,108 12,109.790861 12,112 C12,114.209139 13.790861,116 16,116 L16,116 Z M16,20 L112,20 C114.209139,20 116,18.209139 116,16 C116,13.790861 114.209139,12 112,12 L16,12 C13.790861,12 12,13.790861 12,16 C12,18.209139 13.790861,20 16,20 L16,20 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/fold-all-button": {
            "title": "$:/core/images/fold-all-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-fold-all tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <rect x=\"0\" y=\"64\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <path d=\"M64.0292774,58.6235628 C61.9791013,58.6242848 59.9275217,57.8435723 58.3632024,56.279253 L35.7458219,33.6618725 C32.6211696,30.5372202 32.6166093,25.4673401 35.7408036,22.3431458 C38.8586409,19.2253085 43.9325646,19.2211982 47.0595304,22.348164 L64.0250749,39.3137085 L80.9906194,22.348164 C84.1152717,19.2235117 89.1851518,19.2189514 92.3093461,22.3431458 C95.4271834,25.460983 95.4312937,30.5349067 92.3043279,33.6618725 L69.6869474,56.279253 C68.1237851,57.8424153 66.0737951,58.6247195 64.0241231,58.6250809 Z\" transform=\"translate(64.024316, 39.313708) scale(1, -1) translate(-64.024316, -39.313708) \"></path>\n        <path d=\"M64.0292774,123.621227 C61.9791013,123.621949 59.9275217,122.841236 58.3632024,121.276917 L35.7458219,98.6595365 C32.6211696,95.5348842 32.6166093,90.4650041 35.7408036,87.3408098 C38.8586409,84.2229725 43.9325646,84.2188622 47.0595304,87.345828 L64.0250749,104.311373 L80.9906194,87.345828 C84.1152717,84.2211757 89.1851518,84.2166154 92.3093461,87.3408098 C95.4271834,90.458647 95.4312937,95.5325707 92.3043279,98.6595365 L69.6869474,121.276917 C68.1237851,122.840079 66.0737951,123.622383 64.0241231,123.622745 Z\" transform=\"translate(64.024316, 104.311372) scale(1, -1) translate(-64.024316, -104.311372) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/fold-button": {
            "title": "$:/core/images/fold-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-fold tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <path d=\"M64.0292774,63.6235628 C61.9791013,63.6242848 59.9275217,62.8435723 58.3632024,61.279253 L35.7458219,38.6618725 C32.6211696,35.5372202 32.6166093,30.4673401 35.7408036,27.3431458 C38.8586409,24.2253085 43.9325646,24.2211982 47.0595304,27.348164 L64.0250749,44.3137085 L80.9906194,27.348164 C84.1152717,24.2235117 89.1851518,24.2189514 92.3093461,27.3431458 C95.4271834,30.460983 95.4312937,35.5349067 92.3043279,38.6618725 L69.6869474,61.279253 C68.1237851,62.8424153 66.0737951,63.6247195 64.0241231,63.6250809 Z\" transform=\"translate(64.024316, 44.313708) scale(1, -1) translate(-64.024316, -44.313708) \"></path>\n        <path d=\"M64.0049614,105.998482 C61.9547853,105.999204 59.9032057,105.218491 58.3388864,103.654172 L35.7215059,81.0367916 C32.5968535,77.9121393 32.5922933,72.8422592 35.7164876,69.7180649 C38.8343248,66.6002276 43.9082485,66.5961173 47.0352144,69.7230831 L64.0007589,86.6886276 L80.9663034,69.7230831 C84.0909557,66.5984308 89.1608358,66.5938705 92.2850301,69.7180649 C95.4028673,72.8359021 95.4069777,77.9098258 92.2800119,81.0367916 L69.6626314,103.654172 C68.099469,105.217334 66.0494791,105.999639 63.999807,106 Z\" transform=\"translate(64.000000, 86.688628) scale(1, -1) translate(-64.000000, -86.688628) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/fold-others-button": {
            "title": "$:/core/images/fold-others-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-fold-others tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <rect x=\"0\" y=\"56.0314331\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <path d=\"M101.657101,104.948818 C100.207918,103.498614 98.2051847,102.599976 95.9929031,102.599976 L72,102.599976 L72,78.6070725 C72,76.3964271 71.1036108,74.3936927 69.6545293,72.9441002 L69.6571005,72.9488183 C68.2079177,71.4986143 66.2051847,70.5999756 63.9929031,70.5999756 L32.0070969,70.5999756 C27.5881712,70.5999756 24,74.1816976 24,78.5999756 C24,83.0092633 27.5848994,86.5999756 32.0070969,86.5999756 L56,86.5999756 L56,110.592879 C56,112.803524 56.8963895,114.806259 58.3454713,116.255852 L58.3429,116.251133 C59.7920828,117.701337 61.7948156,118.599976 64.0070969,118.599976 L88,118.599976 L88,142.592879 C88,147.011804 91.581722,150.599976 96,150.599976 C100.409288,150.599976 104,147.015076 104,142.592879 L104,110.607072 C104,108.396427 103.103611,106.393693 101.654529,104.9441 Z\" transform=\"translate(64.000000, 110.599976) rotate(-45.000000) translate(-64.000000, -110.599976) \"></path>\n        <path d=\"M101.725643,11.7488671 C100.27646,10.2986632 98.2737272,9.40002441 96.0614456,9.40002441 L72.0685425,9.40002441 L72.0685425,-14.5928787 C72.0685425,-16.8035241 71.1721533,-18.8062584 69.7230718,-20.255851 L69.725643,-20.2511329 C68.2764602,-21.7013368 66.2737272,-22.5999756 64.0614456,-22.5999756 L32.0756394,-22.5999756 C27.6567137,-22.5999756 24.0685425,-19.0182536 24.0685425,-14.5999756 C24.0685425,-10.1906879 27.6534419,-6.59997559 32.0756394,-6.59997559 L56.0685425,-6.59997559 L56.0685425,17.3929275 C56.0685425,19.6035732 56.964932,21.6063078 58.4140138,23.0559004 L58.4114425,23.0511823 C59.8606253,24.5013859 61.8633581,25.4000244 64.0756394,25.4000244 L88.0685425,25.4000244 L88.0685425,49.3929275 C88.0685425,53.8118532 91.6502645,57.4000244 96.0685425,57.4000244 C100.47783,57.4000244 104.068542,53.815125 104.068542,49.3929275 L104.068542,17.4071213 C104.068542,15.1964759 103.172153,13.1937416 101.723072,11.744149 Z\" transform=\"translate(64.068542, 17.400024) scale(1, -1) rotate(-45.000000) translate(-64.068542, -17.400024) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/folder": {
            "title": "$:/core/images/folder",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-folder tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M55.6943257,128.000004 L7.99859666,128.000004 C3.5810937,128.000004 0,124.413822 0,119.996384 L0,48.0036243 C0,43.5833471 3.58387508,40.0000044 7.99859666,40.0000044 L16,40.0000044 L16,31.9999914 C16,27.5817181 19.5783731,24 24.0003461,24 L55.9996539,24 C60.4181231,24 64,27.5800761 64,31.9999914 L64,40.0000044 L104.001403,40.0000044 C108.418906,40.0000044 112,43.5861868 112,48.0036243 L112,59.8298353 L104,59.7475921 L104,51.9994189 C104,49.7887607 102.207895,48.0000044 99.9972215,48.0000044 L56,48.0000044 L56,36.0000255 C56,33.7898932 54.2072328,32 51.9957423,32 L28.0042577,32 C25.7890275,32 24,33.7908724 24,36.0000255 L24,48.0000044 L12.0027785,48.0000044 C9.78987688,48.0000044 8,49.7906032 8,51.9994189 L8,116.00059 C8,118.211248 9.79210499,120.000004 12.0027785,120.000004 L58.7630167,120.000004 L55.6943257,128.000004 L55.6943257,128.000004 Z\"></path>\n        <path d=\"M23.8728955,55.5 L119.875702,55.5 C124.293205,55.5 126.87957,59.5532655 125.650111,64.5630007 L112.305967,118.936999 C111.077582,123.942356 106.497904,128 102.083183,128 L6.08037597,128 C1.66287302,128 -0.923492342,123.946735 0.305967145,118.936999 L13.650111,64.5630007 C14.878496,59.5576436 19.4581739,55.5 23.8728955,55.5 L23.8728955,55.5 L23.8728955,55.5 Z M25.6530124,64 L113.647455,64 C115.858129,64 117.151473,66.0930612 116.538306,68.6662267 L105.417772,115.333773 C104.803671,117.910859 102.515967,120 100.303066,120 L12.3086228,120 C10.0979492,120 8.8046054,117.906939 9.41777189,115.333773 L20.5383062,68.6662267 C21.1524069,66.0891409 23.4401107,64 25.6530124,64 L25.6530124,64 L25.6530124,64 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/full-screen-button": {
            "title": "$:/core/images/full-screen-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-full-screen-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g>\n        <g>\n            <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n        </g>\n        <g transform=\"translate(104.000000, 104.000000) rotate(-180.000000) translate(-104.000000, -104.000000) translate(80.000000, 80.000000)\">\n            <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n        </g>\n        <g transform=\"translate(24.000000, 104.000000) rotate(-90.000000) translate(-24.000000, -104.000000) translate(0.000000, 80.000000)\">\n            <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n        </g>\n        <g transform=\"translate(104.000000, 24.000000) rotate(90.000000) translate(-104.000000, -24.000000) translate(80.000000, 0.000000)\">\n            <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n        </g>\n    </g>\n</svg>"
        },
        "$:/core/images/github": {
            "title": "$:/core/images/github",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-github tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n        <g fill-rule=\"evenodd\">\n            <path d=\"M63.9383506,1.60695328 C28.6017227,1.60695328 -0.055756057,30.2970814 -0.055756057,65.6906208 C-0.055756057,94.003092 18.2804728,118.019715 43.7123154,126.493393 C46.9143781,127.083482 48.0812647,125.104717 48.0812647,123.405261 C48.0812647,121.886765 48.02626,117.85449 47.9948287,112.508284 C30.1929317,116.379268 26.4368926,103.916587 26.4368926,103.916587 C23.5255693,96.5129372 19.3294921,94.5420399 19.3294921,94.5420399 C13.5186324,90.5687739 19.7695302,90.6474524 19.7695302,90.6474524 C26.1933001,91.099854 29.5721638,97.2525155 29.5721638,97.2525155 C35.2808718,107.044059 44.5531024,104.215566 48.1991321,102.575118 C48.7806109,98.4366275 50.4346826,95.612068 52.2616263,94.0109598 C38.0507543,92.3941159 23.1091047,86.8944862 23.1091047,62.3389152 C23.1091047,55.3443933 25.6039634,49.6205298 29.6978889,45.1437211 C29.0378318,43.5229433 26.8415704,37.0044266 30.3265147,28.1845627 C30.3265147,28.1845627 35.6973364,26.4615028 47.9241083,34.7542205 C53.027764,33.330139 58.5046663,32.6220321 63.9462084,32.5944947 C69.3838216,32.6220321 74.856795,33.330139 79.9683085,34.7542205 C92.1872225,26.4615028 97.5501864,28.1845627 97.5501864,28.1845627 C101.042989,37.0044266 98.8467271,43.5229433 98.190599,45.1437211 C102.292382,49.6205298 104.767596,55.3443933 104.767596,62.3389152 C104.767596,86.9574291 89.8023734,92.3744463 75.5482834,93.9598188 C77.8427675,95.9385839 79.8897303,99.8489072 79.8897303,105.828476 C79.8897303,114.392635 79.8111521,121.304544 79.8111521,123.405261 C79.8111521,125.120453 80.966252,127.114954 84.2115327,126.489459 C109.623731,117.996111 127.944244,93.9952241 127.944244,65.6906208 C127.944244,30.2970814 99.2867652,1.60695328 63.9383506,1.60695328\"></path>\n        </g>\n    </svg>\n"
        },
        "$:/core/images/globe": {
            "title": "$:/core/images/globe",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-globe tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M72.8111354,37.1275855 C72.8111354,37.9789875 72.8111354,38.8303894 72.8111354,39.6817913 C72.8111354,41.8784743 73.7885604,46.5631866 72.8111354,48.5143758 C71.3445471,51.4420595 68.1617327,52.0543531 66.4170946,54.3812641 C65.2352215,55.9575873 61.7987417,64.9821523 62.7262858,67.3005778 C66.6959269,77.2228204 74.26087,70.4881886 80.6887657,76.594328 C81.5527211,77.415037 83.5758191,78.8666631 83.985137,79.8899578 C87.2742852,88.1128283 76.4086873,94.8989524 87.7419325,106.189751 C88.9872885,107.430443 91.555495,102.372895 91.8205061,101.575869 C92.6726866,99.0129203 98.5458765,96.1267309 100.908882,94.5234439 C102.928056,93.1534443 105.782168,91.8557166 107.236936,89.7775886 C109.507391,86.5342557 108.717505,82.2640435 110.334606,79.0328716 C112.473794,74.7585014 114.163418,69.3979002 116.332726,65.0674086 C120.230862,57.2857361 121.054075,67.1596684 121.400359,67.5059523 C121.757734,67.8633269 122.411167,67.5059523 122.916571,67.5059523 C123.011132,67.5059523 124.364019,67.6048489 124.432783,67.5059523 C125.0832,66.5705216 123.390209,49.5852316 123.114531,48.2089091 C121.710578,41.1996597 116.17083,32.4278331 111.249523,27.7092761 C104.975994,21.6942076 104.160516,11.5121686 92.9912146,12.7547535 C92.7872931,12.7774397 87.906794,22.9027026 85.2136766,26.2672064 C81.486311,30.9237934 82.7434931,22.1144904 78.6876623,22.1144904 C78.6065806,22.1144904 77.5045497,22.0107615 77.4353971,22.1144904 C76.8488637,22.9942905 75.9952305,26.0101404 75.1288269,26.5311533 C74.8635477,26.6906793 73.4071369,26.2924966 73.2826811,26.5311533 C71.0401728,30.8313939 81.5394677,28.7427264 79.075427,34.482926 C76.7225098,39.9642538 72.747373,32.4860199 72.747373,43.0434079\"></path>\n        <path d=\"M44.4668556,7.01044608 C54.151517,13.1403033 45.1489715,19.2084878 47.1611905,23.2253896 C48.8157833,26.5283781 51.4021933,28.6198851 48.8753629,33.038878 C46.8123257,36.6467763 42.0052989,37.0050492 39.251679,39.7621111 C36.2115749,42.8060154 33.7884281,48.7028116 32.4624592,52.6732691 C30.8452419,57.5158356 47.0088721,59.5388126 44.5246867,63.6811917 C43.1386839,65.9923513 37.7785192,65.1466282 36.0880227,63.8791519 C34.9234453,63.0059918 32.4946425,63.3331166 31.6713597,62.0997342 C29.0575851,58.1839669 29.4107339,54.0758543 28.0457962,49.9707786 C27.1076833,47.1493864 21.732611,47.8501656 20.2022714,49.3776393 C19.6790362,49.8998948 19.8723378,51.1703278 19.8723378,51.8829111 C19.8723378,57.1682405 26.9914913,55.1986414 26.9914913,58.3421973 C26.9914913,72.9792302 30.9191897,64.8771867 38.1313873,69.6793121 C48.1678018,76.3618966 45.9763926,76.981595 53.0777543,84.0829567 C56.7511941,87.7563965 60.8192437,87.7689005 62.503478,93.3767069 C64.1046972,98.7081071 53.1759798,98.7157031 50.786754,100.825053 C49.663965,101.816317 47.9736094,104.970571 46.5680513,105.439676 C44.7757187,106.037867 43.334221,105.93607 41.6242359,107.219093 C39.1967302,109.040481 37.7241465,112.151588 37.6034934,112.030935 C35.4555278,109.88297 34.0848666,96.5511248 33.7147244,93.7726273 C33.1258872,89.3524817 28.1241923,88.2337027 26.7275443,84.7420826 C25.1572737,80.8164061 28.2518481,75.223612 25.599097,70.9819941 C19.0797019,60.557804 13.7775712,56.4811506 10.2493953,44.6896152 C9.3074899,41.5416683 13.5912267,38.1609942 15.1264825,35.8570308 C17.0029359,33.0410312 17.7876232,30.0028946 19.8723378,27.2224065 C22.146793,24.1888519 40.8551166,9.46076832 43.8574051,8.63490613 L44.4668556,7.01044608 Z\"></path>\n        <path d=\"M64,126 C98.2416545,126 126,98.2416545 126,64 C126,29.7583455 98.2416545,2 64,2 C29.7583455,2 2,29.7583455 2,64 C2,98.2416545 29.7583455,126 64,126 Z M64,120 C94.927946,120 120,94.927946 120,64 C120,33.072054 94.927946,8 64,8 C33.072054,8 8,33.072054 8,64 C8,94.927946 33.072054,120 64,120 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-1": {
            "title": "$:/core/images/heading-1",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-1 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M14,30 L27.25,30 L27.25,60.104 L61.7,60.104 L61.7,30 L74.95,30 L74.95,105.684 L61.7,105.684 L61.7,71.552 L27.25,71.552 L27.25,105.684 L14,105.684 L14,30 Z M84.3350766,43.78 C86.8790893,43.78 89.3523979,43.5680021 91.7550766,43.144 C94.1577553,42.7199979 96.3307336,42.0133383 98.2740766,41.024 C100.21742,40.0346617 101.87807,38.7626744 103.256077,37.208 C104.634084,35.6533256 105.535075,33.7453446 105.959077,31.484 L115.817077,31.484 L115.817077,105.684 L102.567077,105.684 L102.567077,53.32 L84.3350766,53.32 L84.3350766,43.78 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-2": {
            "title": "$:/core/images/heading-2",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-2 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M125.519077,105.684 L74.8510766,105.684 C74.9217436,99.5359693 76.4057288,94.1653563 79.3030766,89.572 C82.2004244,84.9786437 86.1577182,80.986017 91.1750766,77.594 C93.5777553,75.8273245 96.0863969,74.113675 98.7010766,72.453 C101.315756,70.792325 103.718399,69.0080095 105.909077,67.1 C108.099754,65.1919905 109.901736,63.1250111 111.315077,60.899 C112.728417,58.6729889 113.47041,56.1113478 113.541077,53.214 C113.541077,51.8713266 113.382078,50.4403409 113.064077,48.921 C112.746075,47.4016591 112.127748,45.9883399 111.209077,44.681 C110.290405,43.3736601 109.018418,42.2783377 107.393077,41.395 C105.767735,40.5116622 103.647756,40.07 101.033077,40.07 C98.6303979,40.07 96.6340846,40.5469952 95.0440766,41.501 C93.4540687,42.4550048 92.1820814,43.762325 91.2280766,45.423 C90.2740719,47.083675 89.5674123,49.0446554 89.1080766,51.306 C88.648741,53.5673446 88.3837436,56.0053203 88.3130766,58.62 L76.2290766,58.62 C76.2290766,54.5213128 76.7767378,50.7230175 77.8720766,47.225 C78.9674154,43.7269825 80.610399,40.7060127 82.8010766,38.162 C84.9917542,35.6179873 87.6593942,33.6216739 90.8040766,32.173 C93.948759,30.7243261 97.6057224,30 101.775077,30 C106.297766,30 110.078395,30.7419926 113.117077,32.226 C116.155758,33.7100074 118.611401,35.5826554 120.484077,37.844 C122.356753,40.1053446 123.681739,42.5609868 124.459077,45.211 C125.236414,47.8610133 125.625077,50.3873213 125.625077,52.79 C125.625077,55.7580148 125.165748,58.4433213 124.247077,60.846 C123.328405,63.2486787 122.091751,65.4569899 120.537077,67.471 C118.982402,69.4850101 117.215753,71.3399915 115.237077,73.036 C113.2584,74.7320085 111.209087,76.3219926 109.089077,77.806 C106.969066,79.2900074 104.849087,80.7033266 102.729077,82.046 C100.609066,83.3886734 98.6480856,84.7313266 96.8460766,86.074 C95.0440676,87.4166734 93.47175,88.8123261 92.1290766,90.261 C90.7864032,91.7096739 89.8677458,93.2466585 89.3730766,94.872 L125.519077,94.872 L125.519077,105.684 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-3": {
            "title": "$:/core/images/heading-3",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-3 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M94.8850766,62.224 C96.8637532,62.294667 98.8424001,62.1533351 100.821077,61.8 C102.799753,61.4466649 104.566402,60.8283378 106.121077,59.945 C107.675751,59.0616623 108.930072,57.8426744 109.884077,56.288 C110.838081,54.7333256 111.315077,52.8253446 111.315077,50.564 C111.315077,47.3839841 110.237421,44.8400095 108.082077,42.932 C105.926733,41.0239905 103.153094,40.07 99.7610766,40.07 C97.641066,40.07 95.8037511,40.4939958 94.2490766,41.342 C92.6944022,42.1900042 91.4047484,43.3383261 90.3800766,44.787 C89.3554048,46.2356739 88.5957458,47.860991 88.1010766,49.663 C87.6064075,51.465009 87.3944096,53.3199905 87.4650766,55.228 L75.3810766,55.228 C75.5224107,51.623982 76.1937373,48.2850154 77.3950766,45.211 C78.596416,42.1369846 80.2393995,39.4693446 82.3240766,37.208 C84.4087537,34.9466554 86.9350618,33.1800064 89.9030766,31.908 C92.8710915,30.6359936 96.2277246,30 99.9730766,30 C102.870424,30 105.714729,30.4239958 108.506077,31.272 C111.297424,32.1200042 113.806065,33.3566585 116.032077,34.982 C118.258088,36.6073415 120.042403,38.6743208 121.385077,41.183 C122.72775,43.6916792 123.399077,46.5713171 123.399077,49.822 C123.399077,53.5673521 122.551085,56.8356527 120.855077,59.627 C119.159068,62.4183473 116.509095,64.4499936 112.905077,65.722 L112.905077,65.934 C117.145098,66.7820042 120.448731,68.8843166 122.816077,72.241 C125.183422,75.5976835 126.367077,79.6786426 126.367077,84.484 C126.367077,88.017351 125.660417,91.1796527 124.247077,93.971 C122.833736,96.7623473 120.925755,99.129657 118.523077,101.073 C116.120398,103.016343 113.329093,104.517995 110.149077,105.578 C106.969061,106.638005 103.612428,107.168 100.079077,107.168 C95.7683884,107.168 92.005426,106.549673 88.7900766,105.313 C85.5747272,104.076327 82.8894207,102.327345 80.7340766,100.066 C78.5787325,97.8046554 76.9357489,95.0840159 75.8050766,91.904 C74.6744043,88.7239841 74.0737436,85.1906861 74.0030766,81.304 L86.0870766,81.304 C85.9457426,85.8266893 87.0587315,89.5896517 89.4260766,92.593 C91.7934218,95.5963483 95.3443863,97.098 100.079077,97.098 C104.107097,97.098 107.481396,95.9496782 110.202077,93.653 C112.922757,91.3563219 114.283077,88.0880212 114.283077,83.848 C114.283077,80.9506522 113.717749,78.6540085 112.587077,76.958 C111.456404,75.2619915 109.972419,73.9723378 108.135077,73.089 C106.297734,72.2056623 104.230755,71.6580011 101.934077,71.446 C99.6373985,71.2339989 97.2877553,71.163333 94.8850766,71.234 L94.8850766,62.224 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-4": {
            "title": "$:/core/images/heading-4",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-4 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M8,30 L21.25,30 L21.25,60.104 L55.7,60.104 L55.7,30 L68.95,30 L68.95,105.684 L55.7,105.684 L55.7,71.552 L21.25,71.552 L21.25,105.684 L8,105.684 L8,30 Z M84.5890766,78.548 L107.061077,78.548 L107.061077,45.9 L106.849077,45.9 L84.5890766,78.548 Z M128.049077,88.088 L118.509077,88.088 L118.509077,105.684 L107.061077,105.684 L107.061077,88.088 L75.2610766,88.088 L75.2610766,76.11 L107.061077,31.484 L118.509077,31.484 L118.509077,78.548 L128.049077,78.548 L128.049077,88.088 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-5": {
            "title": "$:/core/images/heading-5",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-5 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M83.7550766,31.484 L122.127077,31.484 L122.127077,42.296 L92.7650766,42.296 L88.9490766,61.164 L89.1610766,61.376 C90.7864181,59.5386575 92.8533974,58.1430048 95.3620766,57.189 C97.8707558,56.2349952 100.361731,55.758 102.835077,55.758 C106.509762,55.758 109.795729,56.3763272 112.693077,57.613 C115.590424,58.8496729 118.0284,60.5809889 120.007077,62.807 C121.985753,65.0330111 123.487405,67.6653181 124.512077,70.704 C125.536748,73.7426819 126.049077,77.028649 126.049077,80.562 C126.049077,83.5300148 125.572081,86.5863176 124.618077,89.731 C123.664072,92.8756824 122.144754,95.7376538 120.060077,98.317 C117.9754,100.896346 115.30776,103.016325 112.057077,104.677 C108.806394,106.337675 104.919766,107.168 100.397077,107.168 C96.7930586,107.168 93.454092,106.691005 90.3800766,105.737 C87.3060613,104.782995 84.6030883,103.35201 82.2710766,101.444 C79.939065,99.5359905 78.0840835,97.1863473 76.7060766,94.395 C75.3280697,91.6036527 74.5684107,88.3353521 74.4270766,84.59 L86.5110766,84.59 C86.8644117,88.6180201 88.2423979,91.7096559 90.6450766,93.865 C93.0477553,96.0203441 96.2277235,97.098 100.185077,97.098 C102.729089,97.098 104.884401,96.6740042 106.651077,95.826 C108.417752,94.9779958 109.848738,93.8120074 110.944077,92.328 C112.039415,90.8439926 112.816741,89.1126766 113.276077,87.134 C113.735412,85.1553234 113.965077,83.0353446 113.965077,80.774 C113.965077,78.7246564 113.682413,76.763676 113.117077,74.891 C112.55174,73.018324 111.703749,71.3753404 110.573077,69.962 C109.442404,68.5486596 107.976086,67.4180042 106.174077,66.57 C104.372068,65.7219958 102.269755,65.298 99.8670766,65.298 C97.3230639,65.298 94.9380878,65.7749952 92.7120766,66.729 C90.4860655,67.6830048 88.8784149,69.4673203 87.8890766,72.082 L75.8050766,72.082 L83.7550766,31.484 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-6": {
            "title": "$:/core/images/heading-6",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-6 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M112.587077,50.246 C112.304409,47.2073181 111.226753,44.751676 109.354077,42.879 C107.481401,41.006324 104.955093,40.07 101.775077,40.07 C99.584399,40.07 97.6940846,40.4763293 96.1040766,41.289 C94.5140687,42.1016707 93.1714154,43.1793266 92.0760766,44.522 C90.9807378,45.8646734 90.0974133,47.401658 89.4260766,49.133 C88.7547399,50.864342 88.2070787,52.6839905 87.7830766,54.592 C87.3590745,56.5000095 87.0587442,58.390324 86.8820766,60.263 C86.7054091,62.135676 86.5464107,63.8846585 86.4050766,65.51 L86.6170766,65.722 C88.2424181,62.7539852 90.4860623,60.5456739 93.3480766,59.097 C96.2100909,57.6483261 99.3017267,56.924 102.623077,56.924 C106.297762,56.924 109.583729,57.5599936 112.481077,58.832 C115.378424,60.1040064 117.834067,61.8529889 119.848077,64.079 C121.862087,66.3050111 123.399071,68.9373181 124.459077,71.976 C125.519082,75.0146819 126.049077,78.300649 126.049077,81.834 C126.049077,85.438018 125.466082,88.7769846 124.300077,91.851 C123.134071,94.9250154 121.455754,97.6103219 119.265077,99.907 C117.074399,102.203678 114.459758,103.987994 111.421077,105.26 C108.382395,106.532006 105.025762,107.168 101.351077,107.168 C95.9097161,107.168 91.4400941,106.16101 87.9420766,104.147 C84.4440591,102.13299 81.6880867,99.3770175 79.6740766,95.879 C77.6600666,92.3809825 76.2644138,88.2823568 75.4870766,83.583 C74.7097394,78.8836432 74.3210766,73.8133605 74.3210766,68.372 C74.3210766,63.9199777 74.7980719,59.4326893 75.7520766,54.91 C76.7060814,50.3873107 78.278399,46.2710186 80.4690766,42.561 C82.6597542,38.8509815 85.5393921,35.8300117 89.1080766,33.498 C92.6767611,31.1659883 97.0757171,30 102.305077,30 C105.273091,30 108.064397,30.4946617 110.679077,31.484 C113.293756,32.4733383 115.608067,33.8513245 117.622077,35.618 C119.636087,37.3846755 121.27907,39.5046543 122.551077,41.978 C123.823083,44.4513457 124.529743,47.2073181 124.671077,50.246 L112.587077,50.246 Z M100.927077,97.098 C103.117754,97.098 105.025735,96.6563378 106.651077,95.773 C108.276418,94.8896623 109.636738,93.7413404 110.732077,92.328 C111.827415,90.9146596 112.640074,89.271676 113.170077,87.399 C113.700079,85.526324 113.965077,83.6006766 113.965077,81.622 C113.965077,79.6433234 113.700079,77.7353425 113.170077,75.898 C112.640074,74.0606575 111.827415,72.4530069 110.732077,71.075 C109.636738,69.6969931 108.276418,68.5840042 106.651077,67.736 C105.025735,66.8879958 103.117754,66.464 100.927077,66.464 C98.736399,66.464 96.8107516,66.8703293 95.1500766,67.683 C93.4894017,68.4956707 92.0937489,69.5909931 90.9630766,70.969 C89.8324043,72.3470069 88.9844128,73.9546575 88.4190766,75.792 C87.8537405,77.6293425 87.5710766,79.5726564 87.5710766,81.622 C87.5710766,83.6713436 87.8537405,85.6146575 88.4190766,87.452 C88.9844128,89.2893425 89.8324043,90.9323261 90.9630766,92.381 C92.0937489,93.8296739 93.4894017,94.9779958 95.1500766,95.826 C96.8107516,96.6740042 98.736399,97.098 100.927077,97.098 L100.927077,97.098 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/help": {
            "title": "$:/core/images/help",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-help tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M36.0548906,111.44117 C30.8157418,115.837088 20.8865444,118.803477 9.5,118.803477 C7.86465619,118.803477 6.25937294,118.742289 4.69372699,118.624467 C12.612543,115.984876 18.7559465,110.02454 21.0611049,102.609942 C8.74739781,92.845129 1.04940554,78.9359851 1.04940554,63.5 C1.04940554,33.9527659 29.2554663,10 64.0494055,10 C98.8433448,10 127.049406,33.9527659 127.049406,63.5 C127.049406,93.0472341 98.8433448,117 64.0494055,117 C53.9936953,117 44.48824,114.999337 36.0548906,111.44117 L36.0548906,111.44117 Z M71.4042554,77.5980086 C71.406883,77.2865764 71.4095079,76.9382011 71.4119569,76.5610548 C71.4199751,75.3262169 71.4242825,74.0811293 71.422912,72.9158546 C71.4215244,71.736154 71.4143321,70.709635 71.4001396,69.8743525 C71.4078362,68.5173028 71.9951951,67.7870427 75.1273009,65.6385471 C75.2388969,65.5619968 76.2124091,64.8981068 76.5126553,64.6910879 C79.6062455,62.5580654 81.5345849,60.9050204 83.2750652,58.5038955 C85.6146327,55.2762841 86.8327108,51.426982 86.8327108,46.8554323 C86.8327108,33.5625756 76.972994,24.9029551 65.3778484,24.9029551 C54.2752771,24.9029551 42.8794554,34.5115163 41.3121702,47.1975534 C40.9043016,50.4989536 43.2499725,53.50591 46.5513726,53.9137786 C49.8527728,54.3216471 52.8597292,51.9759763 53.2675978,48.6745761 C54.0739246,42.1479456 60.2395837,36.9492759 65.3778484,36.9492759 C70.6427674,36.9492759 74.78639,40.5885487 74.78639,46.8554323 C74.78639,50.4892974 73.6853224,52.008304 69.6746221,54.7736715 C69.4052605,54.9593956 68.448509,55.6118556 68.3131127,55.7047319 C65.6309785,57.5445655 64.0858213,58.803255 62.6123358,60.6352315 C60.5044618,63.2559399 59.3714208,66.3518252 59.3547527,69.9487679 C59.3684999,70.8407274 59.3752803,71.8084521 59.3765995,72.9300232 C59.3779294,74.0607297 59.3737237,75.2764258 59.36589,76.482835 C59.3634936,76.8518793 59.3609272,77.1924914 59.3583633,77.4963784 C59.3568319,77.6778944 59.3556368,77.8074256 59.3549845,77.8730928 C59.3219814,81.1994287 61.9917551,83.9227111 65.318091,83.9557142 C68.644427,83.9887173 71.3677093,81.3189435 71.4007124,77.9926076 C71.4014444,77.9187458 71.402672,77.7856841 71.4042554,77.5980086 Z M65.3778489,102.097045 C69.5359735,102.097045 72.9067994,98.7262189 72.9067994,94.5680944 C72.9067994,90.4099698 69.5359735,87.0391439 65.3778489,87.0391439 C61.2197243,87.0391439 57.8488984,90.4099698 57.8488984,94.5680944 C57.8488984,98.7262189 61.2197243,102.097045 65.3778489,102.097045 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/home-button": {
            "title": "$:/core/images/home-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-home-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M112.9847,119.501583 C112.99485,119.336814 113,119.170705 113,119.003406 L113,67.56802 C116.137461,70.5156358 121.076014,70.4518569 124.133985,67.3938855 C127.25818,64.2696912 127.260618,59.2068102 124.131541,56.0777326 L70.3963143,2.34250601 C68.8331348,0.779326498 66.7828947,-0.000743167069 64.7337457,1.61675364e-05 C62.691312,-0.00409949529 60.6426632,0.777559815 59.077717,2.34250601 L33,28.420223 L33,28.420223 L33,8.00697327 C33,3.58484404 29.4092877,0 25,0 C20.581722,0 17,3.59075293 17,8.00697327 L17,44.420223 L5.3424904,56.0777326 C2.21694607,59.2032769 2.22220878,64.2760483 5.34004601,67.3938855 C8.46424034,70.5180798 13.5271213,70.5205187 16.6561989,67.3914411 L17,67.04764 L17,119.993027 C17,119.994189 17.0000002,119.995351 17.0000007,119.996514 C17.0000002,119.997675 17,119.998838 17,120 C17,124.418278 20.5881049,128 24.9992458,128 L105.000754,128 C109.418616,128 113,124.409288 113,120 C113,119.832611 112.99485,119.666422 112.9847,119.501583 Z M97,112 L97,51.5736087 L97,51.5736087 L64.7370156,19.3106244 L33,51.04764 L33,112 L97,112 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/import-button": {
            "title": "$:/core/images/import-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-import-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M105.449437,94.2138951 C105.449437,94.2138951 110.049457,94.1897106 110.049457,99.4026111 C110.049457,104.615512 105.163246,104.615511 105.163246,104.615511 L45.0075072,105.157833 C45.0075072,105.157833 0.367531803,106.289842 0.367532368,66.6449212 C0.367532934,27.0000003 45.0428249,27.0000003 45.0428249,27.0000003 L105.532495,27.0000003 C105.532495,27.0000003 138.996741,25.6734987 138.996741,55.1771866 C138.996741,84.6808745 105.727102,82.8457535 105.727102,82.8457535 L56.1735087,82.8457535 C56.1735087,82.8457535 22.6899229,85.1500223 22.6899229,66.0913753 C22.6899229,47.0327282 56.1735087,49.3383013 56.1735087,49.3383013 L105.727102,49.3383013 C105.727102,49.3383013 111.245209,49.3383024 111.245209,54.8231115 C111.245209,60.3079206 105.727102,60.5074524 105.727102,60.5074524 L56.1735087,60.5074524 C56.1735087,60.5074524 37.48913,60.5074528 37.48913,66.6449195 C37.48913,72.7823862 56.1735087,71.6766023 56.1735087,71.6766023 L105.727102,71.6766029 C105.727102,71.6766029 127.835546,73.1411469 127.835546,55.1771866 C127.835546,35.5304025 105.727102,38.3035317 105.727102,38.3035317 L45.0428249,38.3035317 C45.0428249,38.3035317 11.5287276,38.3035313 11.5287276,66.6449208 C11.5287276,94.9863103 45.0428244,93.9579678 45.0428244,93.9579678 L105.449437,94.2138951 Z\" transform=\"translate(69.367532, 66.000000) rotate(-45.000000) translate(-69.367532, -66.000000) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/info-button": {
            "title": "$:/core/images/info-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-info-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <g transform=\"translate(0.049406, 0.000000)\">\n            <path d=\"M64,128 C99.346224,128 128,99.346224 128,64 C128,28.653776 99.346224,0 64,0 C28.653776,0 0,28.653776 0,64 C0,99.346224 28.653776,128 64,128 Z M64,112 C90.509668,112 112,90.509668 112,64 C112,37.490332 90.509668,16 64,16 C37.490332,16 16,37.490332 16,64 C16,90.509668 37.490332,112 64,112 Z\"></path>\n            <circle cx=\"64\" cy=\"32\" r=\"8\"></circle>\n            <rect x=\"56\" y=\"48\" width=\"16\" height=\"56\" rx=\"8\"></rect>\n        </g>\n    </g>\n</svg>"
        },
        "$:/core/images/italic": {
            "title": "$:/core/images/italic",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-italic tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n         <polygon points=\"66.7114846 0 89.1204482 0 62.4089636 128 40 128\"></polygon>\n    </g>\n</svg>"
        },
        "$:/core/images/left-arrow": {
            "created": "20150315234410875",
            "modified": "20150315235324760",
            "tags": "$:/tags/Image",
            "title": "$:/core/images/left-arrow",
            "text": "<svg class=\"tc-image-left-arrow tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <path transform=\"rotate(135, 63.8945, 64.1752)\" d=\"m109.07576,109.35336c-1.43248,1.43361 -3.41136,2.32182 -5.59717,2.32182l-79.16816,0c-4.36519,0 -7.91592,-3.5444 -7.91592,-7.91666c0,-4.36337 3.54408,-7.91667 7.91592,-7.91667l71.25075,0l0,-71.25075c0,-4.3652 3.54442,-7.91592 7.91667,-7.91592c4.36336,0 7.91667,3.54408 7.91667,7.91592l0,79.16815c0,2.1825 -0.88602,4.16136 -2.3185,5.59467l-0.00027,-0.00056z\"/>\n</svg>\n"
        },
        "$:/core/images/line-width": {
            "title": "$:/core/images/line-width",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-line-width tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M128,-97 L112.992786,-97 C112.452362,-97 112,-96.5522847 112,-96 C112,-95.4438648 112.444486,-95 112.992786,-95 L128,-95 L128,-97 Z M128,-78.6794919 L111.216185,-88.3696322 C110.748163,-88.6398444 110.132549,-88.4782926 109.856406,-88 C109.578339,-87.5183728 109.741342,-86.9117318 110.216185,-86.6375814 L128,-76.3700908 L128,-78.6794919 Z M78.6794919,-128 L88.3696322,-111.216185 C88.6437826,-110.741342 88.4816272,-110.134474 88,-109.856406 C87.5217074,-109.580264 86.9077936,-109.748163 86.6375814,-110.216185 L76.3700908,-128 L78.6794919,-128 Z M97,-128 L97,-112.992786 C97,-112.444486 96.5561352,-112 96,-112 C95.4477153,-112 95,-112.452362 95,-112.992786 L95,-128 L97,-128 Z M115.629909,-128 L105.362419,-110.216185 C105.088268,-109.741342 104.481627,-109.578339 104,-109.856406 C103.521707,-110.132549 103.360156,-110.748163 103.630368,-111.216185 L113.320508,-128 L115.629909,-128 Z M128,-113.320508 L111.216185,-103.630368 C110.741342,-103.356217 110.134474,-103.518373 109.856406,-104 C109.580264,-104.478293 109.748163,-105.092206 110.216185,-105.362419 L128,-115.629909 L128,-113.320508 Z M48,-96 C48,-96.5522847 48.4523621,-97 48.9927864,-97 L79.0072136,-97 C79.5555144,-97 80,-96.5561352 80,-96 C80,-95.4477153 79.5476379,-95 79.0072136,-95 L48.9927864,-95 C48.4444856,-95 48,-95.4438648 48,-96 Z M54.4307806,-120 C54.706923,-120.478293 55.3225377,-120.639844 55.7905589,-120.369632 L81.7838153,-105.362419 C82.2586577,-105.088268 82.4216611,-104.481627 82.1435935,-104 C81.8674512,-103.521707 81.2518365,-103.360156 80.7838153,-103.630368 L54.7905589,-118.637581 C54.3157165,-118.911732 54.152713,-119.518373 54.4307806,-120 Z M104,-82.1435935 C104.478293,-82.4197359 105.092206,-82.2518365 105.362419,-81.7838153 L120.369632,-55.7905589 C120.643783,-55.3157165 120.481627,-54.7088482 120,-54.4307806 C119.521707,-54.1546382 118.907794,-54.3225377 118.637581,-54.7905589 L103.630368,-80.7838153 C103.356217,-81.2586577 103.518373,-81.865526 104,-82.1435935 Z M96,-80 C96.5522847,-80 97,-79.5476379 97,-79.0072136 L97,-48.9927864 C97,-48.4444856 96.5561352,-48 96,-48 C95.4477153,-48 95,-48.4523621 95,-48.9927864 L95,-79.0072136 C95,-79.5555144 95.4438648,-80 96,-80 Z M88,-82.1435935 C88.4782926,-81.8674512 88.6398444,-81.2518365 88.3696322,-80.7838153 L73.3624186,-54.7905589 C73.0882682,-54.3157165 72.4816272,-54.152713 72,-54.4307806 C71.5217074,-54.706923 71.3601556,-55.3225377 71.6303678,-55.7905589 L86.6375814,-81.7838153 C86.9117318,-82.2586577 87.5183728,-82.4216611 88,-82.1435935 Z M82.1435935,-88 C82.4197359,-87.5217074 82.2518365,-86.9077936 81.7838153,-86.6375814 L55.7905589,-71.6303678 C55.3157165,-71.3562174 54.7088482,-71.5183728 54.4307806,-72 C54.1546382,-72.4782926 54.3225377,-73.0922064 54.7905589,-73.3624186 L80.7838153,-88.3696322 C81.2586577,-88.6437826 81.865526,-88.4816272 82.1435935,-88 Z M1.30626177e-08,-41.9868843 L15.0170091,-57.9923909 L20.7983821,-52.9749272 L44.7207091,-81.2095939 L73.4260467,-42.1002685 L85.984793,-56.6159488 L104.48741,-34.0310661 L127.969109,-47.4978019 L127.969109,7.99473128e-07 L1.30626177e-08,7.99473128e-07 L1.30626177e-08,-41.9868843 Z M96,-84 C102.627417,-84 108,-89.372583 108,-96 C108,-102.627417 102.627417,-108 96,-108 C89.372583,-108 84,-102.627417 84,-96 C84,-89.372583 89.372583,-84 96,-84 Z\"></path>\n        <path d=\"M16,18 L112,18 C113.104569,18 114,17.1045695 114,16 C114,14.8954305 113.104569,14 112,14 L16,14 C14.8954305,14 14,14.8954305 14,16 C14,17.1045695 14.8954305,18 16,18 L16,18 Z M16,35 L112,35 C114.209139,35 116,33.209139 116,31 C116,28.790861 114.209139,27 112,27 L16,27 C13.790861,27 12,28.790861 12,31 C12,33.209139 13.790861,35 16,35 L16,35 Z M16,56 L112,56 C115.313708,56 118,53.3137085 118,50 C118,46.6862915 115.313708,44 112,44 L16,44 C12.6862915,44 10,46.6862915 10,50 C10,53.3137085 12.6862915,56 16,56 L16,56 Z M16,85 L112,85 C117.522847,85 122,80.5228475 122,75 C122,69.4771525 117.522847,65 112,65 L16,65 C10.4771525,65 6,69.4771525 6,75 C6,80.5228475 10.4771525,85 16,85 L16,85 Z M16,128 L112,128 C120.836556,128 128,120.836556 128,112 C128,103.163444 120.836556,96 112,96 L16,96 C7.163444,96 0,103.163444 0,112 C0,120.836556 7.163444,128 16,128 L16,128 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/link": {
            "title": "$:/core/images/link",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-link tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M128.719999,57.568543 C130.219553,53.8628171 131.045202,49.8121445 131.045202,45.5685425 C131.045202,27.8915447 116.718329,13.5685425 99.0452364,13.5685425 L67.0451674,13.5685425 C49.3655063,13.5685425 35.0452019,27.8954305 35.0452019,45.5685425 C35.0452019,63.2455403 49.3720745,77.5685425 67.0451674,77.5685425 L99.0452364,77.5685425 C100.406772,77.5685425 101.748384,77.4835732 103.065066,77.3186499 C96.4792444,73.7895096 91.1190212,68.272192 87.7873041,61.5685425 L67.0506214,61.5685425 C58.2110723,61.5685425 51.0452019,54.4070414 51.0452019,45.5685425 C51.0452019,36.7319865 58.2005234,29.5685425 67.0506214,29.5685425 L99.0397824,29.5685425 C107.879331,29.5685425 115.045202,36.7300436 115.045202,45.5685425 C115.045202,48.9465282 113.99957,52.0800164 112.21335,54.6623005 C114.314383,56.4735917 117.050039,57.5685425 120.041423,57.5685425 L128.720003,57.5685425 Z\" transform=\"translate(83.045202, 45.568542) rotate(-225.000000) translate(-83.045202, -45.568542)\"></path>\n        <path d=\"M-0.106255113,71.0452019 C-1.60580855,74.7509276 -2.43145751,78.8016001 -2.43145751,83.0452019 C-2.43145751,100.7222 11.8954151,115.045202 29.568508,115.045202 L61.568577,115.045202 C79.2482381,115.045202 93.5685425,100.718314 93.5685425,83.0452019 C93.5685425,65.3682041 79.2416699,51.0452019 61.568577,51.0452019 L29.568508,51.0452019 C28.206973,51.0452019 26.8653616,51.1301711 25.5486799,51.2950943 C32.1345,54.8242347 37.4947231,60.3415524 40.8264403,67.0452019 L61.563123,67.0452019 C70.4026721,67.0452019 77.5685425,74.206703 77.5685425,83.0452019 C77.5685425,91.8817579 70.413221,99.0452019 61.563123,99.0452019 L29.573962,99.0452019 C20.7344129,99.0452019 13.5685425,91.8837008 13.5685425,83.0452019 C13.5685425,79.6672162 14.6141741,76.533728 16.4003949,73.9514439 C14.2993609,72.1401527 11.5637054,71.0452019 8.5723215,71.0452019 L-0.106255113,71.0452019 Z\" transform=\"translate(45.568542, 83.045202) rotate(-225.000000) translate(-45.568542, -83.045202)\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/list-bullet": {
            "title": "$:/core/images/list-bullet",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-list-bullet tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M11.6363636,40.2727273 C18.0629498,40.2727273 23.2727273,35.0629498 23.2727273,28.6363636 C23.2727273,22.2097775 18.0629498,17 11.6363636,17 C5.20977746,17 0,22.2097775 0,28.6363636 C0,35.0629498 5.20977746,40.2727273 11.6363636,40.2727273 Z M11.6363636,75.1818182 C18.0629498,75.1818182 23.2727273,69.9720407 23.2727273,63.5454545 C23.2727273,57.1188684 18.0629498,51.9090909 11.6363636,51.9090909 C5.20977746,51.9090909 0,57.1188684 0,63.5454545 C0,69.9720407 5.20977746,75.1818182 11.6363636,75.1818182 Z M11.6363636,110.090909 C18.0629498,110.090909 23.2727273,104.881132 23.2727273,98.4545455 C23.2727273,92.0279593 18.0629498,86.8181818 11.6363636,86.8181818 C5.20977746,86.8181818 0,92.0279593 0,98.4545455 C0,104.881132 5.20977746,110.090909 11.6363636,110.090909 Z M34.9090909,22.8181818 L128,22.8181818 L128,34.4545455 L34.9090909,34.4545455 L34.9090909,22.8181818 Z M34.9090909,57.7272727 L128,57.7272727 L128,69.3636364 L34.9090909,69.3636364 L34.9090909,57.7272727 Z M34.9090909,92.6363636 L128,92.6363636 L128,104.272727 L34.9090909,104.272727 L34.9090909,92.6363636 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/list-number": {
            "title": "$:/core/images/list-number",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-list-number tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M33.8390805,22.3563218 L128,22.3563218 L128,34.1264368 L33.8390805,34.1264368 L33.8390805,22.3563218 Z M33.8390805,57.6666667 L128,57.6666667 L128,69.4367816 L33.8390805,69.4367816 L33.8390805,57.6666667 Z M33.8390805,92.9770115 L128,92.9770115 L128,104.747126 L33.8390805,104.747126 L33.8390805,92.9770115 Z M0.379509711,42.6307008 L0.379509711,40.4082314 L1.37821948,40.4082314 C2.20382368,40.4082314 2.82301754,40.268077 3.23581964,39.9877642 C3.64862174,39.7074513 3.85501969,39.0400498 3.85501969,37.9855395 L3.85501969,22.7686318 C3.85501969,21.3270228 3.66193774,20.4327047 3.27576803,20.0856507 C2.88959832,19.7385967 1.79768657,19.5650723 0,19.5650723 L0,17.4226919 C3.50215975,17.2758613 6.25191314,16.4683055 8.24934266,15 L10.3666074,15 L10.3666074,37.865406 C10.3666074,38.786434 10.5164123,39.4404875 10.8160268,39.8275862 C11.1156412,40.2146849 11.764796,40.4082314 12.7635108,40.4082314 L13.7622206,40.4082314 L13.7622206,42.6307008 L0.379509711,42.6307008 Z M0.0798967812,77.9873934 L0.0798967812,76.0852799 C7.27064304,69.5312983 10.8659622,63.5046623 10.8659622,58.005191 C10.8659622,56.4434479 10.5397203,55.195407 9.88722667,54.2610308 C9.23473303,53.3266546 8.36253522,52.8594735 7.27060709,52.8594735 C6.3784219,52.8594735 5.61608107,53.1764892 4.98356173,53.8105302 C4.35104238,54.4445712 4.03478745,55.1753759 4.03478745,56.0029663 C4.03478745,56.9773871 4.28113339,57.8316611 4.77383268,58.5658139 C4.88036225,58.7259926 4.93362624,58.8461249 4.93362624,58.9262143 C4.93362624,59.0730449 4.77383427,59.2065252 4.45424555,59.3266593 C4.2411864,59.4067486 3.70188852,59.6336652 2.83633573,60.0074156 C1.99741533,60.3811661 1.47809145,60.5680386 1.2783485,60.5680386 C1.03865696,60.5680386 0.765679018,60.1976307 0.459406492,59.4568039 C0.153133966,58.715977 0,57.9184322 0,57.0641453 C0,55.1153036 0.848894811,53.5202138 2.5467099,52.2788283 C4.24452499,51.0374428 6.34512352,50.4167594 8.84856852,50.4167594 C11.3120649,50.4167594 13.3793735,51.0874979 15.0505562,52.4289952 C16.7217389,53.7704924 17.5573177,55.5224215 17.5573177,57.684835 C17.5573177,58.9662652 17.2743527,60.2076321 16.7084144,61.4089729 C16.142476,62.6103138 14.7875733,64.4623531 12.6436656,66.9651465 C10.4997579,69.4679398 8.40914641,71.7804862 6.3717683,73.902855 L17.8169822,73.902855 L16.7982982,79.6292176 L14.6810335,79.6292176 C14.7609307,79.3489048 14.8008787,79.0952922 14.8008787,78.8683723 C14.8008787,78.4812736 14.7010087,78.237672 14.5012658,78.1375603 C14.3015228,78.0374485 13.9020429,77.9873934 13.3028141,77.9873934 L0.0798967812,77.9873934 Z M12.2042333,97.1935484 C13.9486551,97.2335931 15.4400468,97.8309175 16.6784531,98.9855395 C17.9168594,100.140162 18.5360532,101.75861 18.5360532,103.840934 C18.5360532,106.830938 17.4041935,109.233584 15.14044,111.048943 C12.8766866,112.864303 10.1402492,113.771969 6.93104577,113.771969 C4.92030005,113.771969 3.26245842,113.388213 1.95747114,112.62069 C0.652483855,111.853166 0,110.848727 0,109.607341 C0,108.833144 0.26964894,108.209124 0.808954909,107.735261 C1.34826088,107.261399 1.93749375,107.024472 2.57667119,107.024472 C3.21584864,107.024472 3.73850152,107.224692 4.14464552,107.625139 C4.55078953,108.025586 4.92696644,108.67964 5.27318756,109.587319 C5.73925445,110.855401 6.51158227,111.489433 7.59019421,111.489433 C8.85523291,111.489433 9.87723568,111.012241 10.6562332,110.057842 C11.4352307,109.103444 11.8247236,107.371536 11.8247236,104.862069 C11.8247236,103.153495 11.7048796,101.838714 11.4651881,100.917686 C11.2254966,99.9966584 10.6728827,99.5361513 9.80732989,99.5361513 C9.22141723,99.5361513 8.62219737,99.843156 8.00965231,100.457175 C7.51695303,100.951059 7.07752513,101.197998 6.69135542,101.197998 C6.3584505,101.197998 6.08880156,101.051169 5.88240051,100.757508 C5.67599946,100.463847 5.57280049,100.183539 5.57280049,99.916574 C5.57280049,99.5962164 5.67599946,99.3225818 5.88240051,99.0956618 C6.08880156,98.8687419 6.57150646,98.5016711 7.33052967,97.9944383 C10.2068282,96.0722929 11.6449559,93.9766521 11.6449559,91.7074527 C11.6449559,90.5194601 11.3386879,89.615131 10.7261429,88.9944383 C10.1135978,88.3737455 9.37455999,88.0634038 8.5090072,88.0634038 C7.71003539,88.0634038 6.98431355,88.3270274 6.33181991,88.8542825 C5.67932627,89.3815377 5.35308434,90.0122321 5.35308434,90.7463849 C5.35308434,91.3871 5.60608828,91.9810874 6.11210376,92.5283648 C6.28521432,92.7285883 6.3717683,92.8954387 6.3717683,93.028921 C6.3717683,93.1490551 5.80250943,93.4560598 4.6639746,93.9499444 C3.52543978,94.4438289 2.80970494,94.6907675 2.51674861,94.6907675 C2.10394651,94.6907675 1.76771758,94.3570667 1.50805174,93.6896552 C1.24838591,93.0222436 1.11855494,92.4082342 1.11855494,91.8476085 C1.11855494,90.0989901 2.04734573,88.6240327 3.90495518,87.4226919 C5.76256463,86.2213511 7.86982116,85.6206897 10.226788,85.6206897 C12.2907985,85.6206897 14.0784711,86.0678487 15.5898594,86.9621802 C17.1012478,87.8565117 17.8569306,89.0778566 17.8569306,90.6262514 C17.8569306,91.987771 17.2876717,93.2491599 16.1491369,94.4104561 C15.0106021,95.5717522 13.6956474,96.4994404 12.2042333,97.1935484 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/list": {
            "title": "$:/core/images/list",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-list tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M0.719999312,185.568543 C2.21955287,181.862817 3.0452019,177.812144 3.0452019,173.568542 C3.0452019,155.891545 -11.2816707,141.568542 -28.9547636,141.568542 L-60.9548326,141.568542 C-78.6344937,141.568542 -92.9547981,155.895431 -92.9547981,173.568542 C-92.9547981,191.24554 -78.6279255,205.568542 -60.9548326,205.568542 L-28.9547636,205.568542 C-27.593228,205.568542 -26.2516158,205.483573 -24.9349335,205.31865 C-31.5207556,201.78951 -36.8809788,196.272192 -40.2126959,189.568542 L-60.9493786,189.568542 C-69.7889277,189.568542 -76.9547981,182.407041 -76.9547981,173.568542 C-76.9547981,164.731986 -69.7994766,157.568542 -60.9493786,157.568542 L-28.9602176,157.568542 C-20.1206685,157.568542 -12.9547981,164.730044 -12.9547981,173.568542 C-12.9547981,176.946528 -14.0004297,180.080016 -15.7866505,182.6623 C-13.6856165,184.473592 -10.949961,185.568542 -7.9585771,185.568542 L0.720002586,185.568542 Z\" transform=\"translate(-44.954798, 173.568542) rotate(-225.000000) translate(44.954798, -173.568542) \"></path>\n        <path d=\"M87.7480315,128 L23.9992458,128 C19.5813843,128 16,124.409247 16,119.993027 L16,8.00697327 C16,3.58484404 19.5881049,0 23.9992458,0 L104.000754,0 C108.418616,0 112,3.59075293 112,8.00697327 L112,104 L91.2492027,104 C90.2848199,104 89.410573,104.391703 88.7768998,105.025201 C88.1373658,105.661376 87.7480315,106.53563 87.7480315,107.501171 L87.7480315,128 Z M95.7480315,127.879386 L111.627417,112 L95.7480315,112 L95.7480315,127.879386 Z M40,15.5089165 C40,13.5709954 41.5636015,12 43.4998101,12 L98.5001899,12 C100.433082,12 102,13.5614718 102,15.5089165 L102,16.4910835 C102,18.4290046 100.436399,20 98.5001899,20 L43.4998101,20 C41.5669183,20 40,18.4385282 40,16.4910835 L40,15.5089165 Z M32,22 C35.3137085,22 38,19.3137085 38,16 C38,12.6862915 35.3137085,10 32,10 C28.6862915,10 26,12.6862915 26,16 C26,19.3137085 28.6862915,22 32,22 Z M40,31.5089165 C40,29.5709954 41.5636015,28 43.4998101,28 L98.5001899,28 C100.433082,28 102,29.5614718 102,31.5089165 L102,32.4910835 C102,34.4290046 100.436399,36 98.5001899,36 L43.4998101,36 C41.5669183,36 40,34.4385282 40,32.4910835 L40,31.5089165 Z M40,47.5089165 C40,45.5709954 41.5636015,44 43.4998101,44 L98.5001899,44 C100.433082,44 102,45.5614718 102,47.5089165 L102,48.4910835 C102,50.4290046 100.436399,52 98.5001899,52 L43.4998101,52 C41.5669183,52 40,50.4385282 40,48.4910835 L40,47.5089165 Z M40,63.5089165 C40,61.5709954 41.5636015,60 43.4998101,60 L98.5001899,60 C100.433082,60 102,61.5614718 102,63.5089165 L102,64.4910835 C102,66.4290046 100.436399,68 98.5001899,68 L43.4998101,68 C41.5669183,68 40,66.4385282 40,64.4910835 L40,63.5089165 Z M40,79.5089165 C40,77.5709954 41.5636015,76 43.4998101,76 L98.5001899,76 C100.433082,76 102,77.5614718 102,79.5089165 L102,80.4910835 C102,82.4290046 100.436399,84 98.5001899,84 L43.4998101,84 C41.5669183,84 40,82.4385282 40,80.4910835 L40,79.5089165 Z M40,95.5089165 C40,93.5709954 41.5636015,92 43.4998101,92 L98.5001899,92 C100.433082,92 102,93.5614718 102,95.5089165 L102,96.4910835 C102,98.4290046 100.436399,100 98.5001899,100 L43.4998101,100 C41.5669183,100 40,98.4385282 40,96.4910835 L40,95.5089165 Z M40,111.508916 C40,109.570995 41.5680474,108 43.4972017,108 L76.5027983,108 C78.4342495,108 80,109.561472 80,111.508916 L80,112.491084 C80,114.429005 78.4319526,116 76.5027983,116 L43.4972017,116 C41.5657505,116 40,114.438528 40,112.491084 L40,111.508916 Z M32,38 C35.3137085,38 38,35.3137085 38,32 C38,28.6862915 35.3137085,26 32,26 C28.6862915,26 26,28.6862915 26,32 C26,35.3137085 28.6862915,38 32,38 Z M32,54 C35.3137085,54 38,51.3137085 38,48 C38,44.6862915 35.3137085,42 32,42 C28.6862915,42 26,44.6862915 26,48 C26,51.3137085 28.6862915,54 32,54 Z M32,70 C35.3137085,70 38,67.3137085 38,64 C38,60.6862915 35.3137085,58 32,58 C28.6862915,58 26,60.6862915 26,64 C26,67.3137085 28.6862915,70 32,70 Z M32,86 C35.3137085,86 38,83.3137085 38,80 C38,76.6862915 35.3137085,74 32,74 C28.6862915,74 26,76.6862915 26,80 C26,83.3137085 28.6862915,86 32,86 Z M32,102 C35.3137085,102 38,99.3137085 38,96 C38,92.6862915 35.3137085,90 32,90 C28.6862915,90 26,92.6862915 26,96 C26,99.3137085 28.6862915,102 32,102 Z M32,118 C35.3137085,118 38,115.313708 38,112 C38,108.686292 35.3137085,106 32,106 C28.6862915,106 26,108.686292 26,112 C26,115.313708 28.6862915,118 32,118 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/locked-padlock": {
            "title": "$:/core/images/locked-padlock",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-locked-padlock tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M96.4723753,64 L105,64 L105,96.0097716 C105,113.673909 90.6736461,128 73.001193,128 L55.998807,128 C38.3179793,128 24,113.677487 24,96.0097716 L24,64 L32.0000269,64 C32.0028554,48.2766389 32.3030338,16.2688026 64.1594984,16.2688041 C95.9543927,16.2688056 96.4648869,48.325931 96.4723753,64 Z M80.5749059,64 L48.4413579,64 C48.4426205,47.71306 48.5829272,31.9999996 64.1595001,31.9999996 C79.8437473,31.9999996 81.1369461,48.1359182 80.5749059,64 Z M67.7315279,92.3641717 C70.8232551,91.0923621 73,88.0503841 73,84.5 C73,79.8055796 69.1944204,76 64.5,76 C59.8055796,76 56,79.8055796 56,84.5 C56,87.947435 58.0523387,90.9155206 61.0018621,92.2491029 L55.9067479,115.020857 L72.8008958,115.020857 L67.7315279,92.3641717 L67.7315279,92.3641717 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/mail": {
            "title": "$:/core/images/mail",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-mail tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M122.826782,104.894066 C121.945525,105.22777 120.990324,105.41043 119.993027,105.41043 L8.00697327,105.41043 C7.19458381,105.41043 6.41045219,105.289614 5.67161357,105.064967 L5.67161357,105.064967 L39.8346483,70.9019325 L60.6765759,91.7438601 C61.6118278,92.679112 62.8865166,93.0560851 64.0946097,92.8783815 C65.2975108,93.0473238 66.5641085,92.6696979 67.4899463,91.7438601 L88.5941459,70.6396605 C88.6693095,70.7292352 88.7490098,70.8162939 88.8332479,70.9005321 L122.826782,104.894066 Z M127.903244,98.6568194 C127.966933,98.2506602 128,97.8343714 128,97.4103789 L128,33.410481 C128,32.7414504 127.917877,32.0916738 127.763157,31.4706493 L94.2292399,65.0045665 C94.3188145,65.0797417 94.4058701,65.1594458 94.4901021,65.2436778 L127.903244,98.6568194 Z M0.205060636,99.2178117 C0.0709009529,98.6370366 0,98.0320192 0,97.4103789 L0,33.410481 C0,32.694007 0.0944223363,31.9995312 0.27147538,31.3387595 L0.27147538,31.3387595 L34.1777941,65.2450783 L0.205060636,99.2178117 L0.205060636,99.2178117 Z M5.92934613,25.6829218 C6.59211333,25.5051988 7.28862283,25.4104299 8.00697327,25.4104299 L119.993027,25.4104299 C120.759109,25.4104299 121.500064,25.5178649 122.201605,25.7184927 L122.201605,25.7184927 L64.0832611,83.8368368 L5.92934613,25.6829218 L5.92934613,25.6829218 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/menu-button": {
            "title": "$:/core/images/menu-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-menu-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <rect x=\"0\" y=\"16\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n    <rect x=\"0\" y=\"56\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n    <rect x=\"0\" y=\"96\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n</svg>"
        },
        "$:/core/images/mono-block": {
            "title": "$:/core/images/mono-block",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-mono-block tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M23.9653488,32.9670593 L24.3217888,32.9670593 C25.0766067,32.9670593 25.6497006,33.1592554 26.0410876,33.5436534 C26.4324747,33.9280514 26.6281653,34.4906619 26.6281653,35.2315017 C26.6281653,36.0562101 26.4219913,36.6502709 26.009637,37.0137017 C25.5972828,37.3771326 24.9158602,37.5588453 23.9653488,37.5588453 L17.6542639,37.5588453 C16.6897744,37.5588453 16.0048573,37.380627 15.5994921,37.0241852 C15.1941269,36.6677435 14.9914474,36.0701882 14.9914474,35.2315017 C14.9914474,34.4207713 15.1941269,33.8406885 15.5994921,33.4912358 C16.0048573,33.141783 16.6897744,32.9670593 17.6542639,32.9670593 L18.388111,32.9670593 L17.5284616,30.5139133 L8.47069195,30.5139133 L7.5691084,32.9670593 L8.30295547,32.9670593 C9.25346691,32.9670593 9.93488953,33.1452775 10.3472438,33.5017193 C10.759598,33.8581611 10.965772,34.4347494 10.965772,35.2315017 C10.965772,36.0562101 10.759598,36.6502709 10.3472438,37.0137017 C9.93488953,37.3771326 9.25346691,37.5588453 8.30295547,37.5588453 L2.89345418,37.5588453 C1.92896463,37.5588453 1.24404754,37.3771326 0.838682371,37.0137017 C0.433317198,36.6502709 0.230637652,36.0562101 0.230637652,35.2315017 C0.230637652,34.4906619 0.426328248,33.9280514 0.817715312,33.5436534 C1.20910238,33.1592554 1.78219626,32.9670593 2.53701417,32.9670593 L2.89345418,32.9670593 L8.51262607,17.3256331 L6.83526132,17.3256331 C5.88474988,17.3256331 5.20332727,17.1439204 4.79097304,16.7804895 C4.37861882,16.4170587 4.1724448,15.8299869 4.1724448,15.0192565 C4.1724448,14.1945481 4.37861882,13.6004873 4.79097304,13.2370565 C5.20332727,12.8736257 5.88474988,12.691913 6.83526132,12.691913 L14.6979086,12.691913 C15.9419603,12.691913 16.815579,13.3628521 17.318791,14.7047506 L17.318791,14.7676518 L23.9653488,32.9670593 Z M12.9786097,17.3256331 L9.9383861,26.1737321 L16.0188333,26.1737321 L12.9786097,17.3256331 Z M35.3809383,26.6979086 L35.3809383,33.0928616 L38.5259972,33.0928616 C40.7485166,33.0928616 42.3140414,32.8482484 43.2226185,32.3590146 C44.1311956,31.8697807 44.5854773,31.0520736 44.5854773,29.9058686 C44.5854773,28.7456855 44.1521624,27.9209895 43.2855197,27.4317556 C42.4188769,26.9425218 40.9022748,26.6979086 38.7356678,26.6979086 L35.3809383,26.6979086 Z M46.0741385,24.370565 C47.5977525,24.9296893 48.7159844,25.6949794 49.428868,26.666458 C50.1417516,27.6379366 50.498188,28.8784752 50.498188,30.388111 C50.498188,31.6601189 50.1906743,32.8202846 49.5756374,33.8686428 C48.9606006,34.917001 48.0799929,35.7766419 46.933788,36.4475911 C46.2628387,36.8389782 45.5115266,37.1220307 44.6798291,37.296757 C43.8481316,37.4714834 42.6704935,37.5588453 41.1468796,37.5588453 L39.3856466,37.5588453 L30.2020747,37.5588453 C29.2795194,37.5588453 28.6190637,37.3771326 28.2206876,37.0137017 C27.8223114,36.6502709 27.6231264,36.0562101 27.6231264,35.2315017 C27.6231264,34.4906619 27.811828,33.9280514 28.189237,33.5436534 C28.5666459,33.1592554 29.118773,32.9670593 29.8456347,32.9670593 L30.2020747,32.9670593 L30.2020747,17.3256331 L29.8456347,17.3256331 C29.118773,17.3256331 28.5666459,17.1299425 28.189237,16.7385554 C27.811828,16.3471683 27.6231264,15.7740744 27.6231264,15.0192565 C27.6231264,14.2085262 27.8258059,13.6179599 28.2311711,13.24754 C28.6365363,12.8771201 29.2934976,12.691913 30.2020747,12.691913 L39.8469219,12.691913 C42.796303,12.691913 45.0362615,13.2650068 46.5668644,14.4112118 C48.0974674,15.5574168 48.8627574,17.2347648 48.8627574,19.443306 C48.8627574,20.5335986 48.6286276,21.4945792 48.1603609,22.3262767 C47.6920943,23.1579742 46.9966938,23.8393968 46.0741385,24.370565 L46.0741385,24.370565 Z M35.3809383,17.1998307 L35.3809383,22.4835296 L38.2114913,22.4835296 C39.9307988,22.4835296 41.1433816,22.2808501 41.8492761,21.8754849 C42.5551706,21.4701197 42.9081126,20.7852027 42.9081126,19.8207131 C42.9081126,18.912136 42.5901154,18.2481858 41.9541114,17.8288425 C41.3181074,17.4094992 40.2872373,17.1998307 38.8614701,17.1998307 L35.3809383,17.1998307 Z M71.244119,13.3838259 C71.5236812,12.880614 71.8102281,12.5241775 72.1037684,12.3145059 C72.3973087,12.1048342 72.7677231,12 73.2150226,12 C73.8999499,12 74.3856819,12.1817127 74.6722332,12.5451435 C74.9587844,12.9085744 75.1020579,13.5305909 75.1020579,14.4112118 L75.143992,19.8626472 C75.143992,20.8271368 74.9867406,21.4771091 74.6722332,21.8125837 C74.3577257,22.1480584 73.7881263,22.3157932 72.9634178,22.3157932 C72.3763372,22.3157932 71.92555,22.1760142 71.6110425,21.896452 C71.2965351,21.6168898 71.0274605,21.0997075 70.8038107,20.3448896 C70.4403799,19.0169692 69.8602971,18.0629775 69.0635448,17.482886 C68.2667926,16.9027945 67.1625385,16.612753 65.7507494,16.612753 C63.5981206,16.612753 61.9487284,17.3396038 60.8025235,18.7933272 C59.6563185,20.2470506 59.0832246,22.3507245 59.0832246,25.104412 C59.0832246,27.8441215 59.6633074,29.9477954 60.8234905,31.4154969 C61.9836736,32.8831984 63.6400547,33.6170381 65.7926836,33.6170381 C67.2603851,33.6170381 68.878327,33.1278116 70.6465578,32.149344 C72.4147886,31.1708763 73.5295261,30.6816498 73.9908037,30.6816498 C74.53595,30.6816498 74.9937262,30.9122852 75.3641461,31.3735628 C75.734566,31.8348404 75.9197732,32.4079343 75.9197732,33.0928616 C75.9197732,34.3229353 74.836486,35.4831009 72.669879,36.5733935 C70.5032721,37.663686 68.0641285,38.2088241 65.3523753,38.2088241 C61.6901107,38.2088241 58.7267959,36.9997358 56.4623422,34.5815228 C54.1978885,32.1633099 53.0656786,29.0043046 53.0656786,25.104412 C53.0656786,21.3443006 54.2118664,18.22024 56.5042763,15.7321366 C58.7966863,13.2440331 61.7040894,12 65.226573,12 C66.2190187,12 67.1974717,12.1118232 68.1619613,12.3354729 C69.1264508,12.5591227 70.1538264,12.9085702 71.244119,13.3838259 L71.244119,13.3838259 Z M81.4645862,32.9670593 L81.4645862,17.3256331 L81.1081461,17.3256331 C80.3533282,17.3256331 79.7802344,17.1299425 79.3888473,16.7385554 C78.9974602,16.3471683 78.8017696,15.7740744 78.8017696,15.0192565 C78.8017696,14.2085262 79.0114381,13.6179599 79.4307814,13.24754 C79.8501247,12.8771201 80.5280528,12.691913 81.4645862,12.691913 L85.4063933,12.691913 L86.6434498,12.691913 C89.5648747,12.691913 91.7034933,12.8177141 93.0593699,13.06932 C94.4152465,13.320926 95.5684233,13.740263 96.5189347,14.3273436 C98.210286,15.3337675 99.5067362,16.7699967 100.408324,18.6360743 C101.309912,20.5021519 101.7607,22.6582429 101.7607,25.104412 C101.7607,27.6903623 101.247012,29.9512876 100.219621,31.8872557 C99.1922296,33.8232239 97.7350336,35.2874089 95.8479888,36.2798546 C94.9953241,36.7271541 93.9959043,37.0521403 92.8496993,37.2548229 C91.7034944,37.4575055 89.9981906,37.5588453 87.7337369,37.5588453 L85.4063933,37.5588453 L81.4645862,37.5588453 C80.5000966,37.5588453 79.8151795,37.380627 79.4098143,37.0241852 C79.0044492,36.6677435 78.8017696,36.0701882 78.8017696,35.2315017 C78.8017696,34.4906619 78.9974602,33.9280514 79.3888473,33.5436534 C79.7802344,33.1592554 80.3533282,32.9670593 81.1081461,32.9670593 L81.4645862,32.9670593 Z M86.8740874,17.2417648 L86.8740874,32.9670593 L88.0692098,32.9670593 C90.7110725,32.9670593 92.6609895,32.3205814 93.9190194,31.0276063 C95.1770492,29.7346312 95.8060547,27.7462749 95.8060547,25.0624779 C95.8060547,22.4206153 95.1665658,20.4497314 93.8875688,19.1497672 C92.6085718,17.849803 90.6831161,17.1998307 88.1111439,17.1998307 C87.7756693,17.1998307 87.5205727,17.2033252 87.3458463,17.2103142 C87.1711199,17.2173033 87.0138685,17.2277867 86.8740874,17.2417648 L86.8740874,17.2417648 Z M121.94052,17.1159625 L112.190837,17.1159625 L112.190837,22.4835296 L115.88104,22.4835296 L115.88104,22.2319249 C115.88104,21.4351727 116.055763,20.841112 116.405216,20.4497249 C116.754669,20.0583378 117.285829,19.8626472 117.998713,19.8626472 C118.627728,19.8626472 119.141415,20.0408655 119.539792,20.3973072 C119.938168,20.753749 120.137353,21.2045363 120.137353,21.7496826 C120.137353,21.7776388 120.144342,21.8684951 120.15832,22.0222543 C120.172298,22.1760135 120.179287,22.3297704 120.179287,22.4835296 L120.179287,26.8237109 C120.179287,27.7602442 120.011552,28.4311834 119.676077,28.8365486 C119.340603,29.2419138 118.795465,29.4445933 118.040647,29.4445933 C117.327763,29.4445933 116.789614,29.2558917 116.426183,28.8784827 C116.062752,28.5010738 115.88104,27.9419578 115.88104,27.201118 L115.88104,26.8237109 L112.190837,26.8237109 L112.190837,33.0928616 L121.94052,33.0928616 L121.94052,30.5977816 C121.94052,29.6612482 122.118738,28.9903091 122.47518,28.5849439 C122.831622,28.1795787 123.415199,27.9768992 124.225929,27.9768992 C125.022682,27.9768992 125.592281,28.1760842 125.934745,28.5744604 C126.277208,28.9728365 126.448438,29.6472701 126.448438,30.5977816 L126.448438,35.6718099 C126.448438,36.4266278 126.30167,36.9298322 126.008129,37.1814382 C125.714589,37.4330442 125.134506,37.5588453 124.267863,37.5588453 L107.095842,37.5588453 C106.173287,37.5588453 105.512831,37.3771326 105.114455,37.0137017 C104.716079,36.6502709 104.516894,36.0562101 104.516894,35.2315017 C104.516894,34.4906619 104.705595,33.9280514 105.083004,33.5436534 C105.460413,33.1592554 106.01254,32.9670593 106.739402,32.9670593 L107.095842,32.9670593 L107.095842,17.3256331 L106.739402,17.3256331 C106.026518,17.3256331 105.477886,17.126448 105.093488,16.7280719 C104.70909,16.3296957 104.516894,15.7600963 104.516894,15.0192565 C104.516894,14.2085262 104.719573,13.6179599 105.124938,13.24754 C105.530304,12.8771201 106.187265,12.691913 107.095842,12.691913 L124.267863,12.691913 C125.120528,12.691913 125.697116,12.8212085 125.997646,13.0798036 C126.298175,13.3383986 126.448438,13.8520864 126.448438,14.6208824 L126.448438,19.3175037 C126.448438,20.2680151 126.273714,20.9494377 125.924261,21.361792 C125.574808,21.7741462 125.008703,21.9803202 124.225929,21.9803202 C123.415199,21.9803202 122.831622,21.7706517 122.47518,21.3513084 C122.118738,20.9319652 121.94052,20.254037 121.94052,19.3175037 L121.94052,17.1159625 Z M19.7719369,47.6405477 C20.037521,47.1373358 20.3205734,46.7808993 20.6211028,46.5712277 C20.9216322,46.361556 21.295541,46.2567218 21.7428405,46.2567218 C22.4277678,46.2567218 22.9134998,46.4384345 23.2000511,46.8018653 C23.4866023,47.1652962 23.6298758,47.7873127 23.6298758,48.6679336 L23.6718099,54.119369 C23.6718099,55.0838586 23.5145586,55.7338309 23.2000511,56.0693055 C22.8855436,56.4047802 22.3089553,56.572515 21.4702687,56.572515 C20.8831881,56.572515 20.4254119,56.4292415 20.0969263,56.1426902 C19.7684407,55.856139 19.4993662,55.3424512 19.2896945,54.6016114 C18.9122856,53.2597129 18.3322027,52.3022267 17.5494286,51.7291243 C16.7666545,51.1560218 15.6693894,50.8694748 14.2576003,50.8694748 C12.1049715,50.8694748 10.4590738,51.5963256 9.31985785,53.050049 C8.18064193,54.5037724 7.61104252,56.6074463 7.61104252,59.3611338 C7.61104252,62.1148214 8.20859773,64.2429566 9.40372609,65.7456034 C10.5988544,67.2482501 12.2936748,67.9995623 14.488238,67.9995623 C14.9914499,67.9995623 15.5645438,67.9401562 16.2075368,67.8213423 C16.8505299,67.7025283 17.6053364,67.5173212 18.4719792,67.2657152 L18.4719792,63.9529198 L16.1027015,63.9529198 C15.1521901,63.9529198 14.4777564,63.7781961 14.0793803,63.4287433 C13.6810042,63.0792906 13.4818191,62.4992078 13.4818191,61.6884774 C13.4818191,60.8497908 13.6810042,60.2522356 14.0793803,59.8957938 C14.4777564,59.5393521 15.1521901,59.3611338 16.1027015,59.3611338 L23.6718099,59.3611338 C24.6502776,59.3611338 25.3386891,59.5358576 25.7370653,59.8853103 C26.1354414,60.2347631 26.3346265,60.8218348 26.3346265,61.6465433 C26.3346265,62.3873831 26.1354414,62.9569825 25.7370653,63.3553586 C25.3386891,63.7537347 24.7621008,63.9529198 24.0072829,63.9529198 L23.6718099,63.9529198 L23.6718099,68.9430799 L23.6718099,69.1946846 C23.6718099,69.6419841 23.6228873,69.9529924 23.5250405,70.1277188 C23.4271937,70.3024451 23.2315031,70.4806634 22.9379628,70.6623788 C22.1412106,71.1376345 20.8762107,71.5569715 19.1429251,71.9204023 C17.4096396,72.2838332 15.6554131,72.4655459 13.8801932,72.4655459 C10.2179286,72.4655459 7.25461383,71.2564576 4.99016011,68.8382446 C2.72570638,66.4200317 1.59349651,63.2610264 1.59349651,59.3611338 C1.59349651,55.6010224 2.73968428,52.4769618 5.03209423,49.9888583 C7.32450417,47.5007549 10.2319073,46.2567218 13.7543909,46.2567218 C14.7328585,46.2567218 15.7078171,46.368545 16.6792957,46.5921947 C17.6507743,46.8158445 18.6816444,47.165292 19.7719369,47.6405477 L19.7719369,47.6405477 Z M35.611576,51.5823548 L35.611576,56.4047785 L42.4678043,56.4047785 L42.4678043,51.5823548 L42.1323314,51.5823548 C41.3775135,51.5823548 40.8009251,51.3866642 40.402549,50.9952772 C40.0041729,50.6038901 39.8049878,50.0307962 39.8049878,49.2759783 C39.8049878,48.4512699 40.0111618,47.8572091 40.4235161,47.4937783 C40.8358703,47.1303474 41.5172929,46.9486347 42.4678043,46.9486347 L47.8773056,46.9486347 C48.8278171,46.9486347 49.5022507,47.1303474 49.9006269,47.4937783 C50.299003,47.8572091 50.498188,48.4512699 50.498188,49.2759783 C50.498188,50.0307962 50.3059919,50.6038901 49.9215939,50.9952772 C49.5371959,51.3866642 48.9745854,51.5823548 48.2337456,51.5823548 L47.8773056,51.5823548 L47.8773056,67.2237811 L48.2337456,67.2237811 C48.9885636,67.2237811 49.5616574,67.4159772 49.9530445,67.8003752 C50.3444316,68.1847732 50.5401222,68.7473837 50.5401222,69.4882235 C50.5401222,70.3129319 50.3374426,70.9069927 49.9320774,71.2704235 C49.5267123,71.6338543 48.8417952,71.815567 47.8773056,71.815567 L42.4678043,71.815567 C41.5033148,71.815567 40.8183977,71.6373488 40.4130325,71.280907 C40.0076674,70.9244652 39.8049878,70.32691 39.8049878,69.4882235 C39.8049878,68.7473837 40.0041729,68.1847732 40.402549,67.8003752 C40.8009251,67.4159772 41.3775135,67.2237811 42.1323314,67.2237811 L42.4678043,67.2237811 L42.4678043,61.0384986 L35.611576,61.0384986 L35.611576,67.2237811 L35.9470489,67.2237811 C36.7018668,67.2237811 37.2784552,67.4159772 37.6768313,67.8003752 C38.0752074,68.1847732 38.2743925,68.7473837 38.2743925,69.4882235 C38.2743925,70.3129319 38.0682185,70.9069927 37.6558642,71.2704235 C37.24351,71.6338543 36.5620874,71.815567 35.611576,71.815567 L30.2020747,71.815567 C29.2375851,71.815567 28.552668,71.6373488 28.1473029,71.280907 C27.7419377,70.9244652 27.5392581,70.32691 27.5392581,69.4882235 C27.5392581,68.7473837 27.7349487,68.1847732 28.1263358,67.8003752 C28.5177229,67.4159772 29.0908168,67.2237811 29.8456347,67.2237811 L30.2020747,67.2237811 L30.2020747,51.5823548 L29.8456347,51.5823548 C29.1047949,51.5823548 28.5421844,51.3866642 28.1577864,50.9952772 C27.7733884,50.6038901 27.5811923,50.0307962 27.5811923,49.2759783 C27.5811923,48.4512699 27.7803773,47.8572091 28.1787534,47.4937783 C28.5771296,47.1303474 29.2515632,46.9486347 30.2020747,46.9486347 L35.611576,46.9486347 C36.5481093,46.9486347 37.2260374,47.1303474 37.6453807,47.4937783 C38.064724,47.8572091 38.2743925,48.4512699 38.2743925,49.2759783 C38.2743925,50.0307962 38.0752074,50.6038901 37.6768313,50.9952772 C37.2784552,51.3866642 36.7018668,51.5823548 35.9470489,51.5823548 L35.611576,51.5823548 Z M67.365213,51.5823548 L67.365213,67.2237811 L70.887679,67.2237811 C71.8381904,67.2237811 72.519613,67.4019993 72.9319673,67.7584411 C73.3443215,68.1148829 73.5504955,68.6914712 73.5504955,69.4882235 C73.5504955,70.2989538 73.340827,70.8895201 72.9214837,71.25994 C72.5021404,71.6303599 71.8242123,71.815567 70.887679,71.815567 L58.4332458,71.815567 C57.4827343,71.815567 56.8013117,71.6338543 56.3889575,71.2704235 C55.9766033,70.9069927 55.7704292,70.3129319 55.7704292,69.4882235 C55.7704292,68.6774931 55.9731088,68.0974103 56.378474,67.7479575 C56.7838391,67.3985048 57.4687562,67.2237811 58.4332458,67.2237811 L61.9557117,67.2237811 L61.9557117,51.5823548 L58.4332458,51.5823548 C57.4827343,51.5823548 56.8013117,51.4006421 56.3889575,51.0372113 C55.9766033,50.6737805 55.7704292,50.0867087 55.7704292,49.2759783 C55.7704292,48.4512699 55.9731088,47.8641981 56.378474,47.5147453 C56.7838391,47.1652926 57.4687562,46.9905689 58.4332458,46.9905689 L70.887679,46.9905689 C71.8801247,46.9905689 72.5720308,47.1652926 72.9634178,47.5147453 C73.3548049,47.8641981 73.5504955,48.4512699 73.5504955,49.2759783 C73.5504955,50.0867087 73.347816,50.6737805 72.9424508,51.0372113 C72.5370856,51.4006421 71.8521685,51.5823548 70.887679,51.5823548 L67.365213,51.5823548 Z M97.8608265,51.5823548 L97.8608265,63.1771386 L97.8608265,63.5755127 C97.8608265,65.4485794 97.7385199,66.8044357 97.493903,67.6431222 C97.2492861,68.4818088 96.8404325,69.2296264 96.26733,69.8865976 C95.5264902,70.7392623 94.4991146,71.3822457 93.1851723,71.815567 C91.87123,72.2488884 90.2917273,72.4655459 88.4466169,72.4655459 C87.1466527,72.4655459 85.8921362,72.3397448 84.6830298,72.0881388 C83.4739233,71.8365328 82.3102631,71.4591296 81.1920144,70.9559176 C80.5769776,70.6763554 80.175113,70.31293 79.9864085,69.8656305 C79.797704,69.418331 79.7033532,68.6914802 79.7033532,67.6850564 L79.7033532,63.3658422 C79.7033532,62.1637247 79.8780769,61.3250508 80.2275297,60.849795 C80.5769824,60.3745393 81.185021,60.136915 82.0516638,60.136915 C83.2957156,60.136915 83.9806326,61.0524675 84.1064356,62.8835998 C84.1204137,63.2050963 84.1413806,63.4497096 84.1693368,63.6174469 C84.3370741,65.2389076 84.7144774,66.3466561 85.301558,66.9407258 C85.8886386,67.5347954 86.8251579,67.8318258 88.1111439,67.8318258 C89.7046484,67.8318258 90.8263749,67.4089943 91.476357,66.5633187 C92.126339,65.7176431 92.4513252,64.1765796 92.4513252,61.9400821 L92.4513252,51.5823548 L88.9288593,51.5823548 C87.9783478,51.5823548 87.2969252,51.4006421 86.884571,51.0372113 C86.4722168,50.6737805 86.2660427,50.0867087 86.2660427,49.2759783 C86.2660427,48.4512699 86.4652278,47.8641981 86.8636039,47.5147453 C87.26198,47.1652926 87.9503916,46.9905689 88.9288593,46.9905689 L99.6220595,46.9905689 C100.600527,46.9905689 101.288939,47.1652926 101.687315,47.5147453 C102.085691,47.8641981 102.284876,48.4512699 102.284876,49.2759783 C102.284876,50.0867087 102.078702,50.6737805 101.666348,51.0372113 C101.253994,51.4006421 100.572571,51.5823548 99.6220595,51.5823548 L97.8608265,51.5823548 Z M112.505343,51.5823548 L112.505343,57.9353738 L118.984165,51.4565525 C118.257303,51.3726838 117.747109,51.1665098 117.453569,50.8380242 C117.160029,50.5095387 117.013261,49.9888619 117.013261,49.2759783 C117.013261,48.4512699 117.212446,47.8572091 117.610822,47.4937783 C118.009198,47.1303474 118.683632,46.9486347 119.634143,46.9486347 L124.771073,46.9486347 C125.721584,46.9486347 126.396018,47.1303474 126.794394,47.4937783 C127.19277,47.8572091 127.391955,48.4512699 127.391955,49.2759783 C127.391955,50.0447743 127.19277,50.6213627 126.794394,51.0057607 C126.396018,51.3901587 125.812441,51.5823548 125.043645,51.5823548 L124.561402,51.5823548 L118.459988,57.641835 C119.592215,58.4805215 120.626579,59.5812811 121.563113,60.9441468 C122.499646,62.3070125 123.596911,64.400203 124.854941,67.2237811 L125.127513,67.2237811 L125.546854,67.2237811 C126.371563,67.2237811 126.98659,67.4124827 127.391955,67.7898917 C127.79732,68.1673006 128,68.7334056 128,69.4882235 C128,70.3129319 127.793826,70.9069927 127.381472,71.2704235 C126.969118,71.6338543 126.287695,71.815567 125.337183,71.815567 L122.758235,71.815567 C121.626008,71.815567 120.710456,71.0537715 120.01155,69.5301576 C119.885747,69.2505954 119.787902,69.026949 119.718012,68.8592117 C118.795456,66.9022764 117.949793,65.3926632 117.180997,64.3303269 C116.412201,63.2679906 115.510627,62.2965265 114.476247,61.4159056 L112.505343,63.302941 L112.505343,67.2237811 L112.840816,67.2237811 C113.595634,67.2237811 114.172222,67.4159772 114.570599,67.8003752 C114.968975,68.1847732 115.16816,68.7473837 115.16816,69.4882235 C115.16816,70.3129319 114.961986,70.9069927 114.549631,71.2704235 C114.137277,71.6338543 113.455855,71.815567 112.505343,71.815567 L107.095842,71.815567 C106.131352,71.815567 105.446435,71.6373488 105.04107,71.280907 C104.635705,70.9244652 104.433025,70.32691 104.433025,69.4882235 C104.433025,68.7473837 104.628716,68.1847732 105.020103,67.8003752 C105.41149,67.4159772 105.984584,67.2237811 106.739402,67.2237811 L107.095842,67.2237811 L107.095842,51.5823548 L106.739402,51.5823548 C105.998562,51.5823548 105.435952,51.3866642 105.051554,50.9952772 C104.667156,50.6038901 104.474959,50.0307962 104.474959,49.2759783 C104.474959,48.4512699 104.674145,47.8572091 105.072521,47.4937783 C105.470897,47.1303474 106.14533,46.9486347 107.095842,46.9486347 L112.505343,46.9486347 C113.441877,46.9486347 114.119805,47.1303474 114.539148,47.4937783 C114.958491,47.8572091 115.16816,48.4512699 115.16816,49.2759783 C115.16816,50.0307962 114.968975,50.6038901 114.570599,50.9952772 C114.172222,51.3866642 113.595634,51.5823548 112.840816,51.5823548 L112.505343,51.5823548 Z M13.439885,96.325622 L17.4445933,84.4372993 C17.6961993,83.6545252 18.0456468,83.0849258 18.4929463,82.728484 C18.9402458,82.3720422 19.5343065,82.193824 20.2751463,82.193824 L23.5460076,82.193824 C24.496519,82.193824 25.1779416,82.3755367 25.5902958,82.7389675 C26.0026501,83.1023984 26.2088241,83.6964591 26.2088241,84.5211676 C26.2088241,85.2759855 26.009639,85.8490794 25.6112629,86.2404664 C25.2128868,86.6318535 24.6362984,86.8275441 23.8814805,86.8275441 L23.5460076,86.8275441 L24.1330852,102.46897 L24.4895252,102.46897 C25.2443431,102.46897 25.8104481,102.661166 26.187857,103.045564 C26.565266,103.429962 26.7539676,103.992573 26.7539676,104.733413 C26.7539676,105.558121 26.5547826,106.152182 26.1564064,106.515613 C25.7580303,106.879044 25.0835967,107.060756 24.1330852,107.060756 L19.4154969,107.060756 C18.4649855,107.060756 17.7905518,106.882538 17.3921757,106.526096 C16.9937996,106.169654 16.7946145,105.572099 16.7946145,104.733413 C16.7946145,103.992573 16.9868106,103.429962 17.3712086,103.045564 C17.7556066,102.661166 18.325206,102.46897 19.0800239,102.46897 L19.4154969,102.46897 L19.1219581,89.6790642 L16.0607674,99.1981091 C15.8371177,99.9109927 15.5191204,100.42468 15.1067662,100.739188 C14.694412,101.053695 14.1248126,101.210947 13.3979509,101.210947 C12.6710892,101.210947 12.0945008,101.053695 11.6681685,100.739188 C11.2418362,100.42468 10.91685,99.9109927 10.6932002,99.1981091 L7.65297664,89.6790642 L7.35943781,102.46897 L7.69491075,102.46897 C8.44972866,102.46897 9.01932808,102.661166 9.40372609,103.045564 C9.78812409,103.429962 9.98032022,103.992573 9.98032022,104.733413 C9.98032022,105.558121 9.77764067,106.152182 9.3722755,106.515613 C8.96691032,106.879044 8.29597114,107.060756 7.35943781,107.060756 L2.62088241,107.060756 C1.68434908,107.060756 1.01340989,106.879044 0.608044719,106.515613 C0.202679546,106.152182 0,105.558121 0,104.733413 C0,103.992573 0.192196121,103.429962 0.57659413,103.045564 C0.960992139,102.661166 1.53059155,102.46897 2.28540946,102.46897 L2.62088241,102.46897 L3.22892713,86.8275441 L2.89345418,86.8275441 C2.13863627,86.8275441 1.56204791,86.6318535 1.16367179,86.2404664 C0.765295672,85.8490794 0.5661106,85.2759855 0.5661106,84.5211676 C0.5661106,83.6964591 0.772284622,83.1023984 1.18463885,82.7389675 C1.59699308,82.3755367 2.27841569,82.193824 3.22892713,82.193824 L6.49978838,82.193824 C7.22665007,82.193824 7.81022738,82.3685477 8.25053783,82.7180005 C8.69084827,83.0674532 9.05077919,83.6405471 9.33034138,84.4372993 L13.439885,96.325622 Z M43.8935644,98.3803938 L43.8935644,86.8275441 L42.7403761,86.8275441 C41.8178209,86.8275441 41.1573651,86.6458314 40.758989,86.2824006 C40.3606129,85.9189697 40.1614278,85.3318979 40.1614278,84.5211676 C40.1614278,83.7104372 40.3606129,83.119871 40.758989,82.7494511 C41.1573651,82.3790312 41.8178209,82.193824 42.7403761,82.193824 L48.6950209,82.193824 C49.6035981,82.193824 50.2605593,82.3790312 50.6659245,82.7494511 C51.0712897,83.119871 51.2739692,83.7104372 51.2739692,84.5211676 C51.2739692,85.2620074 51.0817731,85.8316068 50.6973751,86.2299829 C50.3129771,86.628359 49.7643445,86.8275441 49.051461,86.8275441 L48.6950209,86.8275441 L48.6950209,105.865634 C48.6950209,106.522605 48.6251315,106.934953 48.4853504,107.10269 C48.3455693,107.270428 48.0310665,107.354295 47.5418327,107.354295 L45.4451268,107.354295 C44.7741775,107.354295 44.3024234,107.284406 44.0298503,107.144625 C43.7572771,107.004843 43.5231473,106.76023 43.3274538,106.410777 L34.6051571,91.0838571 L34.6051571,102.46897 L35.8212466,102.46897 C36.7298237,102.46897 37.379796,102.643694 37.7711831,102.993147 C38.1625701,103.3426 38.3582607,103.922682 38.3582607,104.733413 C38.3582607,105.558121 38.1590757,106.152182 37.7606995,106.515613 C37.3623234,106.879044 36.7158456,107.060756 35.8212466,107.060756 L29.8037005,107.060756 C28.8951234,107.060756 28.2381621,106.879044 27.832797,106.515613 C27.4274318,106.152182 27.2247522,105.558121 27.2247522,104.733413 C27.2247522,103.992573 27.4134539,103.429962 27.7908629,103.045564 C28.1682718,102.661166 28.7273878,102.46897 29.4682276,102.46897 L29.8037005,102.46897 L29.8037005,86.8275441 L29.4682276,86.8275441 C28.755344,86.8275441 28.203217,86.628359 27.8118299,86.2299829 C27.4204428,85.8316068 27.2247522,85.2620074 27.2247522,84.5211676 C27.2247522,83.7104372 27.4309263,83.119871 27.8432805,82.7494511 C28.2556347,82.3790312 28.9091015,82.193824 29.8037005,82.193824 L33.2422983,82.193824 C34.0670067,82.193824 34.6261227,82.3021527 34.919663,82.5188134 C35.2132033,82.7354741 35.5416839,83.1722835 35.9051148,83.8292546 L43.8935644,98.3803938 Z M64.6604624,86.3662688 C62.8572863,86.3662688 61.4420239,87.0931196 60.4146329,88.546843 C59.3872418,90.0005663 58.873554,92.0203728 58.873554,94.6063231 C58.873554,97.1922733 59.3907363,99.2190688 60.4251164,100.68677 C61.4594965,102.154472 62.8712644,102.888312 64.6604624,102.888312 C66.4636385,102.888312 67.8823953,102.157966 68.9167754,100.697254 C69.9511555,99.2365414 70.4683378,97.2062514 70.4683378,94.6063231 C70.4683378,92.0203728 69.95465,90.0005663 68.9272589,88.546843 C67.8998679,87.0931196 66.4776166,86.3662688 64.6604624,86.3662688 L64.6604624,86.3662688 Z M64.6604624,81.501911 C68.0990773,81.501911 70.929602,82.7319662 73.1521214,85.1921135 C75.3746408,87.6522607 76.4858838,90.7902992 76.4858838,94.6063231 C76.4858838,98.4503032 75.3816297,101.595331 73.1730884,104.0415 C70.9645471,106.487669 68.1270335,107.710735 64.6604624,107.710735 C61.2358256,107.710735 58.4053009,106.477185 56.1688034,104.010049 C53.9323059,101.542913 52.8140739,98.4083688 52.8140739,94.6063231 C52.8140739,90.7763211 53.9218224,87.6347881 56.1373528,85.1816299 C58.3528831,82.7284717 61.1938912,81.501911 64.6604624,81.501911 L64.6604624,81.501911 Z M87.4611651,98.1707232 L87.4611651,102.46897 L89.6207722,102.46897 C90.5293493,102.46897 91.1758272,102.643694 91.5602252,102.993147 C91.9446232,103.3426 92.1368193,103.922682 92.1368193,104.733413 C92.1368193,105.558121 91.9411287,106.152182 91.5497417,106.515613 C91.1583546,106.879044 90.5153712,107.060756 89.6207722,107.060756 L82.3661697,107.060756 C81.4436145,107.060756 80.7831587,106.879044 80.3847826,106.515613 C79.9864065,106.152182 79.7872214,105.558121 79.7872214,104.733413 C79.7872214,103.992573 79.9759231,103.429962 80.353332,103.045564 C80.730741,102.661166 81.282868,102.46897 82.0097297,102.46897 L82.3661697,102.46897 L82.3661697,86.8275441 L82.0097297,86.8275441 C81.2968461,86.8275441 80.7482136,86.628359 80.3638155,86.2299829 C79.9794175,85.8316068 79.7872214,85.2620074 79.7872214,84.5211676 C79.7872214,83.7104372 79.989901,83.119871 80.3952661,82.7494511 C80.8006313,82.3790312 81.4575926,82.193824 82.3661697,82.193824 L91.0255652,82.193824 C94.450202,82.193824 97.0396079,82.8507853 98.7938606,84.1647276 C100.548113,85.4786699 101.425227,87.414609 101.425227,89.972603 C101.425227,92.6703781 100.551608,94.7111515 98.8043442,96.0949843 C97.0570805,97.4788171 94.4641801,98.1707232 91.0255652,98.1707232 L87.4611651,98.1707232 Z M87.4611651,86.8275441 L87.4611651,93.4531348 L90.4384875,93.4531348 C92.0879044,93.4531348 93.328443,93.1735768 94.1601405,92.6144525 C94.9918381,92.0553281 95.4076806,91.2166541 95.4076806,90.0984053 C95.4076806,89.0500471 94.9778602,88.2428234 94.1182064,87.67671 C93.2585527,87.1105966 92.031992,86.8275441 90.4384875,86.8275441 L87.4611651,86.8275441 Z M114.727851,107.396229 L113.092421,109.03166 C113.69348,108.835966 114.284046,108.689198 114.864137,108.591352 C115.444229,108.493505 116.013828,108.444582 116.572953,108.444582 C117.677223,108.444582 118.840883,108.608823 120.063968,108.937308 C121.287053,109.265794 122.031376,109.430034 122.29696,109.430034 C122.744259,109.430034 123.327837,109.279772 124.047709,108.979242 C124.767582,108.678713 125.253314,108.52845 125.50492,108.52845 C126.02211,108.52845 126.45193,108.727636 126.794394,109.126012 C127.136858,109.524388 127.308087,110.024098 127.308087,110.625156 C127.308087,111.421909 126.836333,112.099837 125.892811,112.658961 C124.949288,113.218086 123.792617,113.497643 122.422762,113.497643 C121.486229,113.497643 120.28413,113.277492 118.816428,112.837181 C117.348727,112.396871 116.286406,112.176719 115.629435,112.176719 C114.636989,112.176719 113.518757,112.449288 112.274706,112.994434 C111.030654,113.53958 110.261869,113.812149 109.968329,113.812149 C109.36727,113.812149 108.857077,113.612964 108.437734,113.214588 C108.01839,112.816212 107.808722,112.337469 107.808722,111.778345 C107.808722,111.386958 107.941512,110.971115 108.207096,110.530805 C108.47268,110.090494 108.94094,109.520895 109.611889,108.821989 L111.729562,106.683349 C109.395218,105.830685 107.536157,104.29661 106.152324,102.08108 C104.768491,99.8655494 104.076585,97.3180772 104.076585,94.4385866 C104.076585,90.6365409 105.180839,87.5299526 107.389381,85.1187288 C109.597922,82.7075049 112.442425,81.501911 115.922974,81.501911 C119.389545,81.501911 122.227059,82.7109994 124.4356,85.1292123 C126.644141,87.5474252 127.748395,90.650519 127.748395,94.4385866 C127.748395,98.2126762 126.65113,101.322759 124.456567,103.768928 C122.262004,106.215097 119.480402,107.438163 116.111677,107.438163 C115.888028,107.438163 115.660887,107.434669 115.430248,107.42768 C115.199609,107.420691 114.965479,107.410207 114.727851,107.396229 L114.727851,107.396229 Z M115.922974,86.3662688 C114.119798,86.3662688 112.704535,87.0931196 111.677144,88.546843 C110.649753,90.0005663 110.136065,92.0203728 110.136065,94.6063231 C110.136065,97.1922733 110.653248,99.2190688 111.687628,100.68677 C112.722008,102.154472 114.133776,102.888312 115.922974,102.888312 C117.72615,102.888312 119.144907,102.157966 120.179287,100.697254 C121.213667,99.2365414 121.730849,97.2062514 121.730849,94.6063231 C121.730849,92.0203728 121.217161,90.0005663 120.18977,88.546843 C119.162379,87.0931196 117.740128,86.3662688 115.922974,86.3662688 L115.922974,86.3662688 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/mono-line": {
            "title": "$:/core/images/mono-line",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-mono-line tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M60.4374591,84.522627 L61.3450888,84.522627 C63.2671377,84.522627 64.7264493,85.0120303 65.7230673,85.9908515 C66.7196852,86.9696727 67.2179868,88.4022896 67.2179868,90.288745 C67.2179868,92.3887615 66.6929905,93.9014625 65.6429823,94.8268935 C64.5929741,95.7523244 62.857817,96.215033 60.4374591,96.215033 L44.3670747,96.215033 C41.9111232,96.215033 40.1670679,95.7612227 39.1348565,94.8535884 C38.102645,93.9459542 37.586547,92.424355 37.586547,90.288745 C37.586547,88.2243221 38.102645,86.747214 39.1348565,85.8573766 C40.1670679,84.9675391 41.9111232,84.522627 44.3670747,84.522627 L46.235724,84.522627 L44.0467348,78.2759992 L20.9822627,78.2759992 L18.6864935,84.522627 L20.5551429,84.522627 C22.9755008,84.522627 24.7106579,84.9764373 25.7606661,85.8840716 C26.8106743,86.7917058 27.3356705,88.2599156 27.3356705,90.288745 C27.3356705,92.3887615 26.8106743,93.9014625 25.7606661,94.8268935 C24.7106579,95.7523244 22.9755008,96.215033 20.5551429,96.215033 L6.78052766,96.215033 C4.32457622,96.215033 2.58052094,95.7523244 1.54830946,94.8268935 C0.516097994,93.9014625 0,92.3887615 0,90.288745 C0,88.4022896 0.498301511,86.9696727 1.49491948,85.9908515 C2.49153745,85.0120303 3.95084902,84.522627 5.87289797,84.522627 L6.78052766,84.522627 L21.0890427,44.6937008 L16.8178442,44.6937008 C14.3974863,44.6937008 12.6623292,44.2309922 11.612321,43.3055613 C10.5623128,42.3801303 10.0373165,40.8852258 10.0373165,38.8208028 C10.0373165,36.7207864 10.5623128,35.2080854 11.612321,34.2826544 C12.6623292,33.3572234 14.3974863,32.8945149 16.8178442,32.8945149 L36.8390873,32.8945149 C40.0069087,32.8945149 42.231469,34.6029772 43.512835,38.0199531 L43.512835,38.180123 L60.4374591,84.522627 Z M32.4611088,44.6937008 L24.7195615,67.224273 L40.2026561,67.224273 L32.4611088,44.6937008 Z M89.5058233,68.5590225 L89.5058233,84.8429669 L97.5143205,84.8429669 C103.173687,84.8429669 107.160099,84.22009 109.473676,82.9743176 C111.787254,81.7285451 112.944025,79.6463566 112.944025,76.7276897 C112.944025,73.7734293 111.840643,71.6734444 109.633846,70.4276719 C107.427049,69.1818994 103.565213,68.5590225 98.0482204,68.5590225 L89.5058233,68.5590225 Z M116.734714,62.6327346 C120.614405,64.0564746 123.461842,66.0051894 125.277111,68.4789376 C127.092379,70.9526857 128,74.1115614 128,77.9556593 C128,81.1946677 127.216955,84.1488838 125.650841,86.8183962 C124.084727,89.4879087 121.84237,91.676876 118.923703,93.385364 C117.215215,94.3819819 115.302093,95.1027395 113.18428,95.5476582 C111.066467,95.9925769 108.06776,96.215033 104.188068,96.215033 L99.7033098,96.215033 L76.3184979,96.215033 C73.9693269,96.215033 72.2875593,95.7523244 71.2731446,94.8268935 C70.2587299,93.9014625 69.7515301,92.3887615 69.7515301,90.288745 C69.7515301,88.4022896 70.2320352,86.9696727 71.1930596,85.9908515 C72.1540841,85.0120303 73.5600062,84.522627 75.4108682,84.522627 L76.3184979,84.522627 L76.3184979,44.6937008 L75.4108682,44.6937008 C73.5600062,44.6937008 72.1540841,44.1953993 71.1930596,43.1987813 C70.2320352,42.2021633 69.7515301,40.7428518 69.7515301,38.8208028 C69.7515301,36.7563799 70.2676281,35.2525771 71.2998396,34.3093494 C72.3320511,33.3661217 74.0049204,32.8945149 76.3184979,32.8945149 L100.877889,32.8945149 C108.388118,32.8945149 114.09189,34.3538264 117.989378,37.2724934 C121.886867,40.1911603 123.835581,44.4623161 123.835581,50.0860889 C123.835581,52.8623819 123.239399,55.3093982 122.047017,57.4272114 C120.854635,59.5450246 119.083885,61.2801816 116.734714,62.6327346 L116.734714,62.6327346 Z M89.5058233,44.3733609 L89.5058233,57.8276363 L96.7134708,57.8276363 C101.091471,57.8276363 104.179161,57.3115383 105.976633,56.2793268 C107.774104,55.2471153 108.672827,53.50306 108.672827,51.0471086 C108.672827,48.7335312 107.863087,47.0428653 106.243583,45.9750604 C104.624078,44.9072554 101.999097,44.3733609 98.3685602,44.3733609 L89.5058233,44.3733609 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/new-button": {
            "title": "$:/core/images/new-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-new-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M56,72 L8.00697327,72 C3.59075293,72 0,68.418278 0,64 C0,59.5907123 3.58484404,56 8.00697327,56 L56,56 L56,8.00697327 C56,3.59075293 59.581722,0 64,0 C68.4092877,0 72,3.58484404 72,8.00697327 L72,56 L119.993027,56 C124.409247,56 128,59.581722 128,64 C128,68.4092877 124.415156,72 119.993027,72 L72,72 L72,119.993027 C72,124.409247 68.418278,128 64,128 C59.5907123,128 56,124.415156 56,119.993027 L56,72 L56,72 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/new-here-button": {
            "title": "$:/core/images/new-here-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-new-here-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n    \t<g transform=\"translate(52.233611, 64.389922) rotate(75.000000) translate(-52.233611, -64.389922) translate(-7.734417, 3.702450)\">\n\t        <path d=\"M18.9270186,45.959338 L18.9080585,49.6521741 C18.8884833,53.4648378 21.0574548,58.7482162 23.7526408,61.4434022 L78.5671839,116.257945 C81.2617332,118.952495 85.6348701,118.950391 88.3334363,116.251825 L115.863237,88.7220241 C118.555265,86.0299959 118.564544,81.6509578 115.869358,78.9557717 L61.0548144,24.1412286 C58.3602652,21.4466794 53.0787224,19.2788426 49.2595808,19.3006519 L25.9781737,19.4336012 C22.1633003,19.4553862 19.0471195,22.5673232 19.0275223,26.3842526 L18.9871663,34.2443819 C19.0818862,34.255617 19.1779758,34.2665345 19.2754441,34.2771502 C22.6891275,34.6489512 27.0485594,34.2348566 31.513244,33.2285542 C31.7789418,32.8671684 32.075337,32.5211298 32.4024112,32.1940556 C34.8567584,29.7397084 38.3789778,29.0128681 41.4406288,30.0213822 C41.5958829,29.9543375 41.7503946,29.8866669 41.9041198,29.8183808 L42.1110981,30.2733467 C43.1114373,30.6972371 44.0473796,31.3160521 44.8614145,32.1300869 C48.2842088,35.5528813 48.2555691,41.130967 44.7974459,44.5890903 C41.4339531,47.952583 36.0649346,48.0717177 32.6241879,44.9262969 C27.8170558,45.8919233 23.0726921,46.2881596 18.9270186,45.959338 Z\"></path>\n\t        <path d=\"M45.4903462,38.8768094 C36.7300141,42.6833154 26.099618,44.7997354 18.1909048,43.9383587 C7.2512621,42.7468685 1.50150083,35.8404432 4.66865776,24.7010202 C7.51507386,14.6896965 15.4908218,6.92103848 24.3842626,4.38423012 C34.1310219,1.60401701 42.4070208,6.15882777 42.4070209,16.3101169 L34.5379395,16.310117 C34.5379394,11.9285862 31.728784,10.3825286 26.5666962,11.8549876 C20.2597508,13.6540114 14.3453742,19.4148216 12.2444303,26.8041943 C10.4963869,32.9523565 12.6250796,35.5092726 19.0530263,36.2093718 C25.5557042,36.9176104 35.0513021,34.9907189 42.7038419,31.5913902 L42.7421786,31.6756595 C44.3874154,31.5384763 47.8846101,37.3706354 45.9274416,38.6772897 L45.9302799,38.6835285 C45.9166992,38.6895612 45.9031139,38.6955897 45.8895238,38.7016142 C45.8389288,38.7327898 45.7849056,38.7611034 45.7273406,38.7863919 C45.6506459,38.8200841 45.571574,38.8501593 45.4903462,38.8768094 Z\"></path>\n        </g>\n        <rect x=\"96\" y=\"80\" width=\"16\" height=\"48\" rx=\"8\"></rect>\n        <rect x=\"80\" y=\"96\" width=\"48\" height=\"16\" rx=\"8\"></rect>\n    </g>\n    </g>\n</svg>"
        },
        "$:/core/images/new-image-button": {
            "title": "$:/core/images/new-image-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-new-image-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M81.3619177,73.6270062 L97.1875317,46.2162388 C97.91364,44.9585822 97.4824378,43.3533085 96.2260476,42.6279312 L46.2162388,13.7547547 C44.9585822,13.0286463 43.3533085,13.4598485 42.6279312,14.7162388 L30.0575956,36.4886988 L40.0978909,31.2276186 C43.1404959,29.6333041 46.8692155,31.3421319 47.6479264,34.6877101 L51.2545483,52.3903732 L61.1353556,53.2399953 C63.2899974,53.4346096 65.1046382,54.9309951 65.706105,57.0091178 C65.7395572,57.1246982 65.8069154,57.3539875 65.9047035,57.6813669 C66.0696435,58.2335608 66.2581528,58.852952 66.4667073,59.5238092 C67.0618822,61.4383079 67.6960725,63.3742727 68.3393254,65.2021174 C68.5462918,65.7902259 68.7511789,66.3583016 68.953259,66.9034738 C69.5777086,68.5881157 70.1617856,70.0172008 70.6783305,71.110045 C70.9334784,71.6498566 71.1627732,72.0871602 71.4035746,72.5373068 C71.6178999,72.7492946 71.9508843,72.9623307 72.4151452,73.1586945 C73.5561502,73.6412938 75.1990755,73.899146 77.0720271,73.9171651 C77.9355886,73.9254732 78.7819239,73.8832103 79.5638842,73.8072782 C80.0123946,73.7637257 80.3172916,73.7224469 80.4352582,73.7027375 C80.7503629,73.6500912 81.0598053,73.6256267 81.3619177,73.6270062 L81.3619177,73.6270062 L81.3619177,73.6270062 L81.3619177,73.6270062 Z M37.4707881,2.64867269 C38.9217993,0.135447653 42.1388058,-0.723707984 44.6486727,0.725364314 L108.293614,37.4707881 C110.806839,38.9217993 111.665994,42.1388058 110.216922,44.6486727 L73.4714982,108.293614 C72.0204871,110.806839 68.8034805,111.665994 66.2936136,110.216922 L2.64867269,73.4714982 C0.135447653,72.0204871 -0.723707984,68.8034805 0.725364314,66.2936136 L37.4707881,2.64867269 L37.4707881,2.64867269 L37.4707881,2.64867269 L37.4707881,2.64867269 Z M80.3080975,53.1397764 C82.8191338,54.5895239 86.0299834,53.7291793 87.4797308,51.218143 C88.9294783,48.7071068 88.0691338,45.4962571 85.5580975,44.0465097 C83.0470612,42.5967622 79.8362116,43.4571068 78.3864641,45.968143 C76.9367166,48.4791793 77.7970612,51.6900289 80.3080975,53.1397764 L80.3080975,53.1397764 L80.3080975,53.1397764 L80.3080975,53.1397764 Z M96,112 L88.0070969,112 C83.5881712,112 80,108.418278 80,104 C80,99.5907123 83.5848994,96 88.0070969,96 L96,96 L96,88.0070969 C96,83.5881712 99.581722,80 104,80 C108.409288,80 112,83.5848994 112,88.0070969 L112,96 L119.992903,96 C124.411829,96 128,99.581722 128,104 C128,108.409288 124.415101,112 119.992903,112 L112,112 L112,119.992903 C112,124.411829 108.418278,128 104,128 C99.5907123,128 96,124.415101 96,119.992903 L96,112 L96,112 Z M33.3471097,51.7910932 C40.7754579,59.7394511 42.3564368,62.4818351 40.7958321,65.1848818 C39.2352273,67.8879286 26.9581062,62.8571718 24.7019652,66.7649227 C22.4458242,70.6726735 23.7947046,70.0228006 22.2648667,72.6725575 L41.9944593,84.0634431 C41.9944593,84.0634431 36.3904568,75.8079231 37.7602356,73.4353966 C40.2754811,69.0788636 46.5298923,72.1787882 48.1248275,69.4162793 C50.538989,65.234829 43.0222016,59.7770885 33.3471097,51.7910932 L33.3471097,51.7910932 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/new-journal-button": {
            "title": "$:/core/images/new-journal-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-new-journal-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M102.545455,112.818182 L102.545455,124.636364 L102.545455,124.636364 L102.545455,124.636364 C102.545455,125.941761 103.630828,127 104.969697,127 L111.030303,127 C112.369172,127 113.454545,125.941761 113.454545,124.636364 L113.454545,112.818182 L125.575758,112.818182 C126.914626,112.818182 128,111.759982 128,110.454545 L128,104.545455 C128,103.240018 126.914626,102.181818 125.575758,102.181818 L113.454545,102.181818 L113.454545,90.3636364 C113.454545,89.0582 112.369172,88 111.030303,88 L104.969697,88 L104.969697,88 C103.630828,88 102.545455,89.0582 102.545455,90.3636364 L102.545455,102.181818 L90.4242424,102.181818 L90.4242424,102.181818 C89.0853705,102.181818 88,103.240018 88,104.545455 L88,110.454545 L88,110.454545 L88,110.454545 C88,111.759982 89.0853705,112.818182 90.4242424,112.818182 L102.545455,112.818182 Z\"></path>\n        <g transform=\"translate(59.816987, 64.316987) rotate(30.000000) translate(-59.816987, -64.316987) translate(20.316987, 12.816987)\">\n            <g transform=\"translate(0.000000, 0.000000)\">\n                <path d=\"M9.99631148,0 C4.4755011,0 -2.27373675e-13,4.48070044 -2.27373675e-13,9.99759461 L-2.27373675e-13,91.6128884 C-2.27373675e-13,97.1344074 4.46966773,101.610483 9.99631148,101.610483 L68.9318917,101.610483 C74.4527021,101.610483 78.9282032,97.1297826 78.9282032,91.6128884 L78.9282032,9.99759461 C78.9282032,4.47607557 74.4585355,0 68.9318917,0 L9.99631148,0 Z M20.8885263,26 C24.2022348,26 26.8885263,23.3137085 26.8885263,20 C26.8885263,16.6862915 24.2022348,14 20.8885263,14 C17.5748178,14 14.8885263,16.6862915 14.8885263,20 C14.8885263,23.3137085 17.5748178,26 20.8885263,26 Z M57.3033321,25.6783342 C60.6170406,25.6783342 63.3033321,22.9920427 63.3033321,19.6783342 C63.3033321,16.3646258 60.6170406,13.6783342 57.3033321,13.6783342 C53.9896236,13.6783342 51.3033321,16.3646258 51.3033321,19.6783342 C51.3033321,22.9920427 53.9896236,25.6783342 57.3033321,25.6783342 Z\"></path>\n                <text font-family=\"Helvetica\" font-size=\"47.1724138\" font-weight=\"bold\" fill=\"#FFFFFF\">\n                    <tspan x=\"42\" y=\"77.4847912\" text-anchor=\"middle\"><<now \"DD\">></tspan>\n                </text>\n            </g>\n        </g>\n    </g>\n</svg>"
        },
        "$:/core/images/opacity": {
            "title": "$:/core/images/opacity",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-opacity tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M102.361773,65 C101.833691,67.051742 101.183534,69.0544767 100.419508,71 L82.5835324,71 C83.7602504,69.1098924 84.7666304,67.1027366 85.581205,65 L102.361773,65 Z M102.834311,63 C103.256674,61.0388326 103.568427,59.0365486 103.762717,57 L87.6555706,57 C87.3692052,59.0609452 86.9083652,61.0660782 86.2884493,63 L102.834311,63 Z M99.5852583,73 C98.6682925,75.0747721 97.6196148,77.0783056 96.4498253,79 L75.8124196,79 C77.8387053,77.2115633 79.6621163,75.1985844 81.2437158,73 L99.5852583,73 Z M95.1689122,81 C93.7449202,83.1155572 92.1695234,85.1207336 90.458251,87 L60.4614747,87 C65.1836162,85.86248 69.5430327,83.794147 73.3347255,81 L95.1689122,81 Z M87.6555706,47 L103.762717,47 C101.246684,20.6269305 79.0321807,0 52,0 C23.281193,0 0,23.281193 0,52 C0,77.2277755 17.9651296,98.2595701 41.8000051,103 L62.1999949,103 C67.8794003,101.870444 73.2255333,99.8158975 78.074754,97 L39,97 L39,95 L81.2493857,95 C83.8589242,93.2215015 86.2981855,91.2116653 88.5376609,89 L39,89 L39,87 L43.5385253,87 C27.7389671,83.1940333 16,68.967908 16,52 C16,32.117749 32.117749,16 52,16 C70.1856127,16 85.2217929,29.4843233 87.6555706,47 Z M87.8767787,49 L103.914907,49 C103.971379,49.9928025 104,50.9930589 104,52 C104,53.0069411 103.971379,54.0071975 103.914907,55 L87.8767787,55 C87.958386,54.0107999 88,53.0102597 88,52 C88,50.9897403 87.958386,49.9892001 87.8767787,49 Z\"></path>\n        <path d=\"M76,128 C104.718807,128 128,104.718807 128,76 C128,47.281193 104.718807,24 76,24 C47.281193,24 24,47.281193 24,76 C24,104.718807 47.281193,128 76,128 L76,128 Z M76,112 C95.882251,112 112,95.882251 112,76 C112,56.117749 95.882251,40 76,40 C56.117749,40 40,56.117749 40,76 C40,95.882251 56.117749,112 76,112 L76,112 Z\"></path>\n        <path d=\"M37,58 L90,58 L90,62 L37,62 L37,58 L37,58 Z M40,50 L93,50 L93,54 L40,54 L40,50 L40,50 Z M40,42 L93,42 L93,46 L40,46 L40,42 L40,42 Z M32,66 L85,66 L85,70 L32,70 L32,66 L32,66 Z M30,74 L83,74 L83,78 L30,78 L30,74 L30,74 Z M27,82 L80,82 L80,86 L27,86 L27,82 L27,82 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/open-window": {
            "title": "$:/core/images/open-window",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-open-window tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M16,112 L104.993898,112 C108.863261,112 112,115.590712 112,120 C112,124.418278 108.858091,128 104.993898,128 L7.00610161,128 C3.13673853,128 0,124.409288 0,120 C0,119.998364 4.30952878e-07,119.996727 1.29273572e-06,119.995091 C4.89579306e-07,119.993456 0,119.99182 0,119.990183 L0,24.0098166 C0,19.586117 3.59071231,16 8,16 C12.418278,16 16,19.5838751 16,24.0098166 L16,112 Z\"></path>\n        <path d=\"M96,43.1959595 L96,56 C96,60.418278 99.581722,64 104,64 C108.418278,64 112,60.418278 112,56 L112,24 C112,19.5907123 108.415101,16 103.992903,16 L72.0070969,16 C67.5881712,16 64,19.581722 64,24 C64,28.4092877 67.5848994,32 72.0070969,32 L84.5685425,32 L48.2698369,68.2987056 C45.1421332,71.4264093 45.1434327,76.4904296 48.267627,79.614624 C51.3854642,82.7324612 56.4581306,82.7378289 59.5835454,79.6124141 L96,43.1959595 Z M32,7.9992458 C32,3.58138434 35.5881049,0 39.9992458,0 L120.000754,0 C124.418616,0 128,3.5881049 128,7.9992458 L128,88.0007542 C128,92.4186157 124.411895,96 120.000754,96 L39.9992458,96 C35.5813843,96 32,92.4118951 32,88.0007542 L32,7.9992458 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/options-button": {
            "title": "$:/core/images/options-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-options-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M110.48779,76.0002544 C109.354214,80.4045063 107.611262,84.5641217 105.354171,88.3838625 L105.354171,88.3838625 L112.07833,95.1080219 C115.20107,98.2307613 115.210098,103.299824 112.089164,106.420759 L106.420504,112.089418 C103.301049,115.208874 98.2346851,115.205502 95.1077675,112.078585 L88.3836082,105.354425 C84.5638673,107.611516 80.4042519,109.354468 76,110.488045 L76,110.488045 L76,119.993281 C76,124.409501 72.4220153,128.000254 68.0083475,128.000254 L59.9916525,128.000254 C55.5800761,128.000254 52,124.41541 52,119.993281 L52,110.488045 C47.5957481,109.354468 43.4361327,107.611516 39.6163918,105.354425 L32.8922325,112.078585 C29.7694931,115.201324 24.7004301,115.210353 21.5794957,112.089418 L15.9108363,106.420759 C12.7913807,103.301303 12.7947522,98.2349395 15.9216697,95.1080219 L22.6458291,88.3838625 C20.3887383,84.5641217 18.6457859,80.4045063 17.5122098,76.0002544 L8.00697327,76.0002544 C3.59075293,76.0002544 2.19088375e-16,72.4222697 4.89347582e-16,68.0086019 L9.80228577e-16,59.9919069 C1.25035972e-15,55.5803305 3.58484404,52.0002544 8.00697327,52.0002544 L17.5122098,52.0002544 C18.6457859,47.5960025 20.3887383,43.4363871 22.6458291,39.6166462 L15.9216697,32.8924868 C12.7989304,29.7697475 12.7899019,24.7006845 15.9108363,21.5797501 L21.5794957,15.9110907 C24.6989513,12.7916351 29.7653149,12.7950065 32.8922325,15.9219241 L39.6163918,22.6460835 C43.4361327,20.3889927 47.5957481,18.6460403 52,17.5124642 L52,8.00722764 C52,3.5910073 55.5779847,0.000254375069 59.9916525,0.000254375069 L68.0083475,0.000254375069 C72.4199239,0.000254375069 76,3.58509841 76,8.00722764 L76,17.5124642 C80.4042519,18.6460403 84.5638673,20.3889927 88.3836082,22.6460835 L95.1077675,15.9219241 C98.2305069,12.7991848 103.29957,12.7901562 106.420504,15.9110907 L112.089164,21.5797501 C115.208619,24.6992057 115.205248,29.7655693 112.07833,32.8924868 L105.354171,39.6166462 L105.354171,39.6166462 C107.611262,43.4363871 109.354214,47.5960025 110.48779,52.0002544 L119.993027,52.0002544 C124.409247,52.0002544 128,55.5782391 128,59.9919069 L128,68.0086019 C128,72.4201783 124.415156,76.0002544 119.993027,76.0002544 L110.48779,76.0002544 L110.48779,76.0002544 Z M64,96.0002544 C81.673112,96.0002544 96,81.6733664 96,64.0002544 C96,46.3271424 81.673112,32.0002544 64,32.0002544 C46.326888,32.0002544 32,46.3271424 32,64.0002544 C32,81.6733664 46.326888,96.0002544 64,96.0002544 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/paint": {
            "title": "$:/core/images/paint",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-paint tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M83.5265806,76.1907935 C90.430962,69.2864121 91.8921169,59.0000433 87.9100453,50.6642209 L125.812763,12.7615036 C128.732035,9.84223095 128.72611,5.10322984 125.812796,2.18991592 C122.893542,-0.729338085 118.161775,-0.730617045 115.241209,2.18994966 L77.3384914,40.092667 C69.002669,36.1105954 58.7163002,37.5717503 51.8119188,44.4761317 L83.5265806,76.1907935 L83.5265806,76.1907935 L83.5265806,76.1907935 L83.5265806,76.1907935 Z M80.8836921,78.8336819 L49.1690303,47.1190201 C49.1690303,47.1190201 8.50573364,81.242543 0,80.2820711 C0,80.2820711 3.78222974,85.8744423 6.82737483,88.320684 C20.8514801,82.630792 44.1526049,63.720771 44.1526049,63.720771 L44.8144806,64.3803375 C44.8144806,64.3803375 19.450356,90.2231043 9.18040433,92.0477601 C10.4017154,93.4877138 13.5343883,96.1014812 15.4269991,97.8235871 C20.8439164,96.3356979 50.1595367,69.253789 50.1595367,69.253789 L50.8214124,69.9133555 L18.4136144,100.936036 L23.6993903,106.221812 L56.1060358,75.2002881 L56.7679115,75.8598546 C56.7679115,75.8598546 28.9040131,106.396168 28.0841366,108.291555 C28.0841366,108.291555 34.1159238,115.144621 35.6529617,116.115796 C36.3545333,113.280171 63.5365402,82.6307925 63.5365402,82.6307925 L64.1984159,83.290359 C64.1984159,83.290359 43.6013016,107.04575 39.2343772,120.022559 C42.443736,123.571575 46.7339155,125.159692 50.1595362,126.321151 C47.9699978,114.504469 80.8836921,78.8336819 80.8836921,78.8336819 L80.8836921,78.8336819 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/palette": {
            "title": "$:/core/images/palette",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-palette tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M80.2470434,39.1821571 C75.0645698,38.2680897 69.6261555,37.7814854 64.0193999,37.7814854 C28.6624616,37.7814854 0,57.1324214 0,81.0030106 C0,90.644534 4.67604329,99.5487133 12.5805659,106.738252 C23.5031767,91.1899067 26.3405471,72.3946229 36.8885698,63.5622337 C52.0716764,50.8486559 63.4268694,55.7343343 63.4268694,55.7343343 L80.2470434,39.1821571 Z M106.781666,48.8370714 C119.830962,56.749628 128.0388,68.229191 128.0388,81.0030106 C128.0388,90.3534932 128.557501,98.4142085 116.165191,106.082518 C105.367708,112.763955 112.341384,99.546808 104.321443,95.1851533 C96.3015017,90.8234987 84.3749007,96.492742 86.1084305,103.091059 C89.3087234,115.272303 105.529892,114.54645 92.4224435,119.748569 C79.3149955,124.950687 74.2201582,124.224536 64.0193999,124.224536 C56.1979176,124.224536 48.7040365,123.277578 41.7755684,121.544216 C51.620343,117.347916 69.6563669,109.006202 75.129737,102.088562 C82.7876655,92.4099199 87.3713218,80.0000002 83.3235694,72.4837191 C83.1303943,72.1250117 94.5392656,60.81569 106.781666,48.8370714 Z M1.13430476,123.866563 C0.914084026,123.867944 0.693884185,123.868637 0.473712455,123.868637 C33.9526848,108.928928 22.6351223,59.642592 59.2924543,59.6425917 C59.6085574,61.0606542 59.9358353,62.5865065 60.3541977,64.1372318 C34.4465025,59.9707319 36.7873124,112.168427 1.13429588,123.866563 L1.13430476,123.866563 Z M1.84669213,123.859694 C40.7185279,123.354338 79.9985412,101.513051 79.9985401,79.0466836 C70.7284906,79.0466835 65.9257264,75.5670082 63.1833375,71.1051511 C46.585768,64.1019718 32.81846,116.819636 1.84665952,123.859695 L1.84669213,123.859694 Z M67.1980193,59.8524981 C62.748213,63.9666823 72.0838429,76.2846822 78.5155805,71.1700593 C89.8331416,59.8524993 112.468264,37.2173758 123.785825,25.8998146 C135.103386,14.5822535 123.785825,3.26469247 112.468264,14.5822535 C101.150703,25.8998144 78.9500931,48.9868127 67.1980193,59.8524981 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/permalink-button": {
            "title": "$:/core/images/permalink-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-permalink-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M80.4834582,48 L73.0956761,80 L73.0956761,80 L47.5165418,80 L54.9043239,48 L80.4834582,48 Z M84.1773493,32 L89.8007299,7.64246248 C90.7941633,3.33942958 95.0918297,0.64641956 99.3968675,1.64031585 C103.693145,2.63218977 106.385414,6.93288901 105.390651,11.2416793 L100.598215,32 L104.000754,32 C108.411895,32 112,35.581722 112,40 C112,44.4092877 108.418616,48 104.000754,48 L96.9043239,48 L89.5165418,80 L104.000754,80 C108.411895,80 112,83.581722 112,88 C112,92.4092877 108.418616,96 104.000754,96 L85.8226507,96 L80.1992701,120.357538 C79.2058367,124.66057 74.9081703,127.35358 70.6031325,126.359684 C66.3068546,125.36781 63.6145865,121.067111 64.6093491,116.758321 L69.401785,96 L43.8226507,96 L38.1992701,120.357538 C37.2058367,124.66057 32.9081703,127.35358 28.6031325,126.359684 C24.3068546,125.36781 21.6145865,121.067111 22.6093491,116.758321 L27.401785,96 L23.9992458,96 C19.5881049,96 16,92.418278 16,88 C16,83.5907123 19.5813843,80 23.9992458,80 L31.0956761,80 L38.4834582,48 L23.9992458,48 C19.5881049,48 16,44.418278 16,40 C16,35.5907123 19.5813843,32 23.9992458,32 L42.1773493,32 L47.8007299,7.64246248 C48.7941633,3.33942958 53.0918297,0.64641956 57.3968675,1.64031585 C61.6931454,2.63218977 64.3854135,6.93288901 63.3906509,11.2416793 L58.598215,32 L84.1773493,32 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/permaview-button": {
            "title": "$:/core/images/permaview-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-permaview-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M81.4834582,48 L79.6365127,56 L79.6365127,56 L74.0573784,56 L75.9043239,48 L81.4834582,48 Z M85.1773493,32 L90.8007299,7.64246248 C91.7941633,3.33942958 96.0918297,0.64641956 100.396867,1.64031585 C104.693145,2.63218977 107.385414,6.93288901 106.390651,11.2416793 L101.598215,32 L104.000754,32 C108.411895,32 112,35.581722 112,40 C112,44.4092877 108.418616,48 104.000754,48 L97.9043239,48 L96.0573784,56 L104.000754,56 C108.411895,56 112,59.581722 112,64 C112,68.4092877 108.418616,72 104.000754,72 L92.3634873,72 L90.5165418,80 L104.000754,80 C108.411895,80 112,83.581722 112,88 C112,92.4092877 108.418616,96 104.000754,96 L86.8226507,96 L81.1992701,120.357538 C80.2058367,124.66057 75.9081703,127.35358 71.6031325,126.359684 C67.3068546,125.36781 64.6145865,121.067111 65.6093491,116.758321 L70.401785,96 L64.8226507,96 L59.1992701,120.357538 C58.2058367,124.66057 53.9081703,127.35358 49.6031325,126.359684 C45.3068546,125.36781 42.6145865,121.067111 43.6093491,116.758321 L48.401785,96 L42.8226507,96 L37.1992701,120.357538 C36.2058367,124.66057 31.9081703,127.35358 27.6031325,126.359684 C23.3068546,125.36781 20.6145865,121.067111 21.6093491,116.758321 L26.401785,96 L23.9992458,96 C19.5881049,96 16,92.418278 16,88 C16,83.5907123 19.5813843,80 23.9992458,80 L30.0956761,80 L31.9426216,72 L23.9992458,72 C19.5881049,72 16,68.418278 16,64 C16,59.5907123 19.5813843,56 23.9992458,56 L35.6365127,56 L37.4834582,48 L23.9992458,48 C19.5881049,48 16,44.418278 16,40 C16,35.5907123 19.5813843,32 23.9992458,32 L41.1773493,32 L46.8007299,7.64246248 C47.7941633,3.33942958 52.0918297,0.64641956 56.3968675,1.64031585 C60.6931454,2.63218977 63.3854135,6.93288901 62.3906509,11.2416793 L57.598215,32 L63.1773493,32 L68.8007299,7.64246248 C69.7941633,3.33942958 74.0918297,0.64641956 78.3968675,1.64031585 C82.6931454,2.63218977 85.3854135,6.93288901 84.3906509,11.2416793 L79.598215,32 L85.1773493,32 Z M53.9043239,48 L52.0573784,56 L57.6365127,56 L59.4834582,48 L53.9043239,48 Z M75.9426216,72 L74.0956761,80 L74.0956761,80 L68.5165418,80 L70.3634873,72 L75.9426216,72 L75.9426216,72 Z M48.3634873,72 L46.5165418,80 L52.0956761,80 L53.9426216,72 L48.3634873,72 L48.3634873,72 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/picture": {
            "title": "$:/core/images/picture",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-picture tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M112,68.2332211 L112,20.0027785 C112,17.7898769 110.207895,16 107.997221,16 L20.0027785,16 C17.7898769,16 16,17.792105 16,20.0027785 L16,58.312373 L25.2413115,43.7197989 C28.041793,39.297674 34.2643908,38.7118128 37.8410347,42.5335275 L56.0882845,63.1470817 L69.7748997,56.7400579 C72.766567,55.3552503 76.3013751,55.9473836 78.678437,58.2315339 C78.8106437,58.3585731 79.0742301,58.609836 79.4527088,58.9673596 C80.0910923,59.570398 80.8117772,60.2441563 81.598127,60.9705595 C83.8422198,63.043576 86.1541548,65.1151944 88.3956721,67.0372264 C89.1168795,67.6556396 89.8200801,68.2492007 90.5021258,68.8146755 C92.6097224,70.5620551 94.4693308,72.0029474 95.9836366,73.0515697 C96.7316295,73.5695379 97.3674038,73.9719282 98.0281481,74.3824999 C98.4724987,74.4989557 99.0742374,74.5263881 99.8365134,74.4317984 C101.709944,74.1993272 104.074502,73.2878514 106.559886,71.8846196 C107.705822,71.2376318 108.790494,70.5370325 109.764561,69.8410487 C110.323259,69.4418522 110.694168,69.1550757 110.834827,69.0391868 C111.210545,68.7296319 111.600264,68.4615815 112,68.2332211 L112,68.2332211 Z M0,8.00697327 C0,3.58484404 3.59075293,0 8.00697327,0 L119.993027,0 C124.415156,0 128,3.59075293 128,8.00697327 L128,119.993027 C128,124.415156 124.409247,128 119.993027,128 L8.00697327,128 C3.58484404,128 0,124.409247 0,119.993027 L0,8.00697327 L0,8.00697327 Z M95,42 C99.418278,42 103,38.418278 103,34 C103,29.581722 99.418278,26 95,26 C90.581722,26 87,29.581722 87,34 C87,38.418278 90.581722,42 95,42 L95,42 Z M32,76 C47.8587691,80.8294182 52.0345556,83.2438712 52.0345556,88 C52.0345556,92.7561288 32,95.4712486 32,102.347107 C32,109.222965 33.2849191,107.337637 33.2849191,112 L67.999999,112 C67.999999,112 54.3147136,105.375255 54.3147136,101.200691 C54.3147136,93.535181 64.9302432,92.860755 64.9302432,88 C64.9302432,80.6425555 50.8523779,79.167282 32,76 L32,76 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/plugin-generic-language": {
            "title": "$:/core/images/plugin-generic-language",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M61.2072232,68.1369825 C56.8829239,70.9319564 54.2082892,74.793177 54.2082892,79.0581634 C54.2082892,86.9638335 63.3980995,93.4821994 75.2498076,94.3940006 C77.412197,98.2964184 83.8475284,101.178858 91.5684735,101.403106 C86.4420125,100.27851 82.4506393,97.6624107 80.9477167,94.3948272 C92.8046245,93.4861461 102,86.9662269 102,79.0581634 C102,70.5281905 91.3014611,63.6132813 78.1041446,63.6132813 C71.5054863,63.6132813 65.5315225,65.3420086 61.2072232,68.1369825 Z M74.001066,53.9793443 C69.6767667,56.7743182 63.7028029,58.5030456 57.1041446,58.5030456 C54.4851745,58.5030456 51.9646095,58.2307276 49.6065315,57.7275105 C46.2945155,59.9778212 41.2235699,61.4171743 35.5395922,61.4171743 C35.4545771,61.4171743 35.3696991,61.4168523 35.2849622,61.4162104 C39.404008,60.5235193 42.7961717,58.6691298 44.7630507,56.286533 C37.8379411,53.5817651 33.2082892,48.669413 33.2082892,43.0581634 C33.2082892,34.5281905 43.9068281,27.6132812 57.1041446,27.6132812 C70.3014611,27.6132812 81,34.5281905 81,43.0581634 C81,47.3231498 78.3253653,51.1843704 74.001066,53.9793443 Z M64,0 L118.5596,32 L118.5596,96 L64,128 L9.44039956,96 L9.44039956,32 L64,0 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/plugin-generic-plugin": {
            "title": "$:/core/images/plugin-generic-plugin",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M40.3972881,76.4456988 L40.3972881,95.3404069 L54.5170166,95.3404069 L54.5170166,95.3404069 C54.5165526,95.3385183 54.516089,95.3366295 54.515626,95.3347404 C54.6093153,95.3385061 54.7034848,95.3404069 54.7980982,95.3404069 C58.6157051,95.3404069 61.710487,92.245625 61.710487,88.4280181 C61.710487,86.6197822 61.01617,84.9737128 59.8795929,83.7418666 L59.8795929,83.7418666 C59.8949905,83.7341665 59.9104102,83.7265043 59.925852,83.7188798 C58.8840576,82.5086663 58.2542926,80.9336277 58.2542926,79.2114996 C58.2542926,75.3938927 61.3490745,72.2991108 65.1666814,72.2991108 C68.9842884,72.2991108 72.0790703,75.3938927 72.0790703,79.2114996 C72.0790703,81.1954221 71.2432806,82.9841354 69.9045961,84.2447446 L69.9045961,84.2447446 C69.9333407,84.2629251 69.9619885,84.281245 69.9905383,84.2997032 L69.9905383,84.2997032 C69.1314315,85.4516923 68.6228758,86.8804654 68.6228758,88.4280181 C68.6228758,91.8584969 71.1218232,94.7053153 74.3986526,95.2474079 C74.3913315,95.2784624 74.3838688,95.3094624 74.3762652,95.3404069 L95.6963988,95.3404069 L95.6963988,75.5678578 L95.6963988,75.5678578 C95.6466539,75.5808558 95.5967614,75.5934886 95.5467242,75.6057531 C95.5504899,75.5120637 95.5523907,75.4178943 95.5523907,75.3232809 C95.5523907,71.505674 92.4576088,68.4108921 88.6400019,68.4108921 C86.831766,68.4108921 85.1856966,69.105209 83.9538504,70.2417862 L83.9538504,70.2417862 C83.9461503,70.2263886 83.938488,70.2109688 83.9308636,70.1955271 C82.7206501,71.2373215 81.1456115,71.8670865 79.4234834,71.8670865 C75.6058765,71.8670865 72.5110946,68.7723046 72.5110946,64.9546976 C72.5110946,61.1370907 75.6058765,58.0423088 79.4234834,58.0423088 C81.4074059,58.0423088 83.1961192,58.8780985 84.4567284,60.2167829 L84.4567284,60.2167829 C84.4749089,60.1880383 84.4932288,60.1593906 84.511687,60.1308407 L84.511687,60.1308407 C85.6636761,60.9899475 87.0924492,61.4985032 88.6400019,61.4985032 C92.0704807,61.4985032 94.9172991,58.9995558 95.4593917,55.7227265 C95.538755,55.7414363 95.6177614,55.761071 95.6963988,55.7816184 L95.6963988,40.0412962 L74.3762652,40.0412962 L74.3762652,40.0412962 C74.3838688,40.0103516 74.3913315,39.9793517 74.3986526,39.9482971 L74.3986526,39.9482971 C71.1218232,39.4062046 68.6228758,36.5593862 68.6228758,33.1289073 C68.6228758,31.5813547 69.1314315,30.1525815 69.9905383,29.0005925 C69.9619885,28.9821342 69.9333407,28.9638143 69.9045961,28.9456339 C71.2432806,27.6850247 72.0790703,25.8963113 72.0790703,23.9123888 C72.0790703,20.0947819 68.9842884,17 65.1666814,17 C61.3490745,17 58.2542926,20.0947819 58.2542926,23.9123888 C58.2542926,25.6345169 58.8840576,27.2095556 59.925852,28.419769 L59.925852,28.419769 C59.9104102,28.4273935 59.8949905,28.4350558 59.8795929,28.4427558 C61.01617,29.674602 61.710487,31.3206715 61.710487,33.1289073 C61.710487,36.9465143 58.6157051,40.0412962 54.7980982,40.0412962 C54.7034848,40.0412962 54.6093153,40.0393953 54.515626,40.0356296 L54.515626,40.0356296 C54.516089,40.0375187 54.5165526,40.0394075 54.5170166,40.0412962 L40.3972881,40.0412962 L40.3972881,52.887664 L40.3972881,52.887664 C40.4916889,53.3430132 40.5412962,53.8147625 40.5412962,54.2980982 C40.5412962,58.1157051 37.4465143,61.210487 33.6289073,61.210487 C32.0813547,61.210487 30.6525815,60.7019313 29.5005925,59.8428245 C29.4821342,59.8713744 29.4638143,59.9000221 29.4456339,59.9287667 C28.1850247,58.5900823 26.3963113,57.7542926 24.4123888,57.7542926 C20.5947819,57.7542926 17.5,60.8490745 17.5,64.6666814 C17.5,68.4842884 20.5947819,71.5790703 24.4123888,71.5790703 C26.134517,71.5790703 27.7095556,70.9493053 28.919769,69.9075109 L28.919769,69.9075109 C28.9273935,69.9229526 28.9350558,69.9383724 28.9427558,69.95377 C30.174602,68.8171928 31.8206715,68.1228758 33.6289073,68.1228758 C37.4465143,68.1228758 40.5412962,71.2176578 40.5412962,75.0352647 C40.5412962,75.5186004 40.4916889,75.9903496 40.3972881,76.4456988 Z M64,0 L118.5596,32 L118.5596,96 L64,128 L9.44039956,96 L9.44039956,32 L64,0 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/plugin-generic-theme": {
            "title": "$:/core/images/plugin-generic-theme",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M29.4078519,91.4716406 L51.4693474,69.4101451 L51.4646675,69.4054652 C50.5969502,68.5377479 50.5929779,67.1348725 51.4693474,66.2585029 C52.3396494,65.3882009 53.7499654,65.3874786 54.6163097,66.2538229 L64.0805963,75.7181095 C64.9483136,76.5858268 64.9522859,77.9887022 64.0759163,78.8650718 C63.2056143,79.7353737 61.7952984,79.736096 60.9289541,78.8697517 L60.9242741,78.8650718 L60.9242741,78.8650718 L38.8627786,100.926567 C36.2518727,103.537473 32.0187578,103.537473 29.4078519,100.926567 C26.796946,98.3156614 26.796946,94.0825465 29.4078519,91.4716406 Z M60.8017407,66.3810363 C58.3659178,63.6765806 56.3370667,61.2899536 54.9851735,59.5123615 C48.1295381,50.4979488 44.671561,55.2444054 40.7586738,59.5123614 C36.8457866,63.7803174 41.789473,67.2384487 38.0759896,70.2532832 C34.3625062,73.2681177 34.5917646,74.3131575 28.3243876,68.7977024 C22.0570105,63.2822473 21.6235306,61.7636888 24.5005999,58.6166112 C27.3776691,55.4695337 29.7823103,60.4247912 35.6595047,54.8320442 C41.5366991,49.2392972 36.5996215,44.2825646 36.5996215,44.2825646 C36.5996215,44.2825646 48.8365511,19.267683 65.1880231,21.1152173 C81.5394952,22.9627517 59.0022276,18.7228947 53.3962199,38.3410355 C50.9960082,46.7405407 53.8429162,44.7613399 58.3941742,48.3090467 C59.7875202,49.3951602 64.4244828,52.7100463 70.1884353,56.9943417 L90.8648751,36.3179019 L92.4795866,31.5515482 L100.319802,26.8629752 L103.471444,30.0146174 L98.782871,37.8548326 L94.0165173,39.4695441 L73.7934912,59.6925702 C86.4558549,69.2403631 102.104532,81.8392557 102.104532,86.4016913 C102.104533,93.6189834 99.0337832,97.9277545 92.5695848,95.5655717 C87.8765989,93.8506351 73.8015497,80.3744087 63.8173444,69.668717 L60.9242741,72.5617873 L57.7726319,69.4101451 L60.8017407,66.3810363 L60.8017407,66.3810363 Z M63.9533761,1.42108547e-13 L118.512977,32 L118.512977,96 L63.9533761,128 L9.39377563,96 L9.39377563,32 L63.9533761,1.42108547e-13 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/preview-closed": {
            "title": "$:/core/images/preview-closed",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-preview-closed tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M0.0881363238,64 C-0.210292223,65.8846266 0.249135869,67.8634737 1.4664206,69.4579969 C16.2465319,88.8184886 39.1692554,100.414336 64,100.414336 C88.8307446,100.414336 111.753468,88.8184886 126.533579,69.4579969 C127.750864,67.8634737 128.210292,65.8846266 127.911864,64 C110.582357,78.4158332 88.3036732,87.0858436 64,87.0858436 C39.6963268,87.0858436 17.4176431,78.4158332 0.0881363238,64 Z\"></path>\n        <rect x=\"62\" y=\"96\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(80.000000, 101.000000) rotate(-5.000000) translate(-80.000000, -101.000000) \" x=\"78\" y=\"93\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(48.000000, 101.000000) rotate(-355.000000) translate(-48.000000, -101.000000) \" x=\"46\" y=\"93\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(32.000000, 96.000000) rotate(-350.000000) translate(-32.000000, -96.000000) \" x=\"30\" y=\"88\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(96.000000, 96.000000) rotate(-10.000000) translate(-96.000000, -96.000000) \" x=\"94\" y=\"88\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(112.000000, 88.000000) rotate(-20.000000) translate(-112.000000, -88.000000) \" x=\"110\" y=\"80\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(16.000000, 88.000000) rotate(-340.000000) translate(-16.000000, -88.000000) \" x=\"14\" y=\"80\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n    </g>\n</svg>"
        },
        "$:/core/images/preview-open": {
            "title": "$:/core/images/preview-open",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-preview-open tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M64.1099282,99.5876785 C39.2791836,99.5876785 16.3564602,87.9918313 1.57634884,68.6313396 C-0.378878622,66.070184 -0.378878622,62.5174945 1.57634884,59.9563389 C16.3564602,40.5958472 39.2791836,29 64.1099282,29 C88.9406729,29 111.863396,40.5958472 126.643508,59.9563389 C128.598735,62.5174945 128.598735,66.070184 126.643508,68.6313396 C111.863396,87.9918313 88.9406729,99.5876785 64.1099282,99.5876785 Z M110.213805,67.5808331 C111.654168,66.0569335 111.654168,63.9430665 110.213805,62.4191669 C99.3257042,50.8995835 82.4391647,44 64.1470385,44 C45.8549124,44 28.9683729,50.8995835 18.0802717,62.4191669 C16.6399094,63.9430665 16.6399094,66.0569335 18.0802717,67.5808331 C28.9683729,79.1004165 45.8549124,86 64.1470385,86 C82.4391647,86 99.3257042,79.1004165 110.213805,67.5808331 Z\"></path>\n        <path d=\"M63.5,88 C76.4786916,88 87,77.4786916 87,64.5 C87,51.5213084 76.4786916,41 63.5,41 C50.5213084,41 40,51.5213084 40,64.5 C40,77.4786916 50.5213084,88 63.5,88 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/print-button": {
            "title": "$:/core/images/print-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-print-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M112,71 L112,30.5 L111.96811,30.5 L111.96811,30.5 C111.932942,28.4998414 111.151676,26.510538 109.625176,24.9840387 L86.9982489,2.35711116 C85.3482153,0.707077645 83.1589869,-0.071534047 81,0.0201838424 L81,0 L23.9992458,0 C19.5808867,0 16,3.58213437 16,8.00092105 L16,71 L24,71 L24,8 L81,8 L81,22.4996539 C81,26.9216269 84.5818769,30.5 89.0003461,30.5 L104,30.5 L104,71 L112,71 Z\"></path>\n        <rect x=\"32\" y=\"36\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"52\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"20\" width=\"40\" height=\"8\" rx=\"4\"></rect>\n        <path d=\"M0,80.0054195 C0,71.1658704 7.15611005,64 16.0008841,64 L111.999116,64 C120.83616,64 128,71.1553215 128,80.0054195 L128,111.99458 C128,120.83413 120.84389,128 111.999116,128 L16.0008841,128 C7.16383982,128 0,120.844679 0,111.99458 L0,80.0054195 Z M104,96 C108.418278,96 112,92.418278 112,88 C112,83.581722 108.418278,80 104,80 C99.581722,80 96,83.581722 96,88 C96,92.418278 99.581722,96 104,96 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/quote": {
            "title": "$:/core/images/quote",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-quote tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M51.2188077,117.712501 L51.2188077,62.1993386 L27.4274524,62.1993386 C27.4274524,53.3075754 29.1096526,45.797753 32.4741035,39.669646 C35.8385544,33.541539 42.0867267,28.9154883 51.2188077,25.7913554 L51.2188077,2 C43.7689521,2.96127169 36.8599155,5.18417913 30.4914905,8.668789 C24.1230656,12.1533989 18.6559149,16.5391352 14.0898743,21.8261295 C9.52383382,27.1131238 5.97919764,33.2411389 3.45585945,40.2103586 C0.932521268,47.1795784 -0.208971741,54.6293222 0.0313461819,62.5598136 L0.0313461819,117.712501 L51.2188077,117.712501 Z M128,117.712501 L128,62.1993386 L104.208645,62.1993386 C104.208645,53.3075754 105.890845,45.797753 109.255296,39.669646 C112.619747,33.541539 118.867919,28.9154883 128,25.7913554 L128,2 C120.550144,2.96127169 113.641108,5.18417913 107.272683,8.668789 C100.904258,12.1533989 95.4371072,16.5391352 90.8710666,21.8261295 C86.3050261,27.1131238 82.7603899,33.2411389 80.2370517,40.2103586 C77.7137136,47.1795784 76.5722206,54.6293222 76.8125385,62.5598136 L76.8125385,117.712501 L128,117.712501 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/refresh-button": {
            "title": "$:/core/images/refresh-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-refresh-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M106.369002,39.4325143 C116.529932,60.3119371 112.939592,86.1974934 95.5979797,103.539105 C73.7286194,125.408466 38.2713806,125.408466 16.4020203,103.539105 C-5.46734008,81.6697449 -5.46734008,46.2125061 16.4020203,24.3431458 C19.5262146,21.2189514 24.5915344,21.2189514 27.7157288,24.3431458 C30.8399231,27.4673401 30.8399231,32.5326599 27.7157288,35.6568542 C12.0947571,51.2778259 12.0947571,76.6044251 27.7157288,92.2253967 C43.3367004,107.846368 68.6632996,107.846368 84.2842712,92.2253967 C97.71993,78.7897379 99.5995262,58.1740623 89.9230597,42.729491 L83.4844861,54.9932839 C81.4307001,58.9052072 76.5945372,60.4115251 72.682614,58.3577391 C68.7706907,56.3039532 67.2643728,51.4677903 69.3181587,47.555867 L84.4354914,18.7613158 C86.4966389,14.8353707 91.3577499,13.3347805 95.273202,15.415792 L124.145886,30.7612457 C128.047354,32.8348248 129.52915,37.6785572 127.455571,41.5800249 C125.381992,45.4814927 120.53826,46.9632892 116.636792,44.8897102 L106.369002,39.4325143 Z M98.1470904,27.0648707 C97.9798954,26.8741582 97.811187,26.6843098 97.6409651,26.4953413 L98.6018187,26.1987327 L98.1470904,27.0648707 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/right-arrow": {
            "title": "$:/core/images/right-arrow",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-right-arrow tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <path d=\"M80.3563798,109.353315 C78.9238993,110.786918 76.9450203,111.675144 74.7592239,111.675144 L-4.40893546,111.675144 C-8.77412698,111.675144 -12.3248558,108.130732 -12.3248558,103.758478 C-12.3248558,99.3951199 -8.78077754,95.8418109 -4.40893546,95.8418109 L66.8418109,95.8418109 L66.8418109,24.5910645 C66.8418109,20.225873 70.3862233,16.6751442 74.7584775,16.6751442 C79.1218352,16.6751442 82.6751442,20.2192225 82.6751442,24.5910645 L82.6751442,103.759224 C82.6751442,105.941695 81.7891419,107.920575 80.3566508,109.353886 Z\" transform=\"translate(35.175144, 64.175144) rotate(-45.000000) translate(-35.175144, -64.175144) \"></path>\n</svg>"
        },
        "$:/core/images/save-button": {
            "title": "$:/core/images/save-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-save-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M120.78304,34.329058 C125.424287,43.1924006 128.049406,53.2778608 128.049406,63.9764502 C128.049406,99.3226742 99.3956295,127.97645 64.0494055,127.97645 C28.7031816,127.97645 0.0494055385,99.3226742 0.0494055385,63.9764502 C0.0494055385,28.6302262 28.7031816,-0.0235498012 64.0494055,-0.0235498012 C82.8568763,-0.0235498012 99.769563,8.08898558 111.479045,21.0056358 L114.159581,18.3250998 C117.289194,15.1954866 122.356036,15.1939641 125.480231,18.3181584 C128.598068,21.4359957 128.601317,26.5107804 125.473289,29.6388083 L120.78304,34.329058 Z M108.72451,46.3875877 C110.870571,51.8341374 112.049406,57.767628 112.049406,63.9764502 C112.049406,90.4861182 90.5590735,111.97645 64.0494055,111.97645 C37.5397375,111.97645 16.0494055,90.4861182 16.0494055,63.9764502 C16.0494055,37.4667822 37.5397375,15.9764502 64.0494055,15.9764502 C78.438886,15.9764502 91.3495036,22.308215 100.147097,32.3375836 L58.9411255,73.5435552 L41.975581,56.5780107 C38.8486152,53.4510448 33.7746915,53.4551552 30.6568542,56.5729924 C27.5326599,59.6971868 27.5372202,64.7670668 30.6618725,67.8917192 L53.279253,90.5090997 C54.8435723,92.073419 56.8951519,92.8541315 58.9380216,92.8558261 C60.987971,92.8559239 63.0389578,92.0731398 64.6049211,90.5071765 L108.72451,46.3875877 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/size": {
            "title": "$:/core/images/size",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-size tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <path d=\"M92.3431458,26 L83.1715729,35.1715729 C81.6094757,36.73367 81.6094757,39.26633 83.1715729,40.8284271 C84.73367,42.3905243 87.26633,42.3905243 88.8284271,40.8284271 L104.828427,24.8284271 C106.390524,23.26633 106.390524,20.73367 104.828427,19.1715729 L88.8284271,3.17157288 C87.26633,1.60947571 84.73367,1.60947571 83.1715729,3.17157288 C81.6094757,4.73367004 81.6094757,7.26632996 83.1715729,8.82842712 L92.3431457,18 L22,18 C19.790861,18 18,19.790861 18,22 L18,92.3431458 L8.82842712,83.1715729 C7.26632996,81.6094757 4.73367004,81.6094757 3.17157288,83.1715729 C1.60947571,84.73367 1.60947571,87.26633 3.17157288,88.8284271 L19.1715729,104.828427 C20.73367,106.390524 23.26633,106.390524 24.8284271,104.828427 L40.8284271,88.8284271 C42.3905243,87.26633 42.3905243,84.73367 40.8284271,83.1715729 C39.26633,81.6094757 36.73367,81.6094757 35.1715729,83.1715729 L26,92.3431458 L26,22 L22,26 L92.3431458,26 L92.3431458,26 Z M112,52 L112,116 L116,112 L52,112 C49.790861,112 48,113.790861 48,116 C48,118.209139 49.790861,120 52,120 L116,120 C118.209139,120 120,118.209139 120,116 L120,52 C120,49.790861 118.209139,48 116,48 C113.790861,48 112,49.790861 112,52 L112,52 Z\"></path>\n</svg>"
        },
        "$:/core/images/spiral": {
            "title": "$:/core/images/spiral",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-spiral tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"nonzero\">\n        <path d=\"M64.534 68.348c3.39 0 6.097-2.62 6.476-5.968l-4.755-.538 4.75.583c.377-3.07-1.194-6.054-3.89-7.78-2.757-1.773-6.34-2.01-9.566-.7-3.46 1.403-6.14 4.392-7.35 8.148l-.01.026c-1.3 4.08-.72 8.64 1.58 12.52 2.5 4.2 6.77 7.2 11.76 8.27 5.37 1.15 11.11-.05 15.83-3.31 5.04-3.51 8.46-9.02 9.45-15.3 1.05-6.7-.72-13.63-4.92-19.19l.02.02c-4.42-5.93-11.2-9.82-18.78-10.78-7.96-1.01-16.13 1.31-22.59 6.43-6.81 5.39-11.18 13.41-12.11 22.26-.98 9.27 1.87 18.65 7.93 26.02 6.32 7.69 15.6 12.56 25.74 13.48 10.54.96 21.15-2.42 29.45-9.4l.01-.01c8.58-7.25 13.94-17.78 14.86-29.21.94-11.84-2.96-23.69-10.86-32.9-8.19-9.5-19.95-15.36-32.69-16.27-13.16-.94-26.24 3.49-36.34 12.34l.01-.01c-10.41 9.08-16.78 22.1-17.68 36.15-.93 14.44 4.03 28.77 13.79 39.78 10.03 11.32 24.28 18.2 39.6 19.09 15.73.92 31.31-4.56 43.24-15.234 12.23-10.954 19.61-26.44 20.5-43.074.14-2.64-1.89-4.89-4.52-5.03-2.64-.14-4.89 1.88-5.03 4.52-.75 14.1-7 27.2-17.33 36.45-10.03 8.98-23.11 13.58-36.3 12.81-12.79-.75-24.67-6.48-33-15.89-8.07-9.11-12.17-20.94-11.41-32.827.74-11.52 5.942-22.15 14.43-29.54l.01-.01c8.18-7.17 18.74-10.75 29.35-9.998 10.21.726 19.6 5.41 26.11 12.96 6.24 7.273 9.32 16.61 8.573 25.894-.718 8.9-4.88 17.064-11.504 22.66l.01-.007c-6.36 5.342-14.44 7.92-22.425 7.19-7.604-.68-14.52-4.314-19.21-10.027-4.44-5.4-6.517-12.23-5.806-18.94.67-6.3 3.76-11.977 8.54-15.766 4.46-3.54 10.05-5.128 15.44-4.44 5.03.63 9.46 3.18 12.32 7.01l.02.024c2.65 3.5 3.75 7.814 3.1 11.92-.59 3.71-2.58 6.925-5.45 8.924-2.56 1.767-5.61 2.403-8.38 1.81-2.42-.516-4.42-1.92-5.53-3.79-.93-1.56-1.15-3.3-.69-4.75l-4.56-1.446L59.325 65c.36-1.12 1.068-1.905 1.84-2.22.25-.103.48-.14.668-.13.06.006.11.015.14.025.01 0 .01 0-.01-.01-.02-.015-.054-.045-.094-.088-.06-.064-.12-.145-.17-.244-.15-.29-.23-.678-.18-1.11l-.005.04c.15-1.332 1.38-2.523 3.035-2.523-2.65 0-4.79 2.144-4.79 4.787s2.14 4.785 4.78 4.785z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/stamp": {
            "title": "$:/core/images/stamp",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-stamp tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M49.7334301,64 L16.0098166,64 C11.5838751,64 8,67.5829053 8,72.002643 L8,74.4986785 L8,97 L120,97 L120,74.4986785 L120,72.002643 C120,67.5737547 116.413883,64 111.990183,64 L78.2665699,64 C76.502049,60.7519149 75.5,57.0311962 75.5,53.0769231 C75.5,46.6017951 78.1869052,40.7529228 82.5087769,36.5800577 C85.3313113,32.7688808 87,28.0549983 87,22.952183 C87,10.2760423 76.7025492,0 64,0 C51.2974508,0 41,10.2760423 41,22.952183 C41,28.0549983 42.6686887,32.7688808 45.4912231,36.5800577 C49.8130948,40.7529228 52.5,46.6017951 52.5,53.0769231 C52.5,57.0311962 51.497951,60.7519149 49.7334301,64 Z M8,104 L120,104 L120,112 L8,112 L8,104 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/star-filled": {
            "title": "$:/core/images/star-filled",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-star-filled tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"nonzero\">\n        <path d=\"M61.8361286,96.8228569 L99.1627704,124.110219 C101.883827,126.099427 105.541968,123.420868 104.505636,120.198072 L90.2895569,75.9887263 L89.0292911,79.8977279 L126.314504,52.5528988 C129.032541,50.5595011 127.635256,46.2255025 124.273711,46.2229134 L78.1610486,46.1873965 L81.4604673,48.6032923 L67.1773543,4.41589688 C66.1361365,1.19470104 61.6144265,1.19470104 60.5732087,4.41589688 L46.2900957,48.6032923 L49.5895144,46.1873965 L3.47685231,46.2229134 C0.115307373,46.2255025 -1.28197785,50.5595011 1.43605908,52.5528988 L38.7212719,79.8977279 L37.4610061,75.9887263 L23.2449266,120.198072 C22.2085954,123.420868 25.8667356,126.099427 28.5877926,124.110219 L65.9144344,96.8228569 L61.8361286,96.8228569 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/storyview-classic": {
            "title": "$:/core/images/storyview-classic",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-storyview-classic tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M8.00697327,0 C3.58484404,0 0,3.59075293 0,8.00697327 L0,119.993027 C0,124.415156 3.59075293,128 8.00697327,128 L119.993027,128 C124.415156,128 128,124.409247 128,119.993027 L128,8.00697327 C128,3.58484404 124.409247,0 119.993027,0 L8.00697327,0 L8.00697327,0 Z M23.9992458,16 C19.5813843,16 16,19.5776607 16,23.9924054 L16,40.0075946 C16,44.4216782 19.5881049,48 23.9992458,48 L104.000754,48 C108.418616,48 112,44.4223393 112,40.0075946 L112,23.9924054 C112,19.5783218 108.411895,16 104.000754,16 L23.9992458,16 L23.9992458,16 Z M23.9992458,64 C19.5813843,64 16,67.5907123 16,72 C16,76.418278 19.5881049,80 23.9992458,80 L104.000754,80 C108.418616,80 112,76.4092877 112,72 C112,67.581722 108.411895,64 104.000754,64 L23.9992458,64 L23.9992458,64 Z M23.9992458,96 C19.5813843,96 16,99.5907123 16,104 C16,108.418278 19.5881049,112 23.9992458,112 L104.000754,112 C108.418616,112 112,108.409288 112,104 C112,99.581722 108.411895,96 104.000754,96 L23.9992458,96 L23.9992458,96 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/storyview-pop": {
            "title": "$:/core/images/storyview-pop",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-storyview-pop tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M8.00697327,0 C3.58484404,0 0,3.59075293 0,8.00697327 L0,119.993027 C0,124.415156 3.59075293,128 8.00697327,128 L119.993027,128 C124.415156,128 128,124.409247 128,119.993027 L128,8.00697327 C128,3.58484404 124.409247,0 119.993027,0 L8.00697327,0 L8.00697327,0 Z M23.9992458,16 C19.5813843,16 16,19.5776607 16,23.9924054 L16,40.0075946 C16,44.4216782 19.5881049,48 23.9992458,48 L104.000754,48 C108.418616,48 112,44.4223393 112,40.0075946 L112,23.9924054 C112,19.5783218 108.411895,16 104.000754,16 L23.9992458,16 L23.9992458,16 Z M16.0098166,56 C11.586117,56 8,59.5776607 8,63.9924054 L8,80.0075946 C8,84.4216782 11.5838751,88 16.0098166,88 L111.990183,88 C116.413883,88 120,84.4223393 120,80.0075946 L120,63.9924054 C120,59.5783218 116.416125,56 111.990183,56 L16.0098166,56 L16.0098166,56 Z M23.9992458,96 C19.5813843,96 16,99.5907123 16,104 C16,108.418278 19.5881049,112 23.9992458,112 L104.000754,112 C108.418616,112 112,108.409288 112,104 C112,99.581722 108.411895,96 104.000754,96 L23.9992458,96 L23.9992458,96 Z M23.9992458,64 C19.5813843,64 16,67.5907123 16,72 C16,76.418278 19.5881049,80 23.9992458,80 L104.000754,80 C108.418616,80 112,76.4092877 112,72 C112,67.581722 108.411895,64 104.000754,64 L23.9992458,64 L23.9992458,64 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/storyview-zoomin": {
            "title": "$:/core/images/storyview-zoomin",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-storyview-zoomin tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M8.00697327,0 C3.58484404,0 0,3.59075293 0,8.00697327 L0,119.993027 C0,124.415156 3.59075293,128 8.00697327,128 L119.993027,128 C124.415156,128 128,124.409247 128,119.993027 L128,8.00697327 C128,3.58484404 124.409247,0 119.993027,0 L8.00697327,0 L8.00697327,0 Z M23.9992458,16 C19.5813843,16 16,19.578055 16,24.0085154 L16,71.9914846 C16,76.4144655 19.5881049,80 23.9992458,80 L104.000754,80 C108.418616,80 112,76.421945 112,71.9914846 L112,24.0085154 C112,19.5855345 108.411895,16 104.000754,16 L23.9992458,16 L23.9992458,16 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/strikethrough": {
            "title": "$:/core/images/strikethrough",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-strikethrough tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M92.793842,38.7255689 L108.215529,38.7255689 C107.987058,31.985687 106.70193,26.1883331 104.360107,21.3333333 C102.018284,16.4783336 98.8197436,12.4516001 94.7643909,9.25301205 C90.7090382,6.05442399 85.9969032,3.71263572 80.6278447,2.22757697 C75.2587862,0.742518233 69.4328739,0 63.1499331,0 C57.552404,0 52.0977508,0.713959839 46.7858099,2.14190094 C41.473869,3.56984203 36.7331757,5.74027995 32.5635877,8.65327979 C28.3939997,11.5662796 25.0526676,15.2788708 22.5394913,19.7911647 C20.026315,24.3034585 18.7697456,29.6438781 18.7697456,35.8125837 C18.7697456,41.4101128 19.883523,46.0651309 22.1111111,49.7777778 C24.3386992,53.4904246 27.3087722,56.5176144 31.021419,58.8594378 C34.7340659,61.2012612 38.9321497,63.0861151 43.6157965,64.5140562 C48.2994433,65.9419973 53.068695,67.1985666 57.9236948,68.2838019 C62.7786945,69.3690371 67.5479462,70.4256977 72.231593,71.4538153 C76.9152398,72.4819329 81.1133237,73.8241773 84.8259705,75.480589 C88.5386174,77.1370007 91.5086903,79.2788802 93.7362784,81.9062918 C95.9638666,84.5337035 97.0776439,87.9607107 97.0776439,92.1874163 C97.0776439,96.6425926 96.1637753,100.298067 94.3360107,103.153949 C92.5082461,106.009831 90.109341,108.265944 87.1392236,109.922356 C84.1691061,111.578768 80.827774,112.749662 77.1151272,113.435074 C73.4024803,114.120485 69.7184476,114.463186 66.0629183,114.463186 C61.4935068,114.463186 57.0383974,113.892018 52.6974565,112.749665 C48.3565156,111.607312 44.5582492,109.836692 41.3025435,107.437751 C38.0468378,105.03881 35.4194656,101.983062 33.4203481,98.270415 C31.4212305,94.5577681 30.4216867,90.1312171 30.4216867,84.9906292 L15,84.9906292 C15,92.4159229 16.3422445,98.8415614 19.0267738,104.267738 C21.711303,109.693914 25.3667774,114.149023 29.9933066,117.633199 C34.6198357,121.117376 39.9888137,123.71619 46.1004016,125.429719 C52.2119895,127.143248 58.6947448,128 65.5488621,128 C71.1463912,128 76.7723948,127.343157 82.4270415,126.029451 C88.0816882,124.715745 93.1936407,122.602424 97.7630522,119.689424 C102.332464,116.776425 106.073613,113.006717 108.986613,108.380187 C111.899613,103.753658 113.356091,98.1847715 113.356091,91.6733601 C113.356091,85.6188899 112.242314,80.5926126 110.014726,76.5943775 C107.787137,72.5961424 104.817065,69.2833688 101.104418,66.6559572 C97.3917708,64.0285455 93.193687,61.9437828 88.5100402,60.4016064 C83.8263934,58.85943 79.0571416,57.5171855 74.2021419,56.3748327 C69.3471422,55.2324798 64.5778904,54.1758192 59.8942436,53.2048193 C55.2105968,52.2338193 51.012513,51.0058084 47.2998661,49.5207497 C43.5872193,48.0356909 40.6171463,46.1222786 38.3895582,43.7804552 C36.1619701,41.4386318 35.0481928,38.3828836 35.0481928,34.6131191 C35.0481928,30.6148841 35.8192694,27.273552 37.3614458,24.5890228 C38.9036222,21.9044935 40.9598265,19.762614 43.5301205,18.1633199 C46.1004145,16.5640259 49.041929,15.4216902 52.3547523,14.7362784 C55.6675757,14.0508667 59.0374661,13.708166 62.4645248,13.708166 C70.9179361,13.708166 77.8576257,15.6786952 83.2838019,19.6198126 C88.709978,23.56093 91.8799597,29.9294518 92.793842,38.7255689 L92.793842,38.7255689 Z\"></path>\n        <rect x=\"5\" y=\"54\" width=\"118\" height=\"16\"></rect>\n    </g>\n</svg>"
        },
        "$:/core/images/subscript": {
            "title": "$:/core/images/subscript",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-subscript tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M2.27170276,16 L22.1825093,16 L43.8305003,49.6746527 L66.4138983,16 L85.1220387,16 L53.5854592,61.9685735 L87.3937414,111.411516 L67.0820462,111.411516 L43.295982,74.9306422 L19.1090291,111.411516 L0,111.411516 L33.8082822,61.9685735 L2.27170276,16 Z M127.910914,128.411516 L85.3276227,128.411516 C85.3870139,123.24448 86.6342108,118.730815 89.0692508,114.870386 C91.5042907,111.009956 94.8301491,107.654403 99.0469256,104.803624 C101.066227,103.318844 103.174584,101.878629 105.372059,100.482935 C107.569534,99.0872413 109.588805,97.5876355 111.429933,95.9840726 C113.271061,94.3805097 114.785514,92.6433426 115.973338,90.7725192 C117.161163,88.9016958 117.784761,86.7487964 117.844152,84.3137564 C117.844152,83.1853233 117.710524,81.9826691 117.443264,80.7057579 C117.176003,79.4288467 116.656338,78.2410402 115.884252,77.1423026 C115.112166,76.0435651 114.04314,75.123015 112.677142,74.3806248 C111.311144,73.6382345 109.529434,73.267045 107.331959,73.267045 C105.312658,73.267045 103.634881,73.6679297 102.298579,74.4697112 C100.962276,75.2714926 99.8932503,76.3702137 99.0914688,77.7659073 C98.2896874,79.161601 97.6957841,80.8096826 97.3097412,82.7102016 C96.9236982,84.6107206 96.7009845,86.6596869 96.6415933,88.857162 L86.4857457,88.857162 C86.4857457,85.4124713 86.9460207,82.2202411 87.8665846,79.2803758 C88.7871485,76.3405105 90.1679736,73.801574 92.0091014,71.6634901 C93.8502292,69.5254062 96.092214,67.8476295 98.7351233,66.6301095 C101.378033,65.4125895 104.451482,64.8038386 107.955564,64.8038386 C111.756602,64.8038386 114.933984,65.4274371 117.487807,66.6746527 C120.041629,67.9218683 122.105443,69.4957119 123.67931,71.3962309 C125.253178,73.2967499 126.366746,75.3605638 127.02005,77.5877345 C127.673353,79.8149053 128,81.9381095 128,83.9574109 C128,86.4518421 127.613963,88.7086746 126.841877,90.727976 C126.069791,92.7472774 125.03046,94.6032252 123.723854,96.2958749 C122.417247,97.9885247 120.932489,99.5475208 119.269534,100.97291 C117.60658,102.398299 115.884261,103.734582 114.102524,104.981797 C112.320788,106.229013 110.539078,107.416819 108.757341,108.545253 C106.975605,109.673686 105.327523,110.802102 103.813047,111.930535 C102.298571,113.058968 100.977136,114.231927 99.8487031,115.449447 C98.7202699,116.666967 97.9481956,117.958707 97.5324571,119.324705 L127.910914,119.324705 L127.910914,128.411516 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/superscript": {
            "title": "$:/core/images/superscript",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-superscript tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M2.27170276,16 L22.1825093,16 L43.8305003,49.6746527 L66.4138983,16 L85.1220387,16 L53.5854592,61.9685735 L87.3937414,111.411516 L67.0820462,111.411516 L43.295982,74.9306422 L19.1090291,111.411516 L0,111.411516 L33.8082822,61.9685735 L2.27170276,16 Z M127.910914,63.4115159 L85.3276227,63.4115159 C85.3870139,58.2444799 86.6342108,53.7308149 89.0692508,49.8703857 C91.5042907,46.0099565 94.8301491,42.654403 99.0469256,39.8036245 C101.066227,38.318844 103.174584,36.8786285 105.372059,35.4829349 C107.569534,34.0872413 109.588805,32.5876355 111.429933,30.9840726 C113.271061,29.3805097 114.785514,27.6433426 115.973338,25.7725192 C117.161163,23.9016958 117.784761,21.7487964 117.844152,19.3137564 C117.844152,18.1853233 117.710524,16.9826691 117.443264,15.7057579 C117.176003,14.4288467 116.656338,13.2410402 115.884252,12.1423026 C115.112166,11.0435651 114.04314,10.123015 112.677142,9.38062477 C111.311144,8.63823453 109.529434,8.26704499 107.331959,8.26704499 C105.312658,8.26704499 103.634881,8.6679297 102.298579,9.46971115 C100.962276,10.2714926 99.8932503,11.3702137 99.0914688,12.7659073 C98.2896874,14.161601 97.6957841,15.8096826 97.3097412,17.7102016 C96.9236982,19.6107206 96.7009845,21.6596869 96.6415933,23.857162 L86.4857457,23.857162 C86.4857457,20.4124713 86.9460207,17.2202411 87.8665846,14.2803758 C88.7871485,11.3405105 90.1679736,8.80157397 92.0091014,6.6634901 C93.8502292,4.52540622 96.092214,2.84762946 98.7351233,1.63010947 C101.378033,0.412589489 104.451482,-0.196161372 107.955564,-0.196161372 C111.756602,-0.196161372 114.933984,0.427437071 117.487807,1.67465266 C120.041629,2.92186826 122.105443,4.49571195 123.67931,6.39623095 C125.253178,8.29674995 126.366746,10.3605638 127.02005,12.5877345 C127.673353,14.8149053 128,16.9381095 128,18.9574109 C128,21.4518421 127.613963,23.7086746 126.841877,25.727976 C126.069791,27.7472774 125.03046,29.6032252 123.723854,31.2958749 C122.417247,32.9885247 120.932489,34.5475208 119.269534,35.97291 C117.60658,37.3982993 115.884261,38.7345816 114.102524,39.9817972 C112.320788,41.2290128 110.539078,42.4168194 108.757341,43.5452525 C106.975605,44.6736857 105.327523,45.8021019 103.813047,46.9305351 C102.298571,48.0589682 100.977136,49.2319272 99.8487031,50.4494472 C98.7202699,51.6669672 97.9481956,52.9587068 97.5324571,54.3247048 L127.910914,54.3247048 L127.910914,63.4115159 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/tag-button": {
            "title": "$:/core/images/tag-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-tag-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M18.1643182,47.6600756 L18.1677196,51.7651887 C18.1708869,55.5878829 20.3581578,60.8623899 23.0531352,63.5573673 L84.9021823,125.406414 C87.5996731,128.103905 91.971139,128.096834 94.6717387,125.396234 L125.766905,94.3010679 C128.473612,91.5943612 128.472063,87.2264889 125.777085,84.5315115 L63.9280381,22.6824644 C61.2305472,19.9849735 55.9517395,17.801995 52.1318769,17.8010313 L25.0560441,17.7942007 C21.2311475,17.7932358 18.1421354,20.8872832 18.1452985,24.7049463 L18.1535504,34.6641936 C18.2481119,34.6754562 18.3439134,34.6864294 18.4409623,34.6971263 C22.1702157,35.1081705 26.9295004,34.6530132 31.806204,33.5444844 C32.1342781,33.0700515 32.5094815,32.6184036 32.9318197,32.1960654 C35.6385117,29.4893734 39.5490441,28.718649 42.94592,29.8824694 C43.0432142,29.8394357 43.1402334,29.7961748 43.2369683,29.7526887 L43.3646982,30.0368244 C44.566601,30.5115916 45.6933052,31.2351533 46.6655958,32.2074439 C50.4612154,36.0030635 50.4663097,42.1518845 46.6769742,45.94122 C43.0594074,49.5587868 37.2914155,49.7181264 33.4734256,46.422636 C28.1082519,47.5454734 22.7987486,48.0186448 18.1643182,47.6600756 Z\"></path>\n        <path d=\"M47.6333528,39.5324628 L47.6562932,39.5834939 C37.9670934,43.9391617 26.0718874,46.3819521 17.260095,45.4107025 C5.27267473,44.0894301 -1.02778744,36.4307276 2.44271359,24.0779512 C5.56175386,12.9761516 14.3014034,4.36129832 24.0466405,1.54817001 C34.7269254,-1.53487574 43.7955833,3.51606438 43.7955834,14.7730751 L35.1728168,14.7730752 C35.1728167,9.91428944 32.0946059,8.19982862 26.4381034,9.83267419 C19.5270911,11.8276553 13.046247,18.2159574 10.7440788,26.4102121 C8.82861123,33.2280582 11.161186,36.0634845 18.2047888,36.8398415 C25.3302805,37.6252244 35.7353482,35.4884477 44.1208333,31.7188498 L44.1475077,31.7781871 C44.159701,31.7725635 44.1718402,31.7671479 44.1839238,31.7619434 C45.9448098,31.0035157 50.4503245,38.3109156 47.7081571,39.5012767 C47.6834429,39.512005 47.6585061,39.5223987 47.6333528,39.5324628 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/theme-button": {
            "title": "$:/core/images/theme-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-theme-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M55.854113,66.9453198 C54.3299482,65.1432292 53.0133883,63.518995 51.9542746,62.1263761 C40.8899947,47.578055 35.3091807,55.2383404 28.9941893,62.1263758 C22.6791979,69.0144112 30.6577916,74.5954741 24.6646171,79.4611023 C18.6714426,84.3267304 19.0414417,86.0133155 8.92654943,77.1119468 C-1.18834284,68.2105781 -1.88793412,65.7597832 2.7553553,60.6807286 C7.39864472,55.601674 11.2794845,63.5989423 20.7646627,54.5728325 C30.2498409,45.5467226 22.2819131,37.5470737 22.2819131,37.5470737 C22.2819131,37.5470737 42.0310399,-2.82433362 68.4206088,0.157393922 C94.8101776,3.13912147 58.4373806,-3.70356506 49.3898693,27.958066 C45.5161782,41.5139906 50.1107906,38.3197672 57.4560458,44.0453955 C59.1625767,45.3756367 63.8839488,48.777453 70.127165,53.3625321 C63.9980513,59.2416709 58.9704753,64.0315459 55.854113,66.9453198 Z M67.4952439,79.8919946 C83.5082212,96.9282402 105.237121,117.617674 112.611591,120.312493 C123.044132,124.12481 128.000001,117.170903 128,105.522947 C127.999999,98.3705516 104.170675,78.980486 84.0760493,63.7529565 C76.6683337,70.9090328 70.7000957,76.7055226 67.4952439,79.8919946 Z\"></path>\n        <path d=\"M58.2852966,138.232794 L58.2852966,88.3943645 C56.318874,88.3923153 54.7254089,86.7952906 54.7254089,84.8344788 C54.7254089,82.8684071 56.3175932,81.2745911 58.2890859,81.2745911 L79.6408336,81.2745911 C81.608998,81.2745911 83.2045105,82.8724076 83.2045105,84.8344788 C83.2045105,86.7992907 81.614366,88.3923238 79.6446228,88.3943645 L79.6446228,88.3943646 L79.6446228,138.232794 C79.6446228,144.131009 74.8631748,148.912457 68.9649597,148.912457 C63.0667446,148.912457 58.2852966,144.131009 58.2852966,138.232794 Z M65.405072,-14.8423767 L72.5248474,-14.8423767 L76.0847351,-0.690681892 L72.5248474,6.51694947 L72.5248474,81.2745911 L65.405072,81.2745911 L65.405072,6.51694947 L61.8451843,-0.690681892 L65.405072,-14.8423767 Z\" transform=\"translate(68.964960, 67.035040) rotate(45.000000) translate(-68.964960, -67.035040) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/timestamp-off": {
            "title": "$:/core/images/timestamp-off",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-timestamp-off tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10c-2.762 0-5-2.24-5-5-.004-2.756 2.238-5 5-5H66.69c2.762 0 5.002 2.24 5 5 .006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M58.25 35.88c-18.777 0-33.998 15.224-33.998 33.998 0 18.773 15.22 34.002 33.998 34.002 18.784 0 34.002-15.23 34.002-34.002 0-18.774-15.218-33.998-34.002-33.998zm-3.03 50.123H44.196v-34H55.22v34zm16.976 0H61.17v-34h11.025v34z\"/>\n    </g>\n</svg>\n"
        },
        "$:/core/images/timestamp-on": {
            "title": "$:/core/images/timestamp-on",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-timestamp-on tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10c-2.762 0-5-2.24-5-5-.004-2.756 2.238-5 5-5H66.69c2.762 0 5.002 2.24 5 5 .006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M13.41 27.178c-2.116 1.775-5.27 1.498-7.045-.613-1.772-2.11-1.498-5.27.616-7.047l9.95-8.348c2.115-1.774 5.27-1.5 7.045.618 1.775 2.108 1.498 5.27-.616 7.043l-9.95 8.348zM102.983 27.178c2.116 1.775 5.27 1.498 7.045-.613 1.772-2.11 1.498-5.27-.616-7.047l-9.95-8.348c-2.114-1.774-5.27-1.5-7.044.618-1.775 2.108-1.498 5.27.616 7.043l9.95 8.348zM65.097 71.072c0 3.826-3.09 6.928-6.897 6.928-3.804.006-6.9-3.102-6.903-6.928 0 0 4.76-39.072 6.903-39.072s6.897 39.072 6.897 39.072z\"/>\n    </g>\n</svg>\n"
        },
        "$:/core/images/tip": {
            "title": "$:/core/images/tip",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-tip tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M64,128.241818 C99.346224,128.241818 128,99.5880417 128,64.2418177 C128,28.8955937 99.346224,0.241817675 64,0.241817675 C28.653776,0.241817675 0,28.8955937 0,64.2418177 C0,99.5880417 28.653776,128.241818 64,128.241818 Z M75.9358659,91.4531941 C75.3115438,95.581915 70.2059206,98.8016748 64,98.8016748 C57.7940794,98.8016748 52.6884562,95.581915 52.0641341,91.4531941 C54.3299053,94.0502127 58.8248941,95.8192805 64,95.8192805 C69.1751059,95.8192805 73.6700947,94.0502127 75.9358659,91.4531941 L75.9358659,91.4531941 Z M75.9358659,95.9453413 C75.3115438,100.074062 70.2059206,103.293822 64,103.293822 C57.7940794,103.293822 52.6884562,100.074062 52.0641341,95.9453413 C54.3299053,98.5423599 58.8248941,100.311428 64,100.311428 C69.1751059,100.311428 73.6700947,98.5423599 75.9358659,95.9453413 L75.9358659,95.9453413 Z M75.9358659,100.40119 C75.3115438,104.529911 70.2059206,107.74967 64,107.74967 C57.7940794,107.74967 52.6884562,104.529911 52.0641341,100.40119 C54.3299053,102.998208 58.8248941,104.767276 64,104.767276 C69.1751059,104.767276 73.6700947,102.998208 75.9358659,100.40119 L75.9358659,100.40119 Z M75.9358659,104.893337 C75.3115438,109.022058 70.2059206,112.241818 64,112.241818 C57.7940794,112.241818 52.6884562,109.022058 52.0641341,104.893337 C54.3299053,107.490356 58.8248941,109.259423 64,109.259423 C69.1751059,109.259423 73.6700947,107.490356 75.9358659,104.893337 L75.9358659,104.893337 Z M64.3010456,24.2418177 C75.9193117,24.2418188 88.0000013,32.0619847 88,48.4419659 C87.9999987,64.8219472 75.9193018,71.7540963 75.9193021,83.5755932 C75.9193022,89.4486648 70.0521957,92.8368862 63.9999994,92.8368862 C57.947803,92.8368862 51.9731007,89.8295115 51.9731007,83.5755932 C51.9731007,71.1469799 39.9999998,65.4700602 40,48.4419647 C40.0000002,31.4138691 52.6827796,24.2418166 64.3010456,24.2418177 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/twitter": {
            "title": "$:/core/images/twitter",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-twitter tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M41.6263422,115.803477 C27.0279663,115.803477 13.4398394,111.540813 1.99987456,104.234833 C4.02221627,104.472643 6.08004574,104.594302 8.16644978,104.594302 C20.277456,104.594302 31.4238403,100.47763 40.270894,93.5715185 C28.9590538,93.3635501 19.4123842,85.9189246 16.1230832,75.6885328 C17.7011365,75.9892376 19.320669,76.1503787 20.9862896,76.1503787 C23.344152,76.1503787 25.6278127,75.8359011 27.7971751,75.247346 C15.9709927,72.8821073 7.06079851,62.4745062 7.06079851,49.9982394 C7.06079851,49.8898938 7.06079851,49.7820074 7.06264203,49.67458 C10.5482779,51.6032228 14.5339687,52.7615103 18.7717609,52.8951059 C11.8355159,48.277565 7.2714207,40.3958845 7.2714207,31.4624258 C7.2714207,26.7434257 8.54621495,22.3200804 10.7713439,18.5169676 C23.5211299,34.0957738 42.568842,44.3472839 64.0532269,45.4210985 C63.6126256,43.5365285 63.3835682,41.5711584 63.3835682,39.5529928 C63.3835682,25.3326379 74.95811,13.8034766 89.2347917,13.8034766 C96.6697089,13.8034766 103.387958,16.930807 108.103682,21.9353619 C113.991886,20.780288 119.52429,18.6372496 124.518847,15.6866694 C122.588682,21.6993889 118.490075,26.7457211 113.152623,29.9327334 C118.381769,29.3102055 123.363882,27.926045 127.999875,25.8780385 C124.534056,31.0418981 120.151087,35.5772616 115.100763,39.2077561 C115.150538,40.3118708 115.175426,41.4224128 115.175426,42.538923 C115.175426,76.5663154 89.1744164,115.803477 41.6263422,115.803477\"></path>\n    </g>\n</svg>\n"
        },
        "$:/core/images/underline": {
            "title": "$:/core/images/underline",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-underline tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M7,117.421488 L121.247934,117.421488 L121.247934,128 L7,128 L7,117.421488 Z M104.871212,98.8958333 L104.871212,0 L88.6117424,0 L88.6117424,55.8560606 C88.6117424,60.3194668 88.0060035,64.432115 86.7945076,68.1941288 C85.5830116,71.9561425 83.7657949,75.239885 81.342803,78.0454545 C78.9198111,80.8510241 75.8911167,83.0189317 72.2566288,84.5492424 C68.6221409,86.0795531 64.3182067,86.844697 59.344697,86.844697 C53.0959284,86.844697 48.1862552,85.0593613 44.6155303,81.4886364 C41.0448054,77.9179114 39.2594697,73.0720003 39.2594697,66.9507576 L39.2594697,0 L23,0 L23,65.0378788 C23,70.3939662 23.5419769,75.2717583 24.625947,79.6714015 C25.709917,84.0710447 27.5908957,87.864883 30.2689394,91.0530303 C32.9469831,94.2411776 36.4538925,96.6960141 40.7897727,98.4176136 C45.125653,100.139213 50.545422,101 57.0492424,101 C64.3182182,101 70.630655,99.5653553 75.9867424,96.6960227 C81.3428298,93.8266902 85.742407,89.33147 89.1856061,83.2102273 L89.5681818,83.2102273 L89.5681818,98.8958333 L104.871212,98.8958333 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/unfold-all-button": {
            "title": "$:/core/images/unfold-all-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-unfold-all tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <rect x=\"0\" y=\"64\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <path d=\"M85.598226,8.34884273 C84.1490432,6.89863875 82.1463102,6 79.9340286,6 L47.9482224,6 C43.5292967,6 39.9411255,9.581722 39.9411255,14 C39.9411255,18.4092877 43.5260249,22 47.9482224,22 L71.9411255,22 L71.9411255,45.9929031 C71.9411255,50.4118288 75.5228475,54 79.9411255,54 C84.3504132,54 87.9411255,50.4151006 87.9411255,45.9929031 L87.9411255,14.0070969 C87.9411255,11.7964515 87.0447363,9.79371715 85.5956548,8.34412458 Z\" transform=\"translate(63.941125, 30.000000) scale(1, -1) rotate(-45.000000) translate(-63.941125, -30.000000) \"></path>\n        <path d=\"M85.6571005,72.2899682 C84.2079177,70.8397642 82.2051847,69.9411255 79.9929031,69.9411255 L48.0070969,69.9411255 C43.5881712,69.9411255 40,73.5228475 40,77.9411255 C40,82.3504132 43.5848994,85.9411255 48.0070969,85.9411255 L72,85.9411255 L72,109.934029 C72,114.352954 75.581722,117.941125 80,117.941125 C84.4092877,117.941125 88,114.356226 88,109.934029 L88,77.9482224 C88,75.737577 87.1036108,73.7348426 85.6545293,72.2852501 Z\" transform=\"translate(64.000000, 93.941125) scale(1, -1) rotate(-45.000000) translate(-64.000000, -93.941125) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/unfold-button": {
            "title": "$:/core/images/unfold-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-unfold tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <path d=\"M85.598226,11.3488427 C84.1490432,9.89863875 82.1463102,9 79.9340286,9 L47.9482224,9 C43.5292967,9 39.9411255,12.581722 39.9411255,17 C39.9411255,21.4092877 43.5260249,25 47.9482224,25 L71.9411255,25 L71.9411255,48.9929031 C71.9411255,53.4118288 75.5228475,57 79.9411255,57 C84.3504132,57 87.9411255,53.4151006 87.9411255,48.9929031 L87.9411255,17.0070969 C87.9411255,14.7964515 87.0447363,12.7937171 85.5956548,11.3441246 Z\" transform=\"translate(63.941125, 33.000000) scale(1, -1) rotate(-45.000000) translate(-63.941125, -33.000000) \"></path>\n        <path d=\"M85.6571005,53.4077172 C84.2079177,51.9575133 82.2051847,51.0588745 79.9929031,51.0588745 L48.0070969,51.0588745 C43.5881712,51.0588745 40,54.6405965 40,59.0588745 C40,63.4681622 43.5848994,67.0588745 48.0070969,67.0588745 L72,67.0588745 L72,91.0517776 C72,95.4707033 75.581722,99.0588745 80,99.0588745 C84.4092877,99.0588745 88,95.4739751 88,91.0517776 L88,59.0659714 C88,56.855326 87.1036108,54.8525917 85.6545293,53.4029991 Z\" transform=\"translate(64.000000, 75.058875) scale(1, -1) rotate(-45.000000) translate(-64.000000, -75.058875) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/unlocked-padlock": {
            "title": "$:/core/images/unlocked-padlock",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-unlocked-padlock tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M48.6266053,64 L105,64 L105,96.0097716 C105,113.673909 90.6736461,128 73.001193,128 L55.998807,128 C38.3179793,128 24,113.677487 24,96.0097716 L24,64 L30.136303,64 C19.6806213,51.3490406 2.77158986,28.2115132 25.8366966,8.85759246 C50.4723026,-11.8141335 71.6711028,13.2108337 81.613302,25.0594855 C91.5555012,36.9081373 78.9368488,47.4964439 69.1559674,34.9513593 C59.375086,22.4062748 47.9893192,10.8049522 35.9485154,20.9083862 C23.9077117,31.0118202 34.192312,43.2685325 44.7624679,55.8655518 C47.229397,58.805523 48.403443,61.5979188 48.6266053,64 Z M67.7315279,92.3641717 C70.8232551,91.0923621 73,88.0503841 73,84.5 C73,79.8055796 69.1944204,76 64.5,76 C59.8055796,76 56,79.8055796 56,84.5 C56,87.947435 58.0523387,90.9155206 61.0018621,92.2491029 L55.9067479,115.020857 L72.8008958,115.020857 L67.7315279,92.3641717 L67.7315279,92.3641717 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/up-arrow": {
            "created": "20150316000544368",
            "modified": "20150316000831867",
            "tags": "$:/tags/Image",
            "title": "$:/core/images/up-arrow",
            "text": "<svg class=\"tc-image-up-arrow tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n<path transform=\"rotate(-135, 63.8945, 64.1752)\" d=\"m109.07576,109.35336c-1.43248,1.43361 -3.41136,2.32182 -5.59717,2.32182l-79.16816,0c-4.36519,0 -7.91592,-3.5444 -7.91592,-7.91666c0,-4.36337 3.54408,-7.91667 7.91592,-7.91667l71.25075,0l0,-71.25074c0,-4.3652 3.54442,-7.91592 7.91667,-7.91592c4.36336,0 7.91667,3.54408 7.91667,7.91592l0,79.16815c0,2.1825 -0.88602,4.16136 -2.3185,5.59467l-0.00027,-0.00056l0.00001,-0.00001z\" />\n</svg>\n \n"
        },
        "$:/core/images/video": {
            "title": "$:/core/images/video",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-video tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M64,12 C29.0909091,12 8.72727273,14.9166667 5.81818182,17.8333333 C2.90909091,20.75 1.93784382e-15,41.1666667 0,64.5 C1.93784382e-15,87.8333333 2.90909091,108.25 5.81818182,111.166667 C8.72727273,114.083333 29.0909091,117 64,117 C98.9090909,117 119.272727,114.083333 122.181818,111.166667 C125.090909,108.25 128,87.8333333 128,64.5 C128,41.1666667 125.090909,20.75 122.181818,17.8333333 C119.272727,14.9166667 98.9090909,12 64,12 Z M54.9161194,44.6182253 C51.102648,42.0759111 48.0112186,43.7391738 48.0112186,48.3159447 L48.0112186,79.6840553 C48.0112186,84.2685636 51.109784,85.9193316 54.9161194,83.3817747 L77.0838806,68.6032672 C80.897352,66.0609529 80.890216,61.9342897 77.0838806,59.3967328 L54.9161194,44.6182253 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/warning": {
            "title": "$:/core/images/warning",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-warning tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M57.0717968,11 C60.1509982,5.66666667 67.8490018,5.66666667 70.9282032,11 L126.353829,107 C129.433031,112.333333 125.584029,119 119.425626,119 L8.57437416,119 C2.41597129,119 -1.43303051,112.333333 1.64617093,107 L57.0717968,11 Z M64,37 C59.581722,37 56,40.5820489 56,44.9935776 L56,73.0064224 C56,77.4211534 59.5907123,81 64,81 C68.418278,81 72,77.4179511 72,73.0064224 L72,44.9935776 C72,40.5788466 68.4092877,37 64,37 Z M64,104 C68.418278,104 72,100.418278 72,96 C72,91.581722 68.418278,88 64,88 C59.581722,88 56,91.581722 56,96 C56,100.418278 59.581722,104 64,104 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/language/Buttons/AdvancedSearch/Caption": {
            "title": "$:/language/Buttons/AdvancedSearch/Caption",
            "text": "advanced search"
        },
        "$:/language/Buttons/AdvancedSearch/Hint": {
            "title": "$:/language/Buttons/AdvancedSearch/Hint",
            "text": "Advanced search"
        },
        "$:/language/Buttons/Cancel/Caption": {
            "title": "$:/language/Buttons/Cancel/Caption",
            "text": "cancel"
        },
        "$:/language/Buttons/Cancel/Hint": {
            "title": "$:/language/Buttons/Cancel/Hint",
            "text": "Discard changes to this tiddler"
        },
        "$:/language/Buttons/Clone/Caption": {
            "title": "$:/language/Buttons/Clone/Caption",
            "text": "clone"
        },
        "$:/language/Buttons/Clone/Hint": {
            "title": "$:/language/Buttons/Clone/Hint",
            "text": "Clone this tiddler"
        },
        "$:/language/Buttons/Close/Caption": {
            "title": "$:/language/Buttons/Close/Caption",
            "text": "close"
        },
        "$:/language/Buttons/Close/Hint": {
            "title": "$:/language/Buttons/Close/Hint",
            "text": "Close this tiddler"
        },
        "$:/language/Buttons/CloseAll/Caption": {
            "title": "$:/language/Buttons/CloseAll/Caption",
            "text": "close all"
        },
        "$:/language/Buttons/CloseAll/Hint": {
            "title": "$:/language/Buttons/CloseAll/Hint",
            "text": "Close all tiddlers"
        },
        "$:/language/Buttons/CloseOthers/Caption": {
            "title": "$:/language/Buttons/CloseOthers/Caption",
            "text": "close others"
        },
        "$:/language/Buttons/CloseOthers/Hint": {
            "title": "$:/language/Buttons/CloseOthers/Hint",
            "text": "Close other tiddlers"
        },
        "$:/language/Buttons/ControlPanel/Caption": {
            "title": "$:/language/Buttons/ControlPanel/Caption",
            "text": "control panel"
        },
        "$:/language/Buttons/ControlPanel/Hint": {
            "title": "$:/language/Buttons/ControlPanel/Hint",
            "text": "Open control panel"
        },
        "$:/language/Buttons/Delete/Caption": {
            "title": "$:/language/Buttons/Delete/Caption",
            "text": "delete"
        },
        "$:/language/Buttons/Delete/Hint": {
            "title": "$:/language/Buttons/Delete/Hint",
            "text": "Delete this tiddler"
        },
        "$:/language/Buttons/Edit/Caption": {
            "title": "$:/language/Buttons/Edit/Caption",
            "text": "edit"
        },
        "$:/language/Buttons/Edit/Hint": {
            "title": "$:/language/Buttons/Edit/Hint",
            "text": "Edit this tiddler"
        },
        "$:/language/Buttons/Encryption/Caption": {
            "title": "$:/language/Buttons/Encryption/Caption",
            "text": "encryption"
        },
        "$:/language/Buttons/Encryption/Hint": {
            "title": "$:/language/Buttons/Encryption/Hint",
            "text": "Set or clear a password for saving this wiki"
        },
        "$:/language/Buttons/Encryption/ClearPassword/Caption": {
            "title": "$:/language/Buttons/Encryption/ClearPassword/Caption",
            "text": "clear password"
        },
        "$:/language/Buttons/Encryption/ClearPassword/Hint": {
            "title": "$:/language/Buttons/Encryption/ClearPassword/Hint",
            "text": "Clear the password and save this wiki without encryption"
        },
        "$:/language/Buttons/Encryption/SetPassword/Caption": {
            "title": "$:/language/Buttons/Encryption/SetPassword/Caption",
            "text": "set password"
        },
        "$:/language/Buttons/Encryption/SetPassword/Hint": {
            "title": "$:/language/Buttons/Encryption/SetPassword/Hint",
            "text": "Set a password for saving this wiki with encryption"
        },
        "$:/language/Buttons/ExportPage/Caption": {
            "title": "$:/language/Buttons/ExportPage/Caption",
            "text": "export all"
        },
        "$:/language/Buttons/ExportPage/Hint": {
            "title": "$:/language/Buttons/ExportPage/Hint",
            "text": "Export all tiddlers"
        },
        "$:/language/Buttons/ExportTiddler/Caption": {
            "title": "$:/language/Buttons/ExportTiddler/Caption",
            "text": "export tiddler"
        },
        "$:/language/Buttons/ExportTiddler/Hint": {
            "title": "$:/language/Buttons/ExportTiddler/Hint",
            "text": "Export tiddler"
        },
        "$:/language/Buttons/ExportTiddlers/Caption": {
            "title": "$:/language/Buttons/ExportTiddlers/Caption",
            "text": "export tiddlers"
        },
        "$:/language/Buttons/ExportTiddlers/Hint": {
            "title": "$:/language/Buttons/ExportTiddlers/Hint",
            "text": "Export tiddlers"
        },
        "$:/language/Buttons/Fold/Caption": {
            "title": "$:/language/Buttons/Fold/Caption",
            "text": "fold tiddler"
        },
        "$:/language/Buttons/Fold/Hint": {
            "title": "$:/language/Buttons/Fold/Hint",
            "text": "Fold the body of this tiddler"
        },
        "$:/language/Buttons/Fold/FoldBar/Caption": {
            "title": "$:/language/Buttons/Fold/FoldBar/Caption",
            "text": "fold-bar"
        },
        "$:/language/Buttons/Fold/FoldBar/Hint": {
            "title": "$:/language/Buttons/Fold/FoldBar/Hint",
            "text": "Optional bars to fold and unfold tiddlers"
        },
        "$:/language/Buttons/Unfold/Caption": {
            "title": "$:/language/Buttons/Unfold/Caption",
            "text": "unfold tiddler"
        },
        "$:/language/Buttons/Unfold/Hint": {
            "title": "$:/language/Buttons/Unfold/Hint",
            "text": "Unfold the body of this tiddler"
        },
        "$:/language/Buttons/FoldOthers/Caption": {
            "title": "$:/language/Buttons/FoldOthers/Caption",
            "text": "fold other tiddlers"
        },
        "$:/language/Buttons/FoldOthers/Hint": {
            "title": "$:/language/Buttons/FoldOthers/Hint",
            "text": "Fold the bodies of other opened tiddlers"
        },
        "$:/language/Buttons/FoldAll/Caption": {
            "title": "$:/language/Buttons/FoldAll/Caption",
            "text": "fold all tiddlers"
        },
        "$:/language/Buttons/FoldAll/Hint": {
            "title": "$:/language/Buttons/FoldAll/Hint",
            "text": "Fold the bodies of all opened tiddlers"
        },
        "$:/language/Buttons/UnfoldAll/Caption": {
            "title": "$:/language/Buttons/UnfoldAll/Caption",
            "text": "unfold all tiddlers"
        },
        "$:/language/Buttons/UnfoldAll/Hint": {
            "title": "$:/language/Buttons/UnfoldAll/Hint",
            "text": "Unfold the bodies of all opened tiddlers"
        },
        "$:/language/Buttons/FullScreen/Caption": {
            "title": "$:/language/Buttons/FullScreen/Caption",
            "text": "full-screen"
        },
        "$:/language/Buttons/FullScreen/Hint": {
            "title": "$:/language/Buttons/FullScreen/Hint",
            "text": "Enter or leave full-screen mode"
        },
        "$:/language/Buttons/Help/Caption": {
            "title": "$:/language/Buttons/Help/Caption",
            "text": "help"
        },
        "$:/language/Buttons/Help/Hint": {
            "title": "$:/language/Buttons/Help/Hint",
            "text": "Show help panel"
        },
        "$:/language/Buttons/Import/Caption": {
            "title": "$:/language/Buttons/Import/Caption",
            "text": "import"
        },
        "$:/language/Buttons/Import/Hint": {
            "title": "$:/language/Buttons/Import/Hint",
            "text": "Import many types of file including text, image, TiddlyWiki or JSON"
        },
        "$:/language/Buttons/Info/Caption": {
            "title": "$:/language/Buttons/Info/Caption",
            "text": "info"
        },
        "$:/language/Buttons/Info/Hint": {
            "title": "$:/language/Buttons/Info/Hint",
            "text": "Show information for this tiddler"
        },
        "$:/language/Buttons/Home/Caption": {
            "title": "$:/language/Buttons/Home/Caption",
            "text": "home"
        },
        "$:/language/Buttons/Home/Hint": {
            "title": "$:/language/Buttons/Home/Hint",
            "text": "Open the default tiddlers"
        },
        "$:/language/Buttons/Language/Caption": {
            "title": "$:/language/Buttons/Language/Caption",
            "text": "language"
        },
        "$:/language/Buttons/Language/Hint": {
            "title": "$:/language/Buttons/Language/Hint",
            "text": "Choose the user interface language"
        },
        "$:/language/Buttons/Manager/Caption": {
            "title": "$:/language/Buttons/Manager/Caption",
            "text": "tiddler manager"
        },
        "$:/language/Buttons/Manager/Hint": {
            "title": "$:/language/Buttons/Manager/Hint",
            "text": "Open tiddler manager"
        },
        "$:/language/Buttons/More/Caption": {
            "title": "$:/language/Buttons/More/Caption",
            "text": "more"
        },
        "$:/language/Buttons/More/Hint": {
            "title": "$:/language/Buttons/More/Hint",
            "text": "More actions"
        },
        "$:/language/Buttons/NewHere/Caption": {
            "title": "$:/language/Buttons/NewHere/Caption",
            "text": "new here"
        },
        "$:/language/Buttons/NewHere/Hint": {
            "title": "$:/language/Buttons/NewHere/Hint",
            "text": "Create a new tiddler tagged with this one"
        },
        "$:/language/Buttons/NewJournal/Caption": {
            "title": "$:/language/Buttons/NewJournal/Caption",
            "text": "new journal"
        },
        "$:/language/Buttons/NewJournal/Hint": {
            "title": "$:/language/Buttons/NewJournal/Hint",
            "text": "Create a new journal tiddler"
        },
        "$:/language/Buttons/NewJournalHere/Caption": {
            "title": "$:/language/Buttons/NewJournalHere/Caption",
            "text": "new journal here"
        },
        "$:/language/Buttons/NewJournalHere/Hint": {
            "title": "$:/language/Buttons/NewJournalHere/Hint",
            "text": "Create a new journal tiddler tagged with this one"
        },
        "$:/language/Buttons/NewImage/Caption": {
            "title": "$:/language/Buttons/NewImage/Caption",
            "text": "new image"
        },
        "$:/language/Buttons/NewImage/Hint": {
            "title": "$:/language/Buttons/NewImage/Hint",
            "text": "Create a new image tiddler"
        },
        "$:/language/Buttons/NewMarkdown/Caption": {
            "title": "$:/language/Buttons/NewMarkdown/Caption",
            "text": "new Markdown tiddler"
        },
        "$:/language/Buttons/NewMarkdown/Hint": {
            "title": "$:/language/Buttons/NewMarkdown/Hint",
            "text": "Create a new Markdown tiddler"
        },
        "$:/language/Buttons/NewTiddler/Caption": {
            "title": "$:/language/Buttons/NewTiddler/Caption",
            "text": "new tiddler"
        },
        "$:/language/Buttons/NewTiddler/Hint": {
            "title": "$:/language/Buttons/NewTiddler/Hint",
            "text": "Create a new tiddler"
        },
        "$:/language/Buttons/OpenWindow/Caption": {
            "title": "$:/language/Buttons/OpenWindow/Caption",
            "text": "open in new window"
        },
        "$:/language/Buttons/OpenWindow/Hint": {
            "title": "$:/language/Buttons/OpenWindow/Hint",
            "text": "Open tiddler in new window"
        },
        "$:/language/Buttons/Palette/Caption": {
            "title": "$:/language/Buttons/Palette/Caption",
            "text": "palette"
        },
        "$:/language/Buttons/Palette/Hint": {
            "title": "$:/language/Buttons/Palette/Hint",
            "text": "Choose the colour palette"
        },
        "$:/language/Buttons/Permalink/Caption": {
            "title": "$:/language/Buttons/Permalink/Caption",
            "text": "permalink"
        },
        "$:/language/Buttons/Permalink/Hint": {
            "title": "$:/language/Buttons/Permalink/Hint",
            "text": "Set browser address bar to a direct link to this tiddler"
        },
        "$:/language/Buttons/Permaview/Caption": {
            "title": "$:/language/Buttons/Permaview/Caption",
            "text": "permaview"
        },
        "$:/language/Buttons/Permaview/Hint": {
            "title": "$:/language/Buttons/Permaview/Hint",
            "text": "Set browser address bar to a direct link to all the tiddlers in this story"
        },
        "$:/language/Buttons/Print/Caption": {
            "title": "$:/language/Buttons/Print/Caption",
            "text": "print page"
        },
        "$:/language/Buttons/Print/Hint": {
            "title": "$:/language/Buttons/Print/Hint",
            "text": "Print the current page"
        },
        "$:/language/Buttons/Refresh/Caption": {
            "title": "$:/language/Buttons/Refresh/Caption",
            "text": "refresh"
        },
        "$:/language/Buttons/Refresh/Hint": {
            "title": "$:/language/Buttons/Refresh/Hint",
            "text": "Perform a full refresh of the wiki"
        },
        "$:/language/Buttons/Save/Caption": {
            "title": "$:/language/Buttons/Save/Caption",
            "text": "ok"
        },
        "$:/language/Buttons/Save/Hint": {
            "title": "$:/language/Buttons/Save/Hint",
            "text": "Confirm changes to this tiddler"
        },
        "$:/language/Buttons/SaveWiki/Caption": {
            "title": "$:/language/Buttons/SaveWiki/Caption",
            "text": "save changes"
        },
        "$:/language/Buttons/SaveWiki/Hint": {
            "title": "$:/language/Buttons/SaveWiki/Hint",
            "text": "Save changes"
        },
        "$:/language/Buttons/StoryView/Caption": {
            "title": "$:/language/Buttons/StoryView/Caption",
            "text": "storyview"
        },
        "$:/language/Buttons/StoryView/Hint": {
            "title": "$:/language/Buttons/StoryView/Hint",
            "text": "Choose the story visualisation"
        },
        "$:/language/Buttons/HideSideBar/Caption": {
            "title": "$:/language/Buttons/HideSideBar/Caption",
            "text": "hide sidebar"
        },
        "$:/language/Buttons/HideSideBar/Hint": {
            "title": "$:/language/Buttons/HideSideBar/Hint",
            "text": "Hide sidebar"
        },
        "$:/language/Buttons/ShowSideBar/Caption": {
            "title": "$:/language/Buttons/ShowSideBar/Caption",
            "text": "show sidebar"
        },
        "$:/language/Buttons/ShowSideBar/Hint": {
            "title": "$:/language/Buttons/ShowSideBar/Hint",
            "text": "Show sidebar"
        },
        "$:/language/Buttons/TagManager/Caption": {
            "title": "$:/language/Buttons/TagManager/Caption",
            "text": "tag manager"
        },
        "$:/language/Buttons/TagManager/Hint": {
            "title": "$:/language/Buttons/TagManager/Hint",
            "text": "Open tag manager"
        },
        "$:/language/Buttons/Timestamp/Caption": {
            "title": "$:/language/Buttons/Timestamp/Caption",
            "text": "timestamps"
        },
        "$:/language/Buttons/Timestamp/Hint": {
            "title": "$:/language/Buttons/Timestamp/Hint",
            "text": "Choose whether modifications update timestamps"
        },
        "$:/language/Buttons/Timestamp/On/Caption": {
            "title": "$:/language/Buttons/Timestamp/On/Caption",
            "text": "timestamps are on"
        },
        "$:/language/Buttons/Timestamp/On/Hint": {
            "title": "$:/language/Buttons/Timestamp/On/Hint",
            "text": "Update timestamps when tiddlers are modified"
        },
        "$:/language/Buttons/Timestamp/Off/Caption": {
            "title": "$:/language/Buttons/Timestamp/Off/Caption",
            "text": "timestamps are off"
        },
        "$:/language/Buttons/Timestamp/Off/Hint": {
            "title": "$:/language/Buttons/Timestamp/Off/Hint",
            "text": "Don't update timestamps when tiddlers are modified"
        },
        "$:/language/Buttons/Theme/Caption": {
            "title": "$:/language/Buttons/Theme/Caption",
            "text": "theme"
        },
        "$:/language/Buttons/Theme/Hint": {
            "title": "$:/language/Buttons/Theme/Hint",
            "text": "Choose the display theme"
        },
        "$:/language/Buttons/Bold/Caption": {
            "title": "$:/language/Buttons/Bold/Caption",
            "text": "bold"
        },
        "$:/language/Buttons/Bold/Hint": {
            "title": "$:/language/Buttons/Bold/Hint",
            "text": "Apply bold formatting to selection"
        },
        "$:/language/Buttons/Clear/Caption": {
            "title": "$:/language/Buttons/Clear/Caption",
            "text": "clear"
        },
        "$:/language/Buttons/Clear/Hint": {
            "title": "$:/language/Buttons/Clear/Hint",
            "text": "Clear image to solid colour"
        },
        "$:/language/Buttons/EditorHeight/Caption": {
            "title": "$:/language/Buttons/EditorHeight/Caption",
            "text": "editor height"
        },
        "$:/language/Buttons/EditorHeight/Caption/Auto": {
            "title": "$:/language/Buttons/EditorHeight/Caption/Auto",
            "text": "Automatically adjust height to fit content"
        },
        "$:/language/Buttons/EditorHeight/Caption/Fixed": {
            "title": "$:/language/Buttons/EditorHeight/Caption/Fixed",
            "text": "Fixed height:"
        },
        "$:/language/Buttons/EditorHeight/Hint": {
            "title": "$:/language/Buttons/EditorHeight/Hint",
            "text": "Choose the height of the text editor"
        },
        "$:/language/Buttons/Excise/Caption": {
            "title": "$:/language/Buttons/Excise/Caption",
            "text": "excise"
        },
        "$:/language/Buttons/Excise/Caption/Excise": {
            "title": "$:/language/Buttons/Excise/Caption/Excise",
            "text": "Perform excision"
        },
        "$:/language/Buttons/Excise/Caption/MacroName": {
            "title": "$:/language/Buttons/Excise/Caption/MacroName",
            "text": "Macro name:"
        },
        "$:/language/Buttons/Excise/Caption/NewTitle": {
            "title": "$:/language/Buttons/Excise/Caption/NewTitle",
            "text": "Title of new tiddler:"
        },
        "$:/language/Buttons/Excise/Caption/Replace": {
            "title": "$:/language/Buttons/Excise/Caption/Replace",
            "text": "Replace excised text with:"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Macro": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Macro",
            "text": "macro"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Link": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Link",
            "text": "link"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Transclusion": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Transclusion",
            "text": "transclusion"
        },
        "$:/language/Buttons/Excise/Caption/Tag": {
            "title": "$:/language/Buttons/Excise/Caption/Tag",
            "text": "Tag new tiddler with the title of this tiddler"
        },
        "$:/language/Buttons/Excise/Caption/TiddlerExists": {
            "title": "$:/language/Buttons/Excise/Caption/TiddlerExists",
            "text": "Warning: tiddler already exists"
        },
        "$:/language/Buttons/Excise/Hint": {
            "title": "$:/language/Buttons/Excise/Hint",
            "text": "Excise the selected text into a new tiddler"
        },
        "$:/language/Buttons/Heading1/Caption": {
            "title": "$:/language/Buttons/Heading1/Caption",
            "text": "heading 1"
        },
        "$:/language/Buttons/Heading1/Hint": {
            "title": "$:/language/Buttons/Heading1/Hint",
            "text": "Apply heading level 1 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading2/Caption": {
            "title": "$:/language/Buttons/Heading2/Caption",
            "text": "heading 2"
        },
        "$:/language/Buttons/Heading2/Hint": {
            "title": "$:/language/Buttons/Heading2/Hint",
            "text": "Apply heading level 2 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading3/Caption": {
            "title": "$:/language/Buttons/Heading3/Caption",
            "text": "heading 3"
        },
        "$:/language/Buttons/Heading3/Hint": {
            "title": "$:/language/Buttons/Heading3/Hint",
            "text": "Apply heading level 3 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading4/Caption": {
            "title": "$:/language/Buttons/Heading4/Caption",
            "text": "heading 4"
        },
        "$:/language/Buttons/Heading4/Hint": {
            "title": "$:/language/Buttons/Heading4/Hint",
            "text": "Apply heading level 4 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading5/Caption": {
            "title": "$:/language/Buttons/Heading5/Caption",
            "text": "heading 5"
        },
        "$:/language/Buttons/Heading5/Hint": {
            "title": "$:/language/Buttons/Heading5/Hint",
            "text": "Apply heading level 5 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading6/Caption": {
            "title": "$:/language/Buttons/Heading6/Caption",
            "text": "heading 6"
        },
        "$:/language/Buttons/Heading6/Hint": {
            "title": "$:/language/Buttons/Heading6/Hint",
            "text": "Apply heading level 6 formatting to lines containing selection"
        },
        "$:/language/Buttons/Italic/Caption": {
            "title": "$:/language/Buttons/Italic/Caption",
            "text": "italic"
        },
        "$:/language/Buttons/Italic/Hint": {
            "title": "$:/language/Buttons/Italic/Hint",
            "text": "Apply italic formatting to selection"
        },
        "$:/language/Buttons/LineWidth/Caption": {
            "title": "$:/language/Buttons/LineWidth/Caption",
            "text": "line width"
        },
        "$:/language/Buttons/LineWidth/Hint": {
            "title": "$:/language/Buttons/LineWidth/Hint",
            "text": "Set line width for painting"
        },
        "$:/language/Buttons/Link/Caption": {
            "title": "$:/language/Buttons/Link/Caption",
            "text": "link"
        },
        "$:/language/Buttons/Link/Hint": {
            "title": "$:/language/Buttons/Link/Hint",
            "text": "Create wikitext link"
        },
        "$:/language/Buttons/ListBullet/Caption": {
            "title": "$:/language/Buttons/ListBullet/Caption",
            "text": "bulleted list"
        },
        "$:/language/Buttons/ListBullet/Hint": {
            "title": "$:/language/Buttons/ListBullet/Hint",
            "text": "Apply bulleted list formatting to lines containing selection"
        },
        "$:/language/Buttons/ListNumber/Caption": {
            "title": "$:/language/Buttons/ListNumber/Caption",
            "text": "numbered list"
        },
        "$:/language/Buttons/ListNumber/Hint": {
            "title": "$:/language/Buttons/ListNumber/Hint",
            "text": "Apply numbered list formatting to lines containing selection"
        },
        "$:/language/Buttons/MonoBlock/Caption": {
            "title": "$:/language/Buttons/MonoBlock/Caption",
            "text": "monospaced block"
        },
        "$:/language/Buttons/MonoBlock/Hint": {
            "title": "$:/language/Buttons/MonoBlock/Hint",
            "text": "Apply monospaced block formatting to lines containing selection"
        },
        "$:/language/Buttons/MonoLine/Caption": {
            "title": "$:/language/Buttons/MonoLine/Caption",
            "text": "monospaced"
        },
        "$:/language/Buttons/MonoLine/Hint": {
            "title": "$:/language/Buttons/MonoLine/Hint",
            "text": "Apply monospaced character formatting to selection"
        },
        "$:/language/Buttons/Opacity/Caption": {
            "title": "$:/language/Buttons/Opacity/Caption",
            "text": "opacity"
        },
        "$:/language/Buttons/Opacity/Hint": {
            "title": "$:/language/Buttons/Opacity/Hint",
            "text": "Set painting opacity"
        },
        "$:/language/Buttons/Paint/Caption": {
            "title": "$:/language/Buttons/Paint/Caption",
            "text": "paint colour"
        },
        "$:/language/Buttons/Paint/Hint": {
            "title": "$:/language/Buttons/Paint/Hint",
            "text": "Set painting colour"
        },
        "$:/language/Buttons/Picture/Caption": {
            "title": "$:/language/Buttons/Picture/Caption",
            "text": "picture"
        },
        "$:/language/Buttons/Picture/Hint": {
            "title": "$:/language/Buttons/Picture/Hint",
            "text": "Insert picture"
        },
        "$:/language/Buttons/Preview/Caption": {
            "title": "$:/language/Buttons/Preview/Caption",
            "text": "preview"
        },
        "$:/language/Buttons/Preview/Hint": {
            "title": "$:/language/Buttons/Preview/Hint",
            "text": "Show preview pane"
        },
        "$:/language/Buttons/PreviewType/Caption": {
            "title": "$:/language/Buttons/PreviewType/Caption",
            "text": "preview type"
        },
        "$:/language/Buttons/PreviewType/Hint": {
            "title": "$:/language/Buttons/PreviewType/Hint",
            "text": "Choose preview type"
        },
        "$:/language/Buttons/Quote/Caption": {
            "title": "$:/language/Buttons/Quote/Caption",
            "text": "quote"
        },
        "$:/language/Buttons/Quote/Hint": {
            "title": "$:/language/Buttons/Quote/Hint",
            "text": "Apply quoted text formatting to lines containing selection"
        },
        "$:/language/Buttons/Size/Caption": {
            "title": "$:/language/Buttons/Size/Caption",
            "text": "image size"
        },
        "$:/language/Buttons/Size/Caption/Height": {
            "title": "$:/language/Buttons/Size/Caption/Height",
            "text": "Height:"
        },
        "$:/language/Buttons/Size/Caption/Resize": {
            "title": "$:/language/Buttons/Size/Caption/Resize",
            "text": "Resize image"
        },
        "$:/language/Buttons/Size/Caption/Width": {
            "title": "$:/language/Buttons/Size/Caption/Width",
            "text": "Width:"
        },
        "$:/language/Buttons/Size/Hint": {
            "title": "$:/language/Buttons/Size/Hint",
            "text": "Set image size"
        },
        "$:/language/Buttons/Stamp/Caption": {
            "title": "$:/language/Buttons/Stamp/Caption",
            "text": "stamp"
        },
        "$:/language/Buttons/Stamp/Caption/New": {
            "title": "$:/language/Buttons/Stamp/Caption/New",
            "text": "Add your own"
        },
        "$:/language/Buttons/Stamp/Hint": {
            "title": "$:/language/Buttons/Stamp/Hint",
            "text": "Insert a preconfigured snippet of text"
        },
        "$:/language/Buttons/Stamp/New/Title": {
            "title": "$:/language/Buttons/Stamp/New/Title",
            "text": "Name as shown in menu"
        },
        "$:/language/Buttons/Stamp/New/Text": {
            "title": "$:/language/Buttons/Stamp/New/Text",
            "text": "Text of snippet. (Remember to add a descriptive title in the caption field)."
        },
        "$:/language/Buttons/Strikethrough/Caption": {
            "title": "$:/language/Buttons/Strikethrough/Caption",
            "text": "strikethrough"
        },
        "$:/language/Buttons/Strikethrough/Hint": {
            "title": "$:/language/Buttons/Strikethrough/Hint",
            "text": "Apply strikethrough formatting to selection"
        },
        "$:/language/Buttons/Subscript/Caption": {
            "title": "$:/language/Buttons/Subscript/Caption",
            "text": "subscript"
        },
        "$:/language/Buttons/Subscript/Hint": {
            "title": "$:/language/Buttons/Subscript/Hint",
            "text": "Apply subscript formatting to selection"
        },
        "$:/language/Buttons/Superscript/Caption": {
            "title": "$:/language/Buttons/Superscript/Caption",
            "text": "superscript"
        },
        "$:/language/Buttons/Superscript/Hint": {
            "title": "$:/language/Buttons/Superscript/Hint",
            "text": "Apply superscript formatting to selection"
        },
        "$:/language/Buttons/Underline/Caption": {
            "title": "$:/language/Buttons/Underline/Caption",
            "text": "underline"
        },
        "$:/language/Buttons/Underline/Hint": {
            "title": "$:/language/Buttons/Underline/Hint",
            "text": "Apply underline formatting to selection"
        },
        "$:/language/ControlPanel/Advanced/Caption": {
            "title": "$:/language/ControlPanel/Advanced/Caption",
            "text": "Advanced"
        },
        "$:/language/ControlPanel/Advanced/Hint": {
            "title": "$:/language/ControlPanel/Advanced/Hint",
            "text": "Internal information about this TiddlyWiki"
        },
        "$:/language/ControlPanel/Appearance/Caption": {
            "title": "$:/language/ControlPanel/Appearance/Caption",
            "text": "Appearance"
        },
        "$:/language/ControlPanel/Appearance/Hint": {
            "title": "$:/language/ControlPanel/Appearance/Hint",
            "text": "Ways to customise the appearance of your TiddlyWiki."
        },
        "$:/language/ControlPanel/Basics/AnimDuration/Prompt": {
            "title": "$:/language/ControlPanel/Basics/AnimDuration/Prompt",
            "text": "Animation duration:"
        },
        "$:/language/ControlPanel/Basics/Caption": {
            "title": "$:/language/ControlPanel/Basics/Caption",
            "text": "Basics"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint",
            "text": "Use &#91;&#91;double square brackets&#93;&#93; for titles with spaces. Or you can choose to <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\">retain story ordering</$button>"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt",
            "text": "Default tiddlers:"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint",
            "text": "Choose which tiddlers are displayed at startup:"
        },
        "$:/language/ControlPanel/Basics/Language/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Language/Prompt",
            "text": "Hello! Current language:"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt",
            "text": "Title of new journal tiddlers"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt",
            "text": "Text for new journal tiddlers"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt",
            "text": "Tags for new journal tiddlers"
        },
        "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt",
            "text": "Number of overridden shadow tiddlers:"
        },
        "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt",
            "text": "Number of shadow tiddlers:"
        },
        "$:/language/ControlPanel/Basics/Subtitle/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Subtitle/Prompt",
            "text": "Subtitle:"
        },
        "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt",
            "text": "Number of system tiddlers:"
        },
        "$:/language/ControlPanel/Basics/Tags/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Tags/Prompt",
            "text": "Number of tags:"
        },
        "$:/language/ControlPanel/Basics/Tiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Tiddlers/Prompt",
            "text": "Number of tiddlers:"
        },
        "$:/language/ControlPanel/Basics/Title/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Title/Prompt",
            "text": "Title of this ~TiddlyWiki:"
        },
        "$:/language/ControlPanel/Basics/Username/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Username/Prompt",
            "text": "Username for signing edits:"
        },
        "$:/language/ControlPanel/Basics/Version/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Version/Prompt",
            "text": "~TiddlyWiki version:"
        },
        "$:/language/ControlPanel/EditorTypes/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Caption",
            "text": "Editor Types"
        },
        "$:/language/ControlPanel/EditorTypes/Editor/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Editor/Caption",
            "text": "Editor"
        },
        "$:/language/ControlPanel/EditorTypes/Hint": {
            "title": "$:/language/ControlPanel/EditorTypes/Hint",
            "text": "These tiddlers determine which editor is used to edit specific tiddler types."
        },
        "$:/language/ControlPanel/EditorTypes/Type/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Type/Caption",
            "text": "Type"
        },
        "$:/language/ControlPanel/Info/Caption": {
            "title": "$:/language/ControlPanel/Info/Caption",
            "text": "Info"
        },
        "$:/language/ControlPanel/Info/Hint": {
            "title": "$:/language/ControlPanel/Info/Hint",
            "text": "Information about this TiddlyWiki"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt",
            "text": "Type shortcut here"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption",
            "text": "add shortcut"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Caption",
            "text": "Keyboard Shortcuts"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Hint": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Hint",
            "text": "Manage keyboard shortcut assignments"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption",
            "text": "No keyboard shortcuts assigned"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint",
            "text": "remove keyboard shortcut"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/All": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/All",
            "text": "All platforms"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac",
            "text": "Macintosh platform only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac",
            "text": "Non-Macintosh platforms only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux",
            "text": "Linux platform only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux",
            "text": "Non-Linux platforms only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows",
            "text": "Windows platform only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows",
            "text": "Non-Windows platforms only"
        },
        "$:/language/ControlPanel/LoadedModules/Caption": {
            "title": "$:/language/ControlPanel/LoadedModules/Caption",
            "text": "Loaded Modules"
        },
        "$:/language/ControlPanel/LoadedModules/Hint": {
            "title": "$:/language/ControlPanel/LoadedModules/Hint",
            "text": "These are the currently loaded tiddler modules linked to their source tiddlers. Any italicised modules lack a source tiddler, typically because they were setup during the boot process."
        },
        "$:/language/ControlPanel/Palette/Caption": {
            "title": "$:/language/ControlPanel/Palette/Caption",
            "text": "Palette"
        },
        "$:/language/ControlPanel/Palette/Editor/Clone/Caption": {
            "title": "$:/language/ControlPanel/Palette/Editor/Clone/Caption",
            "text": "clone"
        },
        "$:/language/ControlPanel/Palette/Editor/Clone/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Editor/Clone/Prompt",
            "text": "It is recommended that you clone this shadow palette before editing it"
        },
        "$:/language/ControlPanel/Palette/Editor/Prompt/Modified": {
            "title": "$:/language/ControlPanel/Palette/Editor/Prompt/Modified",
            "text": "This shadow palette has been modified"
        },
        "$:/language/ControlPanel/Palette/Editor/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Editor/Prompt",
            "text": "Editing"
        },
        "$:/language/ControlPanel/Palette/Editor/Reset/Caption": {
            "title": "$:/language/ControlPanel/Palette/Editor/Reset/Caption",
            "text": "reset"
        },
        "$:/language/ControlPanel/Palette/HideEditor/Caption": {
            "title": "$:/language/ControlPanel/Palette/HideEditor/Caption",
            "text": "hide editor"
        },
        "$:/language/ControlPanel/Palette/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Prompt",
            "text": "Current palette:"
        },
        "$:/language/ControlPanel/Palette/ShowEditor/Caption": {
            "title": "$:/language/ControlPanel/Palette/ShowEditor/Caption",
            "text": "show editor"
        },
        "$:/language/ControlPanel/Parsing/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Caption",
            "text": "Parsing"
        },
        "$:/language/ControlPanel/Parsing/Hint": {
            "title": "$:/language/ControlPanel/Parsing/Hint",
            "text": "Here you can globally disable/enable wiki parser rules. For changes to take effect, save and reload your wiki. Disabling certain parser rules can prevent <$text text=\"TiddlyWiki\"/> from functioning correctly. Use [[safe mode|http://tiddlywiki.com/#SafeMode]] to restore normal operation."
        },
        "$:/language/ControlPanel/Parsing/Block/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Block/Caption",
            "text": "Block Parse Rules"
        },
        "$:/language/ControlPanel/Parsing/Inline/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Inline/Caption",
            "text": "Inline Parse Rules"
        },
        "$:/language/ControlPanel/Parsing/Pragma/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Pragma/Caption",
            "text": "Pragma Parse Rules"
        },
        "$:/language/ControlPanel/Plugins/Add/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Add/Caption",
            "text": "Get more plugins"
        },
        "$:/language/ControlPanel/Plugins/Add/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Add/Hint",
            "text": "Install plugins from the official library"
        },
        "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint": {
            "title": "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint",
            "text": "This plugin is already installed at version <$text text=<<installedVersion>>/>"
        },
        "$:/language/ControlPanel/Plugins/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Caption",
            "text": "Plugins"
        },
        "$:/language/ControlPanel/Plugins/Disable/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Disable/Caption",
            "text": "disable"
        },
        "$:/language/ControlPanel/Plugins/Disable/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Disable/Hint",
            "text": "Disable this plugin when reloading page"
        },
        "$:/language/ControlPanel/Plugins/Disabled/Status": {
            "title": "$:/language/ControlPanel/Plugins/Disabled/Status",
            "text": "(disabled)"
        },
        "$:/language/ControlPanel/Plugins/Empty/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Empty/Hint",
            "text": "None"
        },
        "$:/language/ControlPanel/Plugins/Enable/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Enable/Caption",
            "text": "enable"
        },
        "$:/language/ControlPanel/Plugins/Enable/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Enable/Hint",
            "text": "Enable this plugin when reloading page"
        },
        "$:/language/ControlPanel/Plugins/Install/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Install/Caption",
            "text": "install"
        },
        "$:/language/ControlPanel/Plugins/Installed/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Installed/Hint",
            "text": "Currently installed plugins:"
        },
        "$:/language/ControlPanel/Plugins/Languages/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Languages/Caption",
            "text": "Languages"
        },
        "$:/language/ControlPanel/Plugins/Languages/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Languages/Hint",
            "text": "Language pack plugins"
        },
        "$:/language/ControlPanel/Plugins/NoInfoFound/Hint": {
            "title": "$:/language/ControlPanel/Plugins/NoInfoFound/Hint",
            "text": "No ''\"<$text text=<<currentTab>>/>\"'' found"
        },
        "$:/language/ControlPanel/Plugins/NoInformation/Hint": {
            "title": "$:/language/ControlPanel/Plugins/NoInformation/Hint",
            "text": "No information provided"
        },
        "$:/language/ControlPanel/Plugins/NotInstalled/Hint": {
            "title": "$:/language/ControlPanel/Plugins/NotInstalled/Hint",
            "text": "This plugin is not currently installed"
        },
        "$:/language/ControlPanel/Plugins/OpenPluginLibrary": {
            "title": "$:/language/ControlPanel/Plugins/OpenPluginLibrary",
            "text": "open plugin library"
        },
        "$:/language/ControlPanel/Plugins/ClosePluginLibrary": {
            "title": "$:/language/ControlPanel/Plugins/ClosePluginLibrary",
            "text": "close plugin library"
        },
        "$:/language/ControlPanel/Plugins/Plugins/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Plugins/Caption",
            "text": "Plugins"
        },
        "$:/language/ControlPanel/Plugins/Plugins/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Plugins/Hint",
            "text": "Plugins"
        },
        "$:/language/ControlPanel/Plugins/Reinstall/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Reinstall/Caption",
            "text": "reinstall"
        },
        "$:/language/ControlPanel/Plugins/Themes/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Themes/Caption",
            "text": "Themes"
        },
        "$:/language/ControlPanel/Plugins/Themes/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Themes/Hint",
            "text": "Theme plugins"
        },
        "$:/language/ControlPanel/Saving/Caption": {
            "title": "$:/language/ControlPanel/Saving/Caption",
            "text": "Saving"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description",
            "text": "Permit automatic saving for the download saver"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint",
            "text": "Enable Autosave for Download Saver"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/Caption": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/Caption",
            "text": "Download Saver"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/Hint": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/Hint",
            "text": "These settings apply to the HTML5-compatible download saver"
        },
        "$:/language/ControlPanel/Saving/General/Caption": {
            "title": "$:/language/ControlPanel/Saving/General/Caption",
            "text": "General"
        },
        "$:/language/ControlPanel/Saving/General/Hint": {
            "title": "$:/language/ControlPanel/Saving/General/Hint",
            "text": "These settings apply to all the loaded savers"
        },
        "$:/language/ControlPanel/Saving/Hint": {
            "title": "$:/language/ControlPanel/Saving/Hint",
            "text": "Settings used for saving the entire TiddlyWiki as a single file via a saver module"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading",
            "text": "Advanced Settings"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir",
            "text": "Backup Directory"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Backups": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups",
            "text": "Backups"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Caption": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Caption",
            "text": "~TiddlySpot Saver"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Description": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Description",
            "text": "These settings are only used when saving to http://tiddlyspot.com or a compatible remote server"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Filename": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Filename",
            "text": "Upload Filename"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Heading": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Heading",
            "text": "~TiddlySpot"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Hint": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Hint",
            "text": "//The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Password": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Password",
            "text": "Password"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL",
            "text": "Server URL"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir",
            "text": "Upload Directory"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/UserName": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/UserName",
            "text": "Wiki Name"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Caption": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Caption",
            "text": "Autosave"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description",
            "text": "Do not save changes automatically"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description",
            "text": "Save changes automatically"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Hint": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Hint",
            "text": "Attempt to automatically save changes during editing when using a supporting saver"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Caption": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Caption",
            "text": "Camel Case Wiki Links"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Hint": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Hint",
            "text": "You can globally disable automatic linking of ~CamelCase phrases. Requires reload to take effect"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Description": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Description",
            "text": "Enable automatic ~CamelCase linking"
        },
        "$:/language/ControlPanel/Settings/Caption": {
            "title": "$:/language/ControlPanel/Settings/Caption",
            "text": "Settings"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Caption": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Caption",
            "text": "Editor Toolbar"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Hint": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Hint",
            "text": "Enable or disable the editor toolbar:"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Description": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Description",
            "text": "Show editor toolbar"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Caption": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Caption",
            "text": "Tiddler Info Panel Mode"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Hint": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Hint",
            "text": "Control when the tiddler info panel closes:"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description",
            "text": "Tiddler info panel closes automatically"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description",
            "text": "Tiddler info panel stays open until explicitly closed"
        },
        "$:/language/ControlPanel/Settings/Hint": {
            "title": "$:/language/ControlPanel/Settings/Hint",
            "text": "These settings let you customise the behaviour of TiddlyWiki."
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption",
            "text": "Navigation Address Bar"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint",
            "text": "Behaviour of the browser address bar when navigating to a tiddler:"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description",
            "text": "Do not update the address bar"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description",
            "text": "Include the target tiddler"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description",
            "text": "Include the target tiddler and the current story sequence"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Caption": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Caption",
            "text": "Navigation History"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Hint": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Hint",
            "text": "Update browser history when navigating to a tiddler:"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/No/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/No/Description",
            "text": "Do not update history"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description",
            "text": "Update history"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption",
            "text": "Performance Instrumentation"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint",
            "text": "Displays performance statistics in the browser developer console. Requires reload to take effect"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description",
            "text": "Enable performance instrumentation"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption",
            "text": "Toolbar Button Style"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint",
            "text": "Choose the style for toolbar buttons:"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless",
            "text": "Borderless"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed",
            "text": "Boxed"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded",
            "text": "Rounded"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Caption": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Caption",
            "text": "Toolbar Buttons"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Hint": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Hint",
            "text": "Default toolbar button appearance:"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description",
            "text": "Include icon"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description",
            "text": "Include text"
        },
        "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption": {
            "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption",
            "text": "Default Sidebar Tab"
        },
        "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint": {
            "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint",
            "text": "Specify which sidebar tab is displayed by default"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption",
            "text": "Tiddler Opening Behaviour"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint",
            "text": "Navigation from //within// the story river"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint",
            "text": "Navigation from //outside// the story river"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove",
            "text": "Open above the current tiddler"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow",
            "text": "Open below the current tiddler"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop",
            "text": "Open at the top of the story river"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom",
            "text": "Open at the bottom of the story river"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Caption": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Caption",
            "text": "Tiddler Titles"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Hint": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Hint",
            "text": "Optionally display tiddler titles as links"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/No/Description": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/No/Description",
            "text": "Do not display tiddler titles as links"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description",
            "text": "Display tiddler titles as links"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Caption": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Caption",
            "text": "Wiki Links"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Hint": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Hint",
            "text": "Choose whether to link to tiddlers that do not exist yet"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Description": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Description",
            "text": "Enable links to missing tiddlers"
        },
        "$:/language/ControlPanel/StoryView/Caption": {
            "title": "$:/language/ControlPanel/StoryView/Caption",
            "text": "Story View"
        },
        "$:/language/ControlPanel/StoryView/Prompt": {
            "title": "$:/language/ControlPanel/StoryView/Prompt",
            "text": "Current view:"
        },
        "$:/language/ControlPanel/Theme/Caption": {
            "title": "$:/language/ControlPanel/Theme/Caption",
            "text": "Theme"
        },
        "$:/language/ControlPanel/Theme/Prompt": {
            "title": "$:/language/ControlPanel/Theme/Prompt",
            "text": "Current theme:"
        },
        "$:/language/ControlPanel/TiddlerFields/Caption": {
            "title": "$:/language/ControlPanel/TiddlerFields/Caption",
            "text": "Tiddler Fields"
        },
        "$:/language/ControlPanel/TiddlerFields/Hint": {
            "title": "$:/language/ControlPanel/TiddlerFields/Hint",
            "text": "This is the full set of TiddlerFields in use in this wiki (including system tiddlers but excluding shadow tiddlers)."
        },
        "$:/language/ControlPanel/Toolbars/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/Caption",
            "text": "Toolbars"
        },
        "$:/language/ControlPanel/Toolbars/EditToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Caption",
            "text": "Edit Toolbar"
        },
        "$:/language/ControlPanel/Toolbars/EditToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Hint",
            "text": "Choose which buttons are displayed for tiddlers in edit mode. Drag and drop to change the ordering"
        },
        "$:/language/ControlPanel/Toolbars/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/Hint",
            "text": "Select which toolbar buttons are displayed"
        },
        "$:/language/ControlPanel/Toolbars/PageControls/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/PageControls/Caption",
            "text": "Page Toolbar"
        },
        "$:/language/ControlPanel/Toolbars/PageControls/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/PageControls/Hint",
            "text": "Choose which buttons are displayed on the main page toolbar. Drag and drop to change the ordering"
        },
        "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption",
            "text": "Editor Toolbar"
        },
        "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint",
            "text": "Choose which buttons are displayed in the editor toolbar. Note that some buttons will only appear when editing tiddlers of a certain type. Drag and drop to change the ordering"
        },
        "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption",
            "text": "View Toolbar"
        },
        "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint",
            "text": "Choose which buttons are displayed for tiddlers in view mode. Drag and drop to change the ordering"
        },
        "$:/language/ControlPanel/Tools/Download/Full/Caption": {
            "title": "$:/language/ControlPanel/Tools/Download/Full/Caption",
            "text": "Download full wiki"
        },
        "$:/language/Date/DaySuffix/1": {
            "title": "$:/language/Date/DaySuffix/1",
            "text": "st"
        },
        "$:/language/Date/DaySuffix/2": {
            "title": "$:/language/Date/DaySuffix/2",
            "text": "nd"
        },
        "$:/language/Date/DaySuffix/3": {
            "title": "$:/language/Date/DaySuffix/3",
            "text": "rd"
        },
        "$:/language/Date/DaySuffix/4": {
            "title": "$:/language/Date/DaySuffix/4",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/5": {
            "title": "$:/language/Date/DaySuffix/5",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/6": {
            "title": "$:/language/Date/DaySuffix/6",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/7": {
            "title": "$:/language/Date/DaySuffix/7",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/8": {
            "title": "$:/language/Date/DaySuffix/8",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/9": {
            "title": "$:/language/Date/DaySuffix/9",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/10": {
            "title": "$:/language/Date/DaySuffix/10",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/11": {
            "title": "$:/language/Date/DaySuffix/11",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/12": {
            "title": "$:/language/Date/DaySuffix/12",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/13": {
            "title": "$:/language/Date/DaySuffix/13",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/14": {
            "title": "$:/language/Date/DaySuffix/14",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/15": {
            "title": "$:/language/Date/DaySuffix/15",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/16": {
            "title": "$:/language/Date/DaySuffix/16",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/17": {
            "title": "$:/language/Date/DaySuffix/17",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/18": {
            "title": "$:/language/Date/DaySuffix/18",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/19": {
            "title": "$:/language/Date/DaySuffix/19",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/20": {
            "title": "$:/language/Date/DaySuffix/20",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/21": {
            "title": "$:/language/Date/DaySuffix/21",
            "text": "st"
        },
        "$:/language/Date/DaySuffix/22": {
            "title": "$:/language/Date/DaySuffix/22",
            "text": "nd"
        },
        "$:/language/Date/DaySuffix/23": {
            "title": "$:/language/Date/DaySuffix/23",
            "text": "rd"
        },
        "$:/language/Date/DaySuffix/24": {
            "title": "$:/language/Date/DaySuffix/24",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/25": {
            "title": "$:/language/Date/DaySuffix/25",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/26": {
            "title": "$:/language/Date/DaySuffix/26",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/27": {
            "title": "$:/language/Date/DaySuffix/27",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/28": {
            "title": "$:/language/Date/DaySuffix/28",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/29": {
            "title": "$:/language/Date/DaySuffix/29",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/30": {
            "title": "$:/language/Date/DaySuffix/30",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/31": {
            "title": "$:/language/Date/DaySuffix/31",
            "text": "st"
        },
        "$:/language/Date/Long/Day/0": {
            "title": "$:/language/Date/Long/Day/0",
            "text": "Sunday"
        },
        "$:/language/Date/Long/Day/1": {
            "title": "$:/language/Date/Long/Day/1",
            "text": "Monday"
        },
        "$:/language/Date/Long/Day/2": {
            "title": "$:/language/Date/Long/Day/2",
            "text": "Tuesday"
        },
        "$:/language/Date/Long/Day/3": {
            "title": "$:/language/Date/Long/Day/3",
            "text": "Wednesday"
        },
        "$:/language/Date/Long/Day/4": {
            "title": "$:/language/Date/Long/Day/4",
            "text": "Thursday"
        },
        "$:/language/Date/Long/Day/5": {
            "title": "$:/language/Date/Long/Day/5",
            "text": "Friday"
        },
        "$:/language/Date/Long/Day/6": {
            "title": "$:/language/Date/Long/Day/6",
            "text": "Saturday"
        },
        "$:/language/Date/Long/Month/1": {
            "title": "$:/language/Date/Long/Month/1",
            "text": "January"
        },
        "$:/language/Date/Long/Month/2": {
            "title": "$:/language/Date/Long/Month/2",
            "text": "February"
        },
        "$:/language/Date/Long/Month/3": {
            "title": "$:/language/Date/Long/Month/3",
            "text": "March"
        },
        "$:/language/Date/Long/Month/4": {
            "title": "$:/language/Date/Long/Month/4",
            "text": "April"
        },
        "$:/language/Date/Long/Month/5": {
            "title": "$:/language/Date/Long/Month/5",
            "text": "May"
        },
        "$:/language/Date/Long/Month/6": {
            "title": "$:/language/Date/Long/Month/6",
            "text": "June"
        },
        "$:/language/Date/Long/Month/7": {
            "title": "$:/language/Date/Long/Month/7",
            "text": "July"
        },
        "$:/language/Date/Long/Month/8": {
            "title": "$:/language/Date/Long/Month/8",
            "text": "August"
        },
        "$:/language/Date/Long/Month/9": {
            "title": "$:/language/Date/Long/Month/9",
            "text": "September"
        },
        "$:/language/Date/Long/Month/10": {
            "title": "$:/language/Date/Long/Month/10",
            "text": "October"
        },
        "$:/language/Date/Long/Month/11": {
            "title": "$:/language/Date/Long/Month/11",
            "text": "November"
        },
        "$:/language/Date/Long/Month/12": {
            "title": "$:/language/Date/Long/Month/12",
            "text": "December"
        },
        "$:/language/Date/Period/am": {
            "title": "$:/language/Date/Period/am",
            "text": "am"
        },
        "$:/language/Date/Period/pm": {
            "title": "$:/language/Date/Period/pm",
            "text": "pm"
        },
        "$:/language/Date/Short/Day/0": {
            "title": "$:/language/Date/Short/Day/0",
            "text": "Sun"
        },
        "$:/language/Date/Short/Day/1": {
            "title": "$:/language/Date/Short/Day/1",
            "text": "Mon"
        },
        "$:/language/Date/Short/Day/2": {
            "title": "$:/language/Date/Short/Day/2",
            "text": "Tue"
        },
        "$:/language/Date/Short/Day/3": {
            "title": "$:/language/Date/Short/Day/3",
            "text": "Wed"
        },
        "$:/language/Date/Short/Day/4": {
            "title": "$:/language/Date/Short/Day/4",
            "text": "Thu"
        },
        "$:/language/Date/Short/Day/5": {
            "title": "$:/language/Date/Short/Day/5",
            "text": "Fri"
        },
        "$:/language/Date/Short/Day/6": {
            "title": "$:/language/Date/Short/Day/6",
            "text": "Sat"
        },
        "$:/language/Date/Short/Month/1": {
            "title": "$:/language/Date/Short/Month/1",
            "text": "Jan"
        },
        "$:/language/Date/Short/Month/2": {
            "title": "$:/language/Date/Short/Month/2",
            "text": "Feb"
        },
        "$:/language/Date/Short/Month/3": {
            "title": "$:/language/Date/Short/Month/3",
            "text": "Mar"
        },
        "$:/language/Date/Short/Month/4": {
            "title": "$:/language/Date/Short/Month/4",
            "text": "Apr"
        },
        "$:/language/Date/Short/Month/5": {
            "title": "$:/language/Date/Short/Month/5",
            "text": "May"
        },
        "$:/language/Date/Short/Month/6": {
            "title": "$:/language/Date/Short/Month/6",
            "text": "Jun"
        },
        "$:/language/Date/Short/Month/7": {
            "title": "$:/language/Date/Short/Month/7",
            "text": "Jul"
        },
        "$:/language/Date/Short/Month/8": {
            "title": "$:/language/Date/Short/Month/8",
            "text": "Aug"
        },
        "$:/language/Date/Short/Month/9": {
            "title": "$:/language/Date/Short/Month/9",
            "text": "Sep"
        },
        "$:/language/Date/Short/Month/10": {
            "title": "$:/language/Date/Short/Month/10",
            "text": "Oct"
        },
        "$:/language/Date/Short/Month/11": {
            "title": "$:/language/Date/Short/Month/11",
            "text": "Nov"
        },
        "$:/language/Date/Short/Month/12": {
            "title": "$:/language/Date/Short/Month/12",
            "text": "Dec"
        },
        "$:/language/RelativeDate/Future/Days": {
            "title": "$:/language/RelativeDate/Future/Days",
            "text": "<<period>> days from now"
        },
        "$:/language/RelativeDate/Future/Hours": {
            "title": "$:/language/RelativeDate/Future/Hours",
            "text": "<<period>> hours from now"
        },
        "$:/language/RelativeDate/Future/Minutes": {
            "title": "$:/language/RelativeDate/Future/Minutes",
            "text": "<<period>> minutes from now"
        },
        "$:/language/RelativeDate/Future/Months": {
            "title": "$:/language/RelativeDate/Future/Months",
            "text": "<<period>> months from now"
        },
        "$:/language/RelativeDate/Future/Second": {
            "title": "$:/language/RelativeDate/Future/Second",
            "text": "1 second from now"
        },
        "$:/language/RelativeDate/Future/Seconds": {
            "title": "$:/language/RelativeDate/Future/Seconds",
            "text": "<<period>> seconds from now"
        },
        "$:/language/RelativeDate/Future/Years": {
            "title": "$:/language/RelativeDate/Future/Years",
            "text": "<<period>> years from now"
        },
        "$:/language/RelativeDate/Past/Days": {
            "title": "$:/language/RelativeDate/Past/Days",
            "text": "<<period>> days ago"
        },
        "$:/language/RelativeDate/Past/Hours": {
            "title": "$:/language/RelativeDate/Past/Hours",
            "text": "<<period>> hours ago"
        },
        "$:/language/RelativeDate/Past/Minutes": {
            "title": "$:/language/RelativeDate/Past/Minutes",
            "text": "<<period>> minutes ago"
        },
        "$:/language/RelativeDate/Past/Months": {
            "title": "$:/language/RelativeDate/Past/Months",
            "text": "<<period>> months ago"
        },
        "$:/language/RelativeDate/Past/Second": {
            "title": "$:/language/RelativeDate/Past/Second",
            "text": "1 second ago"
        },
        "$:/language/RelativeDate/Past/Seconds": {
            "title": "$:/language/RelativeDate/Past/Seconds",
            "text": "<<period>> seconds ago"
        },
        "$:/language/RelativeDate/Past/Years": {
            "title": "$:/language/RelativeDate/Past/Years",
            "text": "<<period>> years ago"
        },
        "$:/language/Docs/ModuleTypes/allfilteroperator": {
            "title": "$:/language/Docs/ModuleTypes/allfilteroperator",
            "text": "A sub-operator for the ''all'' filter operator."
        },
        "$:/language/Docs/ModuleTypes/animation": {
            "title": "$:/language/Docs/ModuleTypes/animation",
            "text": "Animations that may be used with the RevealWidget."
        },
        "$:/language/Docs/ModuleTypes/bitmapeditoroperation": {
            "title": "$:/language/Docs/ModuleTypes/bitmapeditoroperation",
            "text": "A bitmap editor toolbar operation."
        },
        "$:/language/Docs/ModuleTypes/command": {
            "title": "$:/language/Docs/ModuleTypes/command",
            "text": "Commands that can be executed under Node.js."
        },
        "$:/language/Docs/ModuleTypes/config": {
            "title": "$:/language/Docs/ModuleTypes/config",
            "text": "Data to be inserted into `$tw.config`."
        },
        "$:/language/Docs/ModuleTypes/filteroperator": {
            "title": "$:/language/Docs/ModuleTypes/filteroperator",
            "text": "Individual filter operator methods."
        },
        "$:/language/Docs/ModuleTypes/global": {
            "title": "$:/language/Docs/ModuleTypes/global",
            "text": "Global data to be inserted into `$tw`."
        },
        "$:/language/Docs/ModuleTypes/info": {
            "title": "$:/language/Docs/ModuleTypes/info",
            "text": "Publishes system information via the [[$:/temp/info-plugin]] pseudo-plugin."
        },
        "$:/language/Docs/ModuleTypes/isfilteroperator": {
            "title": "$:/language/Docs/ModuleTypes/isfilteroperator",
            "text": "Operands for the ''is'' filter operator."
        },
        "$:/language/Docs/ModuleTypes/library": {
            "title": "$:/language/Docs/ModuleTypes/library",
            "text": "Generic module type for general purpose JavaScript modules."
        },
        "$:/language/Docs/ModuleTypes/macro": {
            "title": "$:/language/Docs/ModuleTypes/macro",
            "text": "JavaScript macro definitions."
        },
        "$:/language/Docs/ModuleTypes/parser": {
            "title": "$:/language/Docs/ModuleTypes/parser",
            "text": "Parsers for different content types."
        },
        "$:/language/Docs/ModuleTypes/saver": {
            "title": "$:/language/Docs/ModuleTypes/saver",
            "text": "Savers handle different methods for saving files from the browser."
        },
        "$:/language/Docs/ModuleTypes/startup": {
            "title": "$:/language/Docs/ModuleTypes/startup",
            "text": "Startup functions."
        },
        "$:/language/Docs/ModuleTypes/storyview": {
            "title": "$:/language/Docs/ModuleTypes/storyview",
            "text": "Story views customise the animation and behaviour of list widgets."
        },
        "$:/language/Docs/ModuleTypes/texteditoroperation": {
            "title": "$:/language/Docs/ModuleTypes/texteditoroperation",
            "text": "A text editor toolbar operation."
        },
        "$:/language/Docs/ModuleTypes/tiddlerdeserializer": {
            "title": "$:/language/Docs/ModuleTypes/tiddlerdeserializer",
            "text": "Converts different content types into tiddlers."
        },
        "$:/language/Docs/ModuleTypes/tiddlerfield": {
            "title": "$:/language/Docs/ModuleTypes/tiddlerfield",
            "text": "Defines the behaviour of an individual tiddler field."
        },
        "$:/language/Docs/ModuleTypes/tiddlermethod": {
            "title": "$:/language/Docs/ModuleTypes/tiddlermethod",
            "text": "Adds methods to the `$tw.Tiddler` prototype."
        },
        "$:/language/Docs/ModuleTypes/upgrader": {
            "title": "$:/language/Docs/ModuleTypes/upgrader",
            "text": "Applies upgrade processing to tiddlers during an upgrade/import."
        },
        "$:/language/Docs/ModuleTypes/utils": {
            "title": "$:/language/Docs/ModuleTypes/utils",
            "text": "Adds methods to `$tw.utils`."
        },
        "$:/language/Docs/ModuleTypes/utils-node": {
            "title": "$:/language/Docs/ModuleTypes/utils-node",
            "text": "Adds Node.js-specific methods to `$tw.utils`."
        },
        "$:/language/Docs/ModuleTypes/widget": {
            "title": "$:/language/Docs/ModuleTypes/widget",
            "text": "Widgets encapsulate DOM rendering and refreshing."
        },
        "$:/language/Docs/ModuleTypes/wikimethod": {
            "title": "$:/language/Docs/ModuleTypes/wikimethod",
            "text": "Adds methods to `$tw.Wiki`."
        },
        "$:/language/Docs/ModuleTypes/wikirule": {
            "title": "$:/language/Docs/ModuleTypes/wikirule",
            "text": "Individual parser rules for the main WikiText parser."
        },
        "$:/language/Docs/PaletteColours/alert-background": {
            "title": "$:/language/Docs/PaletteColours/alert-background",
            "text": "Alert background"
        },
        "$:/language/Docs/PaletteColours/alert-border": {
            "title": "$:/language/Docs/PaletteColours/alert-border",
            "text": "Alert border"
        },
        "$:/language/Docs/PaletteColours/alert-highlight": {
            "title": "$:/language/Docs/PaletteColours/alert-highlight",
            "text": "Alert highlight"
        },
        "$:/language/Docs/PaletteColours/alert-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/alert-muted-foreground",
            "text": "Alert muted foreground"
        },
        "$:/language/Docs/PaletteColours/background": {
            "title": "$:/language/Docs/PaletteColours/background",
            "text": "General background"
        },
        "$:/language/Docs/PaletteColours/blockquote-bar": {
            "title": "$:/language/Docs/PaletteColours/blockquote-bar",
            "text": "Blockquote bar"
        },
        "$:/language/Docs/PaletteColours/button-background": {
            "title": "$:/language/Docs/PaletteColours/button-background",
            "text": "Default button background"
        },
        "$:/language/Docs/PaletteColours/button-border": {
            "title": "$:/language/Docs/PaletteColours/button-border",
            "text": "Default button border"
        },
        "$:/language/Docs/PaletteColours/button-foreground": {
            "title": "$:/language/Docs/PaletteColours/button-foreground",
            "text": "Default button foreground"
        },
        "$:/language/Docs/PaletteColours/dirty-indicator": {
            "title": "$:/language/Docs/PaletteColours/dirty-indicator",
            "text": "Unsaved changes indicator"
        },
        "$:/language/Docs/PaletteColours/code-background": {
            "title": "$:/language/Docs/PaletteColours/code-background",
            "text": "Code background"
        },
        "$:/language/Docs/PaletteColours/code-border": {
            "title": "$:/language/Docs/PaletteColours/code-border",
            "text": "Code border"
        },
        "$:/language/Docs/PaletteColours/code-foreground": {
            "title": "$:/language/Docs/PaletteColours/code-foreground",
            "text": "Code foreground"
        },
        "$:/language/Docs/PaletteColours/download-background": {
            "title": "$:/language/Docs/PaletteColours/download-background",
            "text": "Download button background"
        },
        "$:/language/Docs/PaletteColours/download-foreground": {
            "title": "$:/language/Docs/PaletteColours/download-foreground",
            "text": "Download button foreground"
        },
        "$:/language/Docs/PaletteColours/dragger-background": {
            "title": "$:/language/Docs/PaletteColours/dragger-background",
            "text": "Dragger background"
        },
        "$:/language/Docs/PaletteColours/dragger-foreground": {
            "title": "$:/language/Docs/PaletteColours/dragger-foreground",
            "text": "Dragger foreground"
        },
        "$:/language/Docs/PaletteColours/dropdown-background": {
            "title": "$:/language/Docs/PaletteColours/dropdown-background",
            "text": "Dropdown background"
        },
        "$:/language/Docs/PaletteColours/dropdown-border": {
            "title": "$:/language/Docs/PaletteColours/dropdown-border",
            "text": "Dropdown border"
        },
        "$:/language/Docs/PaletteColours/dropdown-tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/dropdown-tab-background-selected",
            "text": "Dropdown tab background for selected tabs"
        },
        "$:/language/Docs/PaletteColours/dropdown-tab-background": {
            "title": "$:/language/Docs/PaletteColours/dropdown-tab-background",
            "text": "Dropdown tab background"
        },
        "$:/language/Docs/PaletteColours/dropzone-background": {
            "title": "$:/language/Docs/PaletteColours/dropzone-background",
            "text": "Dropzone background"
        },
        "$:/language/Docs/PaletteColours/external-link-background-hover": {
            "title": "$:/language/Docs/PaletteColours/external-link-background-hover",
            "text": "External link background hover"
        },
        "$:/language/Docs/PaletteColours/external-link-background-visited": {
            "title": "$:/language/Docs/PaletteColours/external-link-background-visited",
            "text": "External link background visited"
        },
        "$:/language/Docs/PaletteColours/external-link-background": {
            "title": "$:/language/Docs/PaletteColours/external-link-background",
            "text": "External link background"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground-hover",
            "text": "External link foreground hover"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground-visited": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground-visited",
            "text": "External link foreground visited"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground",
            "text": "External link foreground"
        },
        "$:/language/Docs/PaletteColours/foreground": {
            "title": "$:/language/Docs/PaletteColours/foreground",
            "text": "General foreground"
        },
        "$:/language/Docs/PaletteColours/message-background": {
            "title": "$:/language/Docs/PaletteColours/message-background",
            "text": "Message box background"
        },
        "$:/language/Docs/PaletteColours/message-border": {
            "title": "$:/language/Docs/PaletteColours/message-border",
            "text": "Message box border"
        },
        "$:/language/Docs/PaletteColours/message-foreground": {
            "title": "$:/language/Docs/PaletteColours/message-foreground",
            "text": "Message box foreground"
        },
        "$:/language/Docs/PaletteColours/modal-backdrop": {
            "title": "$:/language/Docs/PaletteColours/modal-backdrop",
            "text": "Modal backdrop"
        },
        "$:/language/Docs/PaletteColours/modal-background": {
            "title": "$:/language/Docs/PaletteColours/modal-background",
            "text": "Modal background"
        },
        "$:/language/Docs/PaletteColours/modal-border": {
            "title": "$:/language/Docs/PaletteColours/modal-border",
            "text": "Modal border"
        },
        "$:/language/Docs/PaletteColours/modal-footer-background": {
            "title": "$:/language/Docs/PaletteColours/modal-footer-background",
            "text": "Modal footer background"
        },
        "$:/language/Docs/PaletteColours/modal-footer-border": {
            "title": "$:/language/Docs/PaletteColours/modal-footer-border",
            "text": "Modal footer border"
        },
        "$:/language/Docs/PaletteColours/modal-header-border": {
            "title": "$:/language/Docs/PaletteColours/modal-header-border",
            "text": "Modal header border"
        },
        "$:/language/Docs/PaletteColours/muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/muted-foreground",
            "text": "General muted foreground"
        },
        "$:/language/Docs/PaletteColours/notification-background": {
            "title": "$:/language/Docs/PaletteColours/notification-background",
            "text": "Notification background"
        },
        "$:/language/Docs/PaletteColours/notification-border": {
            "title": "$:/language/Docs/PaletteColours/notification-border",
            "text": "Notification border"
        },
        "$:/language/Docs/PaletteColours/page-background": {
            "title": "$:/language/Docs/PaletteColours/page-background",
            "text": "Page background"
        },
        "$:/language/Docs/PaletteColours/pre-background": {
            "title": "$:/language/Docs/PaletteColours/pre-background",
            "text": "Preformatted code background"
        },
        "$:/language/Docs/PaletteColours/pre-border": {
            "title": "$:/language/Docs/PaletteColours/pre-border",
            "text": "Preformatted code border"
        },
        "$:/language/Docs/PaletteColours/primary": {
            "title": "$:/language/Docs/PaletteColours/primary",
            "text": "General primary"
        },
        "$:/language/Docs/PaletteColours/sidebar-button-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-button-foreground",
            "text": "Sidebar button foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover",
            "text": "Sidebar controls foreground hover"
        },
        "$:/language/Docs/PaletteColours/sidebar-controls-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground",
            "text": "Sidebar controls foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-foreground-shadow": {
            "title": "$:/language/Docs/PaletteColours/sidebar-foreground-shadow",
            "text": "Sidebar foreground shadow"
        },
        "$:/language/Docs/PaletteColours/sidebar-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-foreground",
            "text": "Sidebar foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover",
            "text": "Sidebar muted foreground hover"
        },
        "$:/language/Docs/PaletteColours/sidebar-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground",
            "text": "Sidebar muted foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-background-selected",
            "text": "Sidebar tab background for selected tabs"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-background": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-background",
            "text": "Sidebar tab background"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-border-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-border-selected",
            "text": "Sidebar tab border for selected tabs"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-border": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-border",
            "text": "Sidebar tab border"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-divider": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-divider",
            "text": "Sidebar tab divider"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected",
            "text": "Sidebar tab foreground for selected tabs"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground",
            "text": "Sidebar tab foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover",
            "text": "Sidebar tiddler link foreground hover"
        },
        "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground",
            "text": "Sidebar tiddler link foreground"
        },
        "$:/language/Docs/PaletteColours/site-title-foreground": {
            "title": "$:/language/Docs/PaletteColours/site-title-foreground",
            "text": "Site title foreground"
        },
        "$:/language/Docs/PaletteColours/static-alert-foreground": {
            "title": "$:/language/Docs/PaletteColours/static-alert-foreground",
            "text": "Static alert foreground"
        },
        "$:/language/Docs/PaletteColours/tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-background-selected",
            "text": "Tab background for selected tabs"
        },
        "$:/language/Docs/PaletteColours/tab-background": {
            "title": "$:/language/Docs/PaletteColours/tab-background",
            "text": "Tab background"
        },
        "$:/language/Docs/PaletteColours/tab-border-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-border-selected",
            "text": "Tab border for selected tabs"
        },
        "$:/language/Docs/PaletteColours/tab-border": {
            "title": "$:/language/Docs/PaletteColours/tab-border",
            "text": "Tab border"
        },
        "$:/language/Docs/PaletteColours/tab-divider": {
            "title": "$:/language/Docs/PaletteColours/tab-divider",
            "text": "Tab divider"
        },
        "$:/language/Docs/PaletteColours/tab-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-foreground-selected",
            "text": "Tab foreground for selected tabs"
        },
        "$:/language/Docs/PaletteColours/tab-foreground": {
            "title": "$:/language/Docs/PaletteColours/tab-foreground",
            "text": "Tab foreground"
        },
        "$:/language/Docs/PaletteColours/table-border": {
            "title": "$:/language/Docs/PaletteColours/table-border",
            "text": "Table border"
        },
        "$:/language/Docs/PaletteColours/table-footer-background": {
            "title": "$:/language/Docs/PaletteColours/table-footer-background",
            "text": "Table footer background"
        },
        "$:/language/Docs/PaletteColours/table-header-background": {
            "title": "$:/language/Docs/PaletteColours/table-header-background",
            "text": "Table header background"
        },
        "$:/language/Docs/PaletteColours/tag-background": {
            "title": "$:/language/Docs/PaletteColours/tag-background",
            "text": "Tag background"
        },
        "$:/language/Docs/PaletteColours/tag-foreground": {
            "title": "$:/language/Docs/PaletteColours/tag-foreground",
            "text": "Tag foreground"
        },
        "$:/language/Docs/PaletteColours/tiddler-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-background",
            "text": "Tiddler background"
        },
        "$:/language/Docs/PaletteColours/tiddler-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-border",
            "text": "Tiddler border"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover",
            "text": "Tiddler controls foreground hover"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected",
            "text": "Tiddler controls foreground for selected controls"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground",
            "text": "Tiddler controls foreground"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-background",
            "text": "Tiddler editor background"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-border-image": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-border-image",
            "text": "Tiddler editor border image"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-border",
            "text": "Tiddler editor border"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-fields-even": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-even",
            "text": "Tiddler editor background for even fields"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd",
            "text": "Tiddler editor background for odd fields"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-background",
            "text": "Tiddler info panel background"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-border",
            "text": "Tiddler info panel border"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-tab-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-tab-background",
            "text": "Tiddler info panel tab background"
        },
        "$:/language/Docs/PaletteColours/tiddler-link-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-link-background",
            "text": "Tiddler link background"
        },
        "$:/language/Docs/PaletteColours/tiddler-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-link-foreground",
            "text": "Tiddler link foreground"
        },
        "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground",
            "text": "Tiddler subtitle foreground"
        },
        "$:/language/Docs/PaletteColours/tiddler-title-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-title-foreground",
            "text": "Tiddler title foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-new-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-new-button",
            "text": "Toolbar 'new tiddler' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-options-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-options-button",
            "text": "Toolbar 'options' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-save-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-save-button",
            "text": "Toolbar 'save' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-info-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-info-button",
            "text": "Toolbar 'info' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-edit-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-edit-button",
            "text": "Toolbar 'edit' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-close-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-close-button",
            "text": "Toolbar 'close' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-delete-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-delete-button",
            "text": "Toolbar 'delete' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-cancel-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-cancel-button",
            "text": "Toolbar 'cancel' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-done-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-done-button",
            "text": "Toolbar 'done' button foreground"
        },
        "$:/language/Docs/PaletteColours/untagged-background": {
            "title": "$:/language/Docs/PaletteColours/untagged-background",
            "text": "Untagged pill background"
        },
        "$:/language/Docs/PaletteColours/very-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/very-muted-foreground",
            "text": "Very muted foreground"
        },
        "$:/language/EditTemplate/Body/External/Hint": {
            "title": "$:/language/EditTemplate/Body/External/Hint",
            "text": "This is an external tiddler stored outside of the main TiddlyWiki file. You can edit the tags and fields but cannot directly edit the content itself"
        },
        "$:/language/EditTemplate/Body/Placeholder": {
            "title": "$:/language/EditTemplate/Body/Placeholder",
            "text": "Type the text for this tiddler"
        },
        "$:/language/EditTemplate/Body/Preview/Type/Output": {
            "title": "$:/language/EditTemplate/Body/Preview/Type/Output",
            "text": "output"
        },
        "$:/language/EditTemplate/Field/Remove/Caption": {
            "title": "$:/language/EditTemplate/Field/Remove/Caption",
            "text": "remove field"
        },
        "$:/language/EditTemplate/Field/Remove/Hint": {
            "title": "$:/language/EditTemplate/Field/Remove/Hint",
            "text": "Remove field"
        },
        "$:/language/EditTemplate/Fields/Add/Button": {
            "title": "$:/language/EditTemplate/Fields/Add/Button",
            "text": "add"
        },
        "$:/language/EditTemplate/Fields/Add/Name/Placeholder": {
            "title": "$:/language/EditTemplate/Fields/Add/Name/Placeholder",
            "text": "field name"
        },
        "$:/language/EditTemplate/Fields/Add/Prompt": {
            "title": "$:/language/EditTemplate/Fields/Add/Prompt",
            "text": "Add a new field:"
        },
        "$:/language/EditTemplate/Fields/Add/Value/Placeholder": {
            "title": "$:/language/EditTemplate/Fields/Add/Value/Placeholder",
            "text": "field value"
        },
        "$:/language/EditTemplate/Fields/Add/Dropdown/System": {
            "title": "$:/language/EditTemplate/Fields/Add/Dropdown/System",
            "text": "System fields"
        },
        "$:/language/EditTemplate/Fields/Add/Dropdown/User": {
            "title": "$:/language/EditTemplate/Fields/Add/Dropdown/User",
            "text": "User fields"
        },
        "$:/language/EditTemplate/Shadow/Warning": {
            "title": "$:/language/EditTemplate/Shadow/Warning",
            "text": "This is a shadow tiddler. Any changes you make will override the default version from the plugin <<pluginLink>>"
        },
        "$:/language/EditTemplate/Shadow/OverriddenWarning": {
            "title": "$:/language/EditTemplate/Shadow/OverriddenWarning",
            "text": "This is a modified shadow tiddler. You can revert to the default version in the plugin <<pluginLink>> by deleting this tiddler"
        },
        "$:/language/EditTemplate/Tags/Add/Button": {
            "title": "$:/language/EditTemplate/Tags/Add/Button",
            "text": "add"
        },
        "$:/language/EditTemplate/Tags/Add/Placeholder": {
            "title": "$:/language/EditTemplate/Tags/Add/Placeholder",
            "text": "tag name"
        },
        "$:/language/EditTemplate/Tags/Dropdown/Caption": {
            "title": "$:/language/EditTemplate/Tags/Dropdown/Caption",
            "text": "tag list"
        },
        "$:/language/EditTemplate/Tags/Dropdown/Hint": {
            "title": "$:/language/EditTemplate/Tags/Dropdown/Hint",
            "text": "Show tag list"
        },
        "$:/language/EditTemplate/Title/BadCharacterWarning": {
            "title": "$:/language/EditTemplate/Title/BadCharacterWarning",
            "text": "Warning: avoid using any of the characters <<bad-chars>> in tiddler titles"
        },
        "$:/language/EditTemplate/Title/Exists/Prompt": {
            "title": "$:/language/EditTemplate/Title/Exists/Prompt",
            "text": "Target tiddler already exists"
        },
        "$:/language/EditTemplate/Title/Relink/Prompt": {
            "title": "$:/language/EditTemplate/Title/Relink/Prompt",
            "text": "Update ''<$text text=<<fromTitle>>/>'' to ''<$text text=<<toTitle>>/>'' in the //tags// and //list// fields of other tiddlers"
        },
        "$:/language/EditTemplate/Type/Dropdown/Caption": {
            "title": "$:/language/EditTemplate/Type/Dropdown/Caption",
            "text": "content type list"
        },
        "$:/language/EditTemplate/Type/Dropdown/Hint": {
            "title": "$:/language/EditTemplate/Type/Dropdown/Hint",
            "text": "Show content type list"
        },
        "$:/language/EditTemplate/Type/Delete/Caption": {
            "title": "$:/language/EditTemplate/Type/Delete/Caption",
            "text": "delete content type"
        },
        "$:/language/EditTemplate/Type/Delete/Hint": {
            "title": "$:/language/EditTemplate/Type/Delete/Hint",
            "text": "Delete content type"
        },
        "$:/language/EditTemplate/Type/Placeholder": {
            "title": "$:/language/EditTemplate/Type/Placeholder",
            "text": "content type"
        },
        "$:/language/EditTemplate/Type/Prompt": {
            "title": "$:/language/EditTemplate/Type/Prompt",
            "text": "Type:"
        },
        "$:/language/Exporters/StaticRiver": {
            "title": "$:/language/Exporters/StaticRiver",
            "text": "Static HTML"
        },
        "$:/language/Exporters/JsonFile": {
            "title": "$:/language/Exporters/JsonFile",
            "text": "JSON file"
        },
        "$:/language/Exporters/CsvFile": {
            "title": "$:/language/Exporters/CsvFile",
            "text": "CSV file"
        },
        "$:/language/Exporters/TidFile": {
            "title": "$:/language/Exporters/TidFile",
            "text": "\".tid\" file"
        },
        "$:/language/Docs/Fields/_canonical_uri": {
            "title": "$:/language/Docs/Fields/_canonical_uri",
            "text": "The full URI of an external image tiddler"
        },
        "$:/language/Docs/Fields/bag": {
            "title": "$:/language/Docs/Fields/bag",
            "text": "The name of the bag from which a tiddler came"
        },
        "$:/language/Docs/Fields/caption": {
            "title": "$:/language/Docs/Fields/caption",
            "text": "The text to be displayed on a tab or button"
        },
        "$:/language/Docs/Fields/color": {
            "title": "$:/language/Docs/Fields/color",
            "text": "The CSS color value associated with a tiddler"
        },
        "$:/language/Docs/Fields/component": {
            "title": "$:/language/Docs/Fields/component",
            "text": "The name of the component responsible for an [[alert tiddler|AlertMechanism]]"
        },
        "$:/language/Docs/Fields/current-tiddler": {
            "title": "$:/language/Docs/Fields/current-tiddler",
            "text": "Used to cache the top tiddler in a [[history list|HistoryMechanism]]"
        },
        "$:/language/Docs/Fields/created": {
            "title": "$:/language/Docs/Fields/created",
            "text": "The date a tiddler was created"
        },
        "$:/language/Docs/Fields/creator": {
            "title": "$:/language/Docs/Fields/creator",
            "text": "The name of the person who created a tiddler"
        },
        "$:/language/Docs/Fields/dependents": {
            "title": "$:/language/Docs/Fields/dependents",
            "text": "For a plugin, lists the dependent plugin titles"
        },
        "$:/language/Docs/Fields/description": {
            "title": "$:/language/Docs/Fields/description",
            "text": "The descriptive text for a plugin, or a modal dialogue"
        },
        "$:/language/Docs/Fields/draft.of": {
            "title": "$:/language/Docs/Fields/draft.of",
            "text": "For draft tiddlers, contains the title of the tiddler of which this is a draft"
        },
        "$:/language/Docs/Fields/draft.title": {
            "title": "$:/language/Docs/Fields/draft.title",
            "text": "For draft tiddlers, contains the proposed new title of the tiddler"
        },
        "$:/language/Docs/Fields/footer": {
            "title": "$:/language/Docs/Fields/footer",
            "text": "The footer text for a wizard"
        },
        "$:/language/Docs/Fields/hack-to-give-us-something-to-compare-against": {
            "title": "$:/language/Docs/Fields/hack-to-give-us-something-to-compare-against",
            "text": "A temporary storage field used in [[$:/core/templates/static.content]]"
        },
        "$:/language/Docs/Fields/icon": {
            "title": "$:/language/Docs/Fields/icon",
            "text": "The title of the tiddler containing the icon associated with a tiddler"
        },
        "$:/language/Docs/Fields/library": {
            "title": "$:/language/Docs/Fields/library",
            "text": "If set to \"yes\" indicates that a tiddler should be saved as a JavaScript library"
        },
        "$:/language/Docs/Fields/list": {
            "title": "$:/language/Docs/Fields/list",
            "text": "An ordered list of tiddler titles associated with a tiddler"
        },
        "$:/language/Docs/Fields/list-before": {
            "title": "$:/language/Docs/Fields/list-before",
            "text": "If set, the title of a tiddler before which this tiddler should be added to the ordered list of tiddler titles, or at the start of the list if this field is present but empty"
        },
        "$:/language/Docs/Fields/list-after": {
            "title": "$:/language/Docs/Fields/list-after",
            "text": "If set, the title of the tiddler after which this tiddler should be added to the ordered list of tiddler titles"
        },
        "$:/language/Docs/Fields/modified": {
            "title": "$:/language/Docs/Fields/modified",
            "text": "The date and time at which a tiddler was last modified"
        },
        "$:/language/Docs/Fields/modifier": {
            "title": "$:/language/Docs/Fields/modifier",
            "text": "The tiddler title associated with the person who last modified a tiddler"
        },
        "$:/language/Docs/Fields/name": {
            "title": "$:/language/Docs/Fields/name",
            "text": "The human readable name associated with a plugin tiddler"
        },
        "$:/language/Docs/Fields/plugin-priority": {
            "title": "$:/language/Docs/Fields/plugin-priority",
            "text": "A numerical value indicating the priority of a plugin tiddler"
        },
        "$:/language/Docs/Fields/plugin-type": {
            "title": "$:/language/Docs/Fields/plugin-type",
            "text": "The type of plugin in a plugin tiddler"
        },
        "$:/language/Docs/Fields/revision": {
            "title": "$:/language/Docs/Fields/revision",
            "text": "The revision of the tiddler held at the server"
        },
        "$:/language/Docs/Fields/released": {
            "title": "$:/language/Docs/Fields/released",
            "text": "Date of a TiddlyWiki release"
        },
        "$:/language/Docs/Fields/source": {
            "title": "$:/language/Docs/Fields/source",
            "text": "The source URL associated with a tiddler"
        },
        "$:/language/Docs/Fields/subtitle": {
            "title": "$:/language/Docs/Fields/subtitle",
            "text": "The subtitle text for a wizard"
        },
        "$:/language/Docs/Fields/tags": {
            "title": "$:/language/Docs/Fields/tags",
            "text": "A list of tags associated with a tiddler"
        },
        "$:/language/Docs/Fields/text": {
            "title": "$:/language/Docs/Fields/text",
            "text": "The body text of a tiddler"
        },
        "$:/language/Docs/Fields/title": {
            "title": "$:/language/Docs/Fields/title",
            "text": "The unique name of a tiddler"
        },
        "$:/language/Docs/Fields/type": {
            "title": "$:/language/Docs/Fields/type",
            "text": "The content type of a tiddler"
        },
        "$:/language/Docs/Fields/version": {
            "title": "$:/language/Docs/Fields/version",
            "text": "Version information for a plugin"
        },
        "$:/language/Filters/AllTiddlers": {
            "title": "$:/language/Filters/AllTiddlers",
            "text": "All tiddlers except system tiddlers"
        },
        "$:/language/Filters/RecentSystemTiddlers": {
            "title": "$:/language/Filters/RecentSystemTiddlers",
            "text": "Recently modified tiddlers, including system tiddlers"
        },
        "$:/language/Filters/RecentTiddlers": {
            "title": "$:/language/Filters/RecentTiddlers",
            "text": "Recently modified tiddlers"
        },
        "$:/language/Filters/AllTags": {
            "title": "$:/language/Filters/AllTags",
            "text": "All tags except system tags"
        },
        "$:/language/Filters/Missing": {
            "title": "$:/language/Filters/Missing",
            "text": "Missing tiddlers"
        },
        "$:/language/Filters/Drafts": {
            "title": "$:/language/Filters/Drafts",
            "text": "Draft tiddlers"
        },
        "$:/language/Filters/Orphans": {
            "title": "$:/language/Filters/Orphans",
            "text": "Orphan tiddlers"
        },
        "$:/language/Filters/SystemTiddlers": {
            "title": "$:/language/Filters/SystemTiddlers",
            "text": "System tiddlers"
        },
        "$:/language/Filters/ShadowTiddlers": {
            "title": "$:/language/Filters/ShadowTiddlers",
            "text": "Shadow tiddlers"
        },
        "$:/language/Filters/OverriddenShadowTiddlers": {
            "title": "$:/language/Filters/OverriddenShadowTiddlers",
            "text": "Overridden shadow tiddlers"
        },
        "$:/language/Filters/SystemTags": {
            "title": "$:/language/Filters/SystemTags",
            "text": "System tags"
        },
        "$:/language/Filters/StoryList": {
            "title": "$:/language/Filters/StoryList",
            "text": "Tiddlers in the story river, excluding <$text text=\"$:/AdvancedSearch\"/>"
        },
        "$:/language/Filters/TypedTiddlers": {
            "title": "$:/language/Filters/TypedTiddlers",
            "text": "Non wiki-text tiddlers"
        },
        "GettingStarted": {
            "title": "GettingStarted",
            "text": "\\define lingo-base() $:/language/ControlPanel/Basics/\nWelcome to ~TiddlyWiki and the ~TiddlyWiki community\n\nBefore you start storing important information in ~TiddlyWiki it is important to make sure that you can reliably save changes. See http://tiddlywiki.com/#GettingStarted for details\n\n!! Set up this ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\nSee the [[control panel|$:/ControlPanel]] for more options.\n"
        },
        "$:/language/Help/build": {
            "title": "$:/language/Help/build",
            "description": "Automatically run configured commands",
            "text": "Build the specified build targets for the current wiki. If no build targets are specified then all available targets will be built.\n\n```\n--build <target> [<target> ...]\n```\n\nBuild targets are defined in the `tiddlywiki.info` file of a wiki folder.\n\n"
        },
        "$:/language/Help/clearpassword": {
            "title": "$:/language/Help/clearpassword",
            "description": "Clear a password for subsequent crypto operations",
            "text": "Clear the password for subsequent crypto operations\n\n```\n--clearpassword\n```\n"
        },
        "$:/language/Help/default": {
            "title": "$:/language/Help/default",
            "text": "\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\nusage: tiddlywiki [<wikifolder>] [--<command> [<args>...]...]\n```\n\nAvailable commands:\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link>: <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\nTo get detailed help on a command:\n\n```\ntiddlywiki --help <command>\n```\n"
        },
        "$:/language/Help/editions": {
            "title": "$:/language/Help/editions",
            "description": "Lists the available editions of TiddlyWiki",
            "text": "Lists the names and descriptions of the available editions. You can create a new wiki of a specified edition with the `--init` command.\n\n```\n--editions\n```\n"
        },
        "$:/language/Help/fetch": {
            "title": "$:/language/Help/fetch",
            "description": "Fetch tiddlers from wiki by URL",
            "text": "Fetch one or more files over HTTP/HTTPS, and import the tiddlers matching a filter, optionally transforming the incoming titles.\n\n```\n--fetch file <url> <import-filter> <transform-filter>\n--fetch files <url-filter> <import-filter> <transform-filter>\n```\n\nWith the \"file\" variant only a single file is fetched and the first parameter is the URL of the file to read.\n\nWith the \"files\" variant, multiple files are fetched and the first parameter is a filter yielding a list of URLs of the files to read. For example, given a set of tiddlers tagged \"remote-server\" that have a field \"url\" the filter `[tag[remote-server]get[url]]` will retrieve all the available URLs.\n\nThe `<import-filter>` parameter specifies a filter determining which tiddlers are imported. It defaults to `[all[tiddlers]]` if not provided.\n\nThe `<transform-filter>` parameter specifies an optional filter that transforms the titles of the imported tiddlers. For example, `[addprefix[$:/myimports/]]` would add the prefix `$:/myimports/` to each title.\n\nPreceding the `--fetch` command with `--verbose` will output progress information during the import.\n\nNote that TiddlyWiki will not fetch an older version of an already loaded plugin.\n\nThe following example retrieves all the non-system tiddlers from http://tiddlywiki.com and saves them to a JSON file:\n\n```\ntiddlywiki --verbose --fetch file \"http://tiddlywiki.com/\" \"[!is[system]]\" \"\" --rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[!is[system]]\"\n```\n\n"
        },
        "$:/language/Help/help": {
            "title": "$:/language/Help/help",
            "description": "Display help for TiddlyWiki commands",
            "text": "Displays help text for a command:\n\n```\n--help [<command>]\n```\n\nIf the command name is omitted then a list of available commands is displayed.\n"
        },
        "$:/language/Help/init": {
            "title": "$:/language/Help/init",
            "description": "Initialise a new wiki folder",
            "text": "Initialise an empty [[WikiFolder|WikiFolders]] with a copy of the specified edition.\n\n```\n--init <edition> [<edition> ...]\n```\n\nFor example:\n\n```\ntiddlywiki ./MyWikiFolder --init empty\n```\n\nNote:\n\n* The wiki folder directory will be created if necessary\n* The \"edition\" defaults to ''empty''\n* The init command will fail if the wiki folder is not empty\n* The init command removes any `includeWikis` definitions in the edition's `tiddlywiki.info` file\n* When multiple editions are specified, editions initialised later will overwrite any files shared with earlier editions (so, the final `tiddlywiki.info` file will be copied from the last edition)\n* `--editions` returns a list of available editions\n"
        },
        "$:/language/Help/load": {
            "title": "$:/language/Help/load",
            "description": "Load tiddlers from a file",
            "text": "Load tiddlers from 2.x.x TiddlyWiki files (`.html`), `.tiddler`, `.tid`, `.json` or other files\n\n```\n--load <filepath>\n```\n\nTo load tiddlers from an encrypted TiddlyWiki file you should first specify the password with the PasswordCommand. For example:\n\n```\ntiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html\n```\n\nNote that TiddlyWiki will not load an older version of an already loaded plugin.\n"
        },
        "$:/language/Help/makelibrary": {
            "title": "$:/language/Help/makelibrary",
            "description": "Construct library plugin required by upgrade process",
            "text": "Constructs the `$:/UpgradeLibrary` tiddler for the upgrade process.\n\nThe upgrade library is formatted as an ordinary plugin tiddler with the plugin type `library`. It contains a copy of each of the plugins, themes and language packs available within the TiddlyWiki5 repository.\n\nThis command is intended for internal use; it is only relevant to users constructing a custom upgrade procedure.\n\n```\n--makelibrary <title>\n```\n\nThe title argument defaults to `$:/UpgradeLibrary`.\n"
        },
        "$:/language/Help/notfound": {
            "title": "$:/language/Help/notfound",
            "text": "No such help item"
        },
        "$:/language/Help/output": {
            "title": "$:/language/Help/output",
            "description": "Set the base output directory for subsequent commands",
            "text": "Sets the base output directory for subsequent commands. The default output directory is the `output` subdirectory of the edition directory.\n\n```\n--output <pathname>\n```\n\nIf the specified pathname is relative then it is resolved relative to the current working directory. For example `--output .` sets the output directory to the current working directory.\n\n"
        },
        "$:/language/Help/password": {
            "title": "$:/language/Help/password",
            "description": "Set a password for subsequent crypto operations",
            "text": "Set a password for subsequent crypto operations\n\n```\n--password <password>\n```\n\n''Note'': This should not be used for serving TiddlyWiki with password protection. Instead, see the password option under the [[ServerCommand]].\n"
        },
        "$:/language/Help/rendertiddler": {
            "title": "$:/language/Help/rendertiddler",
            "description": "Render an individual tiddler as a specified ContentType",
            "text": "Render an individual tiddler as a specified ContentType, defaulting to `text/html` and save it to the specified filename.\n\nOptionally the title of a template tiddler can be specified, in which case the template tiddler is rendered with the \"currentTiddler\" variable set to the tiddler that is being rendered (the first parameter value).\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--rendertiddler <title> <filename> [<type>] [<template>] [<name>] [<value>]\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n\nFor example, the following command saves all tiddlers matching the filter `[tag[done]]` to a JSON file titled `output.json` by employing the core template `$:/core/templates/exporters/JsonFile`.\n\n```\n--rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[tag[done]]\"\n```\n"
        },
        "$:/language/Help/rendertiddlers": {
            "title": "$:/language/Help/rendertiddlers",
            "description": "Render tiddlers matching a filter to a specified ContentType",
            "text": "Render a set of tiddlers matching a filter to separate files of a specified ContentType (defaults to `text/html`) and extension (defaults to `.html`).\n\n```\n--rendertiddlers <filter> <template> <pathname> [<type>] [<extension>] [\"noclean\"]\n```\n\nFor example:\n\n```\n--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny files in the target directory are deleted unless the ''noclean'' flag is specified. The target directory is recursively created if it is missing.\n"
        },
        "$:/language/Help/savetiddler": {
            "title": "$:/language/Help/savetiddler",
            "description": "Saves a raw tiddler to a file",
            "text": "Saves an individual tiddler in its raw text or binary format to the specified filename.\n\n```\n--savetiddler <title> <filename>\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n"
        },
        "$:/language/Help/savetiddlers": {
            "title": "$:/language/Help/savetiddlers",
            "description": "Saves a group of raw tiddlers to a directory",
            "text": "Saves a group of tiddlers in their raw text or binary format to the specified directory.\n\n```\n--savetiddlers <filter> <pathname> [\"noclean\"]\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nThe output directory is cleared of existing files before saving the specified files. The deletion can be disabled by specifying the ''noclean'' flag.\n\nAny missing directories in the pathname are automatically created.\n"
        },
        "$:/language/Help/server": {
            "title": "$:/language/Help/server",
            "description": "Provides an HTTP server interface to TiddlyWiki",
            "text": "The server built in to TiddlyWiki5 is very simple. Although compatible with TiddlyWeb it doesn't support many of the features needed for robust Internet-facing usage.\n\nAt the root, it serves a rendering of a specified tiddler. Away from the root, it serves individual tiddlers encoded in JSON, and supports the basic HTTP operations for `GET`, `PUT` and `DELETE`.\n\n```\n--server <port> <roottiddler> <rendertype> <servetype> <username> <password> <host> <pathprefix>\n```\n\nThe parameters are:\n\n* ''port'' - port number to serve from (defaults to \"8080\")\n* ''roottiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''rendertype'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''servetype'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''username'' - the default username for signing edits\n* ''password'' - optional password for basic authentication\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''pathprefix'' - optional prefix for paths\n\nIf the password parameter is specified then the browser will prompt the user for the username and password. Note that the password is transmitted in plain text so this implementation isn't suitable for general use.\n\nFor example:\n\n```\n--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n\nThe username and password can be specified as empty strings if you need to set the hostname or pathprefix and don't want to require a password:\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\nTo run multiple TiddlyWiki servers at the same time you'll need to put each one on a different port.\n"
        },
        "$:/language/Help/setfield": {
            "title": "$:/language/Help/setfield",
            "description": "Prepares external tiddlers for use",
            "text": "//Note that this command is experimental and may change or be replaced before being finalised//\n\nSets the specified field of a group of tiddlers to the result of wikifying a template tiddler with the `currentTiddler` variable set to the tiddler.\n\n```\n--setfield <filter> <fieldname> <templatetitle> <rendertype>\n```\n\nThe parameters are:\n\n* ''filter'' - filter identifying the tiddlers to be affected\n* ''fieldname'' - the field to modify (defaults to \"text\")\n* ''templatetitle'' - the tiddler to wikify into the specified field. If blank or missing then the specified field is deleted\n* ''rendertype'' - the text type to render (defaults to \"text/plain\"; \"text/html\" can be used to include HTML tags)\n"
        },
        "$:/language/Help/unpackplugin": {
            "title": "$:/language/Help/unpackplugin",
            "description": "Unpack the payload tiddlers from a plugin",
            "text": "Extract the payload tiddlers from a plugin, creating them as ordinary tiddlers:\n\n```\n--unpackplugin <title>\n```\n"
        },
        "$:/language/Help/verbose": {
            "title": "$:/language/Help/verbose",
            "description": "Triggers verbose output mode",
            "text": "Triggers verbose output, useful for debugging\n\n```\n--verbose\n```\n"
        },
        "$:/language/Help/version": {
            "title": "$:/language/Help/version",
            "description": "Displays the version number of TiddlyWiki",
            "text": "Displays the version number of TiddlyWiki.\n\n```\n--version\n```\n"
        },
        "$:/language/Import/Imported/Hint": {
            "title": "$:/language/Import/Imported/Hint",
            "text": "The following tiddlers were imported:"
        },
        "$:/language/Import/Listing/Cancel/Caption": {
            "title": "$:/language/Import/Listing/Cancel/Caption",
            "text": "Cancel"
        },
        "$:/language/Import/Listing/Hint": {
            "title": "$:/language/Import/Listing/Hint",
            "text": "These tiddlers are ready to import:"
        },
        "$:/language/Import/Listing/Import/Caption": {
            "title": "$:/language/Import/Listing/Import/Caption",
            "text": "Import"
        },
        "$:/language/Import/Listing/Select/Caption": {
            "title": "$:/language/Import/Listing/Select/Caption",
            "text": "Select"
        },
        "$:/language/Import/Listing/Status/Caption": {
            "title": "$:/language/Import/Listing/Status/Caption",
            "text": "Status"
        },
        "$:/language/Import/Listing/Title/Caption": {
            "title": "$:/language/Import/Listing/Title/Caption",
            "text": "Title"
        },
        "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible": {
            "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible",
            "text": "Blocked incompatible or obsolete plugin"
        },
        "$:/language/Import/Upgrader/Plugins/Suppressed/Version": {
            "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Version",
            "text": "Blocked plugin (due to incoming <<incoming>> being older than existing <<existing>>)"
        },
        "$:/language/Import/Upgrader/Plugins/Upgraded": {
            "title": "$:/language/Import/Upgrader/Plugins/Upgraded",
            "text": "Upgraded plugin from <<incoming>> to <<upgraded>>"
        },
        "$:/language/Import/Upgrader/State/Suppressed": {
            "title": "$:/language/Import/Upgrader/State/Suppressed",
            "text": "Blocked temporary state tiddler"
        },
        "$:/language/Import/Upgrader/System/Suppressed": {
            "title": "$:/language/Import/Upgrader/System/Suppressed",
            "text": "Blocked system tiddler"
        },
        "$:/language/Import/Upgrader/ThemeTweaks/Created": {
            "title": "$:/language/Import/Upgrader/ThemeTweaks/Created",
            "text": "Migrated theme tweak from <$text text=<<from>>/>"
        },
        "$:/language/AboveStory/ClassicPlugin/Warning": {
            "title": "$:/language/AboveStory/ClassicPlugin/Warning",
            "text": "It looks like you are trying to load a plugin designed for ~TiddlyWiki Classic. Please note that [[these plugins do not work with TiddlyWiki version 5.x.x|http://tiddlywiki.com/#TiddlyWikiClassic]]. ~TiddlyWiki Classic plugins detected:"
        },
        "$:/language/BinaryWarning/Prompt": {
            "title": "$:/language/BinaryWarning/Prompt",
            "text": "This tiddler contains binary data"
        },
        "$:/language/ClassicWarning/Hint": {
            "title": "$:/language/ClassicWarning/Hint",
            "text": "This tiddler is written in TiddlyWiki Classic wiki text format, which is not fully compatible with TiddlyWiki version 5. See http://tiddlywiki.com/static/Upgrading.html for more details."
        },
        "$:/language/ClassicWarning/Upgrade/Caption": {
            "title": "$:/language/ClassicWarning/Upgrade/Caption",
            "text": "upgrade"
        },
        "$:/language/CloseAll/Button": {
            "title": "$:/language/CloseAll/Button",
            "text": "close all"
        },
        "$:/language/ColourPicker/Recent": {
            "title": "$:/language/ColourPicker/Recent",
            "text": "Recent:"
        },
        "$:/language/ConfirmCancelTiddler": {
            "title": "$:/language/ConfirmCancelTiddler",
            "text": "Do you wish to discard changes to the tiddler \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmDeleteTiddler": {
            "title": "$:/language/ConfirmDeleteTiddler",
            "text": "Do you wish to delete the tiddler \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmOverwriteTiddler": {
            "title": "$:/language/ConfirmOverwriteTiddler",
            "text": "Do you wish to overwrite the tiddler \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmEditShadowTiddler": {
            "title": "$:/language/ConfirmEditShadowTiddler",
            "text": "You are about to edit a ShadowTiddler. Any changes will override the default system making future upgrades non-trivial. Are you sure you want to edit \"<$text text=<<title>>/>\"?"
        },
        "$:/language/Count": {
            "title": "$:/language/Count",
            "text": "count"
        },
        "$:/language/DefaultNewTiddlerTitle": {
            "title": "$:/language/DefaultNewTiddlerTitle",
            "text": "New Tiddler"
        },
        "$:/language/DropMessage": {
            "title": "$:/language/DropMessage",
            "text": "Drop here (or use the 'Escape' key to cancel)"
        },
        "$:/language/Encryption/Cancel": {
            "title": "$:/language/Encryption/Cancel",
            "text": "Cancel"
        },
        "$:/language/Encryption/ConfirmClearPassword": {
            "title": "$:/language/Encryption/ConfirmClearPassword",
            "text": "Do you wish to clear the password? This will remove the encryption applied when saving this wiki"
        },
        "$:/language/Encryption/PromptSetPassword": {
            "title": "$:/language/Encryption/PromptSetPassword",
            "text": "Set a new password for this TiddlyWiki"
        },
        "$:/language/Encryption/Username": {
            "title": "$:/language/Encryption/Username",
            "text": "Username"
        },
        "$:/language/Encryption/Password": {
            "title": "$:/language/Encryption/Password",
            "text": "Password"
        },
        "$:/language/Encryption/RepeatPassword": {
            "title": "$:/language/Encryption/RepeatPassword",
            "text": "Repeat password"
        },
        "$:/language/Encryption/PasswordNoMatch": {
            "title": "$:/language/Encryption/PasswordNoMatch",
            "text": "Passwords do not match"
        },
        "$:/language/Encryption/SetPassword": {
            "title": "$:/language/Encryption/SetPassword",
            "text": "Set password"
        },
        "$:/language/Error/Caption": {
            "title": "$:/language/Error/Caption",
            "text": "Error"
        },
        "$:/language/Error/EditConflict": {
            "title": "$:/language/Error/EditConflict",
            "text": "File changed on server"
        },
        "$:/language/Error/Filter": {
            "title": "$:/language/Error/Filter",
            "text": "Filter error"
        },
        "$:/language/Error/FilterSyntax": {
            "title": "$:/language/Error/FilterSyntax",
            "text": "Syntax error in filter expression"
        },
        "$:/language/Error/IsFilterOperator": {
            "title": "$:/language/Error/IsFilterOperator",
            "text": "Filter Error: Unknown operand for the 'is' filter operator"
        },
        "$:/language/Error/LoadingPluginLibrary": {
            "title": "$:/language/Error/LoadingPluginLibrary",
            "text": "Error loading plugin library"
        },
        "$:/language/Error/RecursiveTransclusion": {
            "title": "$:/language/Error/RecursiveTransclusion",
            "text": "Recursive transclusion error in transclude widget"
        },
        "$:/language/Error/RetrievingSkinny": {
            "title": "$:/language/Error/RetrievingSkinny",
            "text": "Error retrieving skinny tiddler list"
        },
        "$:/language/Error/SavingToTWEdit": {
            "title": "$:/language/Error/SavingToTWEdit",
            "text": "Error saving to TWEdit"
        },
        "$:/language/Error/WhileSaving": {
            "title": "$:/language/Error/WhileSaving",
            "text": "Error while saving"
        },
        "$:/language/Error/XMLHttpRequest": {
            "title": "$:/language/Error/XMLHttpRequest",
            "text": "XMLHttpRequest error code"
        },
        "$:/language/InternalJavaScriptError/Title": {
            "title": "$:/language/InternalJavaScriptError/Title",
            "text": "Internal JavaScript Error"
        },
        "$:/language/InternalJavaScriptError/Hint": {
            "title": "$:/language/InternalJavaScriptError/Hint",
            "text": "Well, this is embarrassing. It is recommended that you restart TiddlyWiki by refreshing your browser"
        },
        "$:/language/InvalidFieldName": {
            "title": "$:/language/InvalidFieldName",
            "text": "Illegal characters in field name \"<$text text=<<fieldName>>/>\". Fields can only contain lowercase letters, digits and the characters underscore (`_`), hyphen (`-`) and period (`.`)"
        },
        "$:/language/LazyLoadingWarning": {
            "title": "$:/language/LazyLoadingWarning",
            "text": "<p>Loading external text from ''<$text text={{!!_canonical_uri}}/>''</p><p>If this message doesn't disappear you may be using a browser that doesn't support external text in this configuration. See http://tiddlywiki.com/#ExternalText</p>"
        },
        "$:/language/LoginToTiddlySpace": {
            "title": "$:/language/LoginToTiddlySpace",
            "text": "Login to TiddlySpace"
        },
        "$:/language/Manager/Controls/FilterByTag/None": {
            "title": "$:/language/Manager/Controls/FilterByTag/None",
            "text": "(none)"
        },
        "$:/language/Manager/Controls/FilterByTag/Prompt": {
            "title": "$:/language/Manager/Controls/FilterByTag/Prompt",
            "text": "Filter by tag:"
        },
        "$:/language/Manager/Controls/Order/Prompt": {
            "title": "$:/language/Manager/Controls/Order/Prompt",
            "text": "Reverse order"
        },
        "$:/language/Manager/Controls/Search/Placeholder": {
            "title": "$:/language/Manager/Controls/Search/Placeholder",
            "text": "Search"
        },
        "$:/language/Manager/Controls/Search/Prompt": {
            "title": "$:/language/Manager/Controls/Search/Prompt",
            "text": "Search:"
        },
        "$:/language/Manager/Controls/Show/Option/Tags": {
            "title": "$:/language/Manager/Controls/Show/Option/Tags",
            "text": "tags"
        },
        "$:/language/Manager/Controls/Show/Option/Tiddlers": {
            "title": "$:/language/Manager/Controls/Show/Option/Tiddlers",
            "text": "tiddlers"
        },
        "$:/language/Manager/Controls/Show/Prompt": {
            "title": "$:/language/Manager/Controls/Show/Prompt",
            "text": "Show:"
        },
        "$:/language/Manager/Controls/Sort/Prompt": {
            "title": "$:/language/Manager/Controls/Sort/Prompt",
            "text": "Sort by:"
        },
        "$:/language/Manager/Item/Colour": {
            "title": "$:/language/Manager/Item/Colour",
            "text": "Colour"
        },
        "$:/language/Manager/Item/Fields": {
            "title": "$:/language/Manager/Item/Fields",
            "text": "Fields"
        },
        "$:/language/Manager/Item/Icon/None": {
            "title": "$:/language/Manager/Item/Icon/None",
            "text": "(none)"
        },
        "$:/language/Manager/Item/Icon": {
            "title": "$:/language/Manager/Item/Icon",
            "text": "Icon"
        },
        "$:/language/Manager/Item/RawText": {
            "title": "$:/language/Manager/Item/RawText",
            "text": "Raw text"
        },
        "$:/language/Manager/Item/Tags": {
            "title": "$:/language/Manager/Item/Tags",
            "text": "Tags"
        },
        "$:/language/Manager/Item/Tools": {
            "title": "$:/language/Manager/Item/Tools",
            "text": "Tools"
        },
        "$:/language/Manager/Item/WikifiedText": {
            "title": "$:/language/Manager/Item/WikifiedText",
            "text": "Wikified text"
        },
        "$:/language/MissingTiddler/Hint": {
            "title": "$:/language/MissingTiddler/Hint",
            "text": "Missing tiddler \"<$text text=<<currentTiddler>>/>\" - click {{$:/core/images/edit-button}} to create"
        },
        "$:/language/No": {
            "title": "$:/language/No",
            "text": "No"
        },
        "$:/language/OfficialPluginLibrary": {
            "title": "$:/language/OfficialPluginLibrary",
            "text": "Official ~TiddlyWiki Plugin Library"
        },
        "$:/language/OfficialPluginLibrary/Hint": {
            "title": "$:/language/OfficialPluginLibrary/Hint",
            "text": "The official ~TiddlyWiki plugin library at tiddlywiki.com. Plugins, themes and language packs are maintained by the core team."
        },
        "$:/language/PluginReloadWarning": {
            "title": "$:/language/PluginReloadWarning",
            "text": "Please save {{$:/core/ui/Buttons/save-wiki}} and reload {{$:/core/ui/Buttons/refresh}} to allow changes to plugins to take effect"
        },
        "$:/language/RecentChanges/DateFormat": {
            "title": "$:/language/RecentChanges/DateFormat",
            "text": "DDth MMM YYYY"
        },
        "$:/language/SystemTiddler/Tooltip": {
            "title": "$:/language/SystemTiddler/Tooltip",
            "text": "This is a system tiddler"
        },
        "$:/language/SystemTiddlers/Include/Prompt": {
            "title": "$:/language/SystemTiddlers/Include/Prompt",
            "text": "Include system tiddlers"
        },
        "$:/language/TagManager/Colour/Heading": {
            "title": "$:/language/TagManager/Colour/Heading",
            "text": "Colour"
        },
        "$:/language/TagManager/Count/Heading": {
            "title": "$:/language/TagManager/Count/Heading",
            "text": "Count"
        },
        "$:/language/TagManager/Icon/Heading": {
            "title": "$:/language/TagManager/Icon/Heading",
            "text": "Icon"
        },
        "$:/language/TagManager/Info/Heading": {
            "title": "$:/language/TagManager/Info/Heading",
            "text": "Info"
        },
        "$:/language/TagManager/Tag/Heading": {
            "title": "$:/language/TagManager/Tag/Heading",
            "text": "Tag"
        },
        "$:/language/Tiddler/DateFormat": {
            "title": "$:/language/Tiddler/DateFormat",
            "text": "DDth MMM YYYY at hh12:0mmam"
        },
        "$:/language/UnsavedChangesWarning": {
            "title": "$:/language/UnsavedChangesWarning",
            "text": "You have unsaved changes in TiddlyWiki"
        },
        "$:/language/Yes": {
            "title": "$:/language/Yes",
            "text": "Yes"
        },
        "$:/language/Modals/Download": {
            "title": "$:/language/Modals/Download",
            "type": "text/vnd.tiddlywiki",
            "subtitle": "Download changes",
            "footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
            "help": "http://tiddlywiki.com/static/DownloadingChanges.html",
            "text": "Your browser only supports manual saving.\n\nTo save your modified wiki, right click on the download link below and select \"Download file\" or \"Save file\", and then choose the folder and filename.\n\n//You can marginally speed things up by clicking the link with the control key (Windows) or the options/alt key (Mac OS X). You will not be prompted for the folder or filename, but your browser is likely to give it an unrecognisable name -- you may need to rename the file to include an `.html` extension before you can do anything useful with it.//\n\nOn smartphones that do not allow files to be downloaded you can instead bookmark the link, and then sync your bookmarks to a desktop computer from where the wiki can be saved normally.\n"
        },
        "$:/language/Modals/SaveInstructions": {
            "title": "$:/language/Modals/SaveInstructions",
            "type": "text/vnd.tiddlywiki",
            "subtitle": "Save your work",
            "footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
            "help": "http://tiddlywiki.com/static/SavingChanges.html",
            "text": "Your changes to this wiki need to be saved as a ~TiddlyWiki HTML file.\n\n!!! Desktop browsers\n\n# Select ''Save As'' from the ''File'' menu\n# Choose a filename and location\n#* Some browsers also require you to explicitly specify the file saving format as ''Webpage, HTML only'' or similar\n# Close this tab\n\n!!! Smartphone browsers\n\n# Create a bookmark to this page\n#* If you've got iCloud or Google Sync set up then the bookmark will automatically sync to your desktop where you can open it and save it as above\n# Close this tab\n\n//If you open the bookmark again in Mobile Safari you will see this message again. If you want to go ahead and use the file, just click the ''close'' button below//\n"
        },
        "$:/config/NewJournal/Title": {
            "title": "$:/config/NewJournal/Title",
            "text": "DDth MMM YYYY"
        },
        "$:/config/NewJournal/Text": {
            "title": "$:/config/NewJournal/Text",
            "text": ""
        },
        "$:/config/NewJournal/Tags": {
            "title": "$:/config/NewJournal/Tags",
            "text": "Journal"
        },
        "$:/language/Notifications/Save/Done": {
            "title": "$:/language/Notifications/Save/Done",
            "text": "Saved wiki"
        },
        "$:/language/Notifications/Save/Starting": {
            "title": "$:/language/Notifications/Save/Starting",
            "text": "Starting to save wiki"
        },
        "$:/language/Search/DefaultResults/Caption": {
            "title": "$:/language/Search/DefaultResults/Caption",
            "text": "List"
        },
        "$:/language/Search/Filter/Caption": {
            "title": "$:/language/Search/Filter/Caption",
            "text": "Filter"
        },
        "$:/language/Search/Filter/Hint": {
            "title": "$:/language/Search/Filter/Hint",
            "text": "Search via a [[filter expression|http://tiddlywiki.com/static/Filters.html]]"
        },
        "$:/language/Search/Filter/Matches": {
            "title": "$:/language/Search/Filter/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/Search/Matches": {
            "title": "$:/language/Search/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/Search/Matches/All": {
            "title": "$:/language/Search/Matches/All",
            "text": "All matches:"
        },
        "$:/language/Search/Matches/Title": {
            "title": "$:/language/Search/Matches/Title",
            "text": "Title matches:"
        },
        "$:/language/Search/Search": {
            "title": "$:/language/Search/Search",
            "text": "Search"
        },
        "$:/language/Search/Search/TooShort": {
            "title": "$:/language/Search/Search/TooShort",
            "text": "Search text too short"
        },
        "$:/language/Search/Shadows/Caption": {
            "title": "$:/language/Search/Shadows/Caption",
            "text": "Shadows"
        },
        "$:/language/Search/Shadows/Hint": {
            "title": "$:/language/Search/Shadows/Hint",
            "text": "Search for shadow tiddlers"
        },
        "$:/language/Search/Shadows/Matches": {
            "title": "$:/language/Search/Shadows/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/Search/Standard/Caption": {
            "title": "$:/language/Search/Standard/Caption",
            "text": "Standard"
        },
        "$:/language/Search/Standard/Hint": {
            "title": "$:/language/Search/Standard/Hint",
            "text": "Search for standard tiddlers"
        },
        "$:/language/Search/Standard/Matches": {
            "title": "$:/language/Search/Standard/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/Search/System/Caption": {
            "title": "$:/language/Search/System/Caption",
            "text": "System"
        },
        "$:/language/Search/System/Hint": {
            "title": "$:/language/Search/System/Hint",
            "text": "Search for system tiddlers"
        },
        "$:/language/Search/System/Matches": {
            "title": "$:/language/Search/System/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/SideBar/All/Caption": {
            "title": "$:/language/SideBar/All/Caption",
            "text": "All"
        },
        "$:/language/SideBar/Contents/Caption": {
            "title": "$:/language/SideBar/Contents/Caption",
            "text": "Contents"
        },
        "$:/language/SideBar/Drafts/Caption": {
            "title": "$:/language/SideBar/Drafts/Caption",
            "text": "Drafts"
        },
        "$:/language/SideBar/Missing/Caption": {
            "title": "$:/language/SideBar/Missing/Caption",
            "text": "Missing"
        },
        "$:/language/SideBar/More/Caption": {
            "title": "$:/language/SideBar/More/Caption",
            "text": "More"
        },
        "$:/language/SideBar/Open/Caption": {
            "title": "$:/language/SideBar/Open/Caption",
            "text": "Open"
        },
        "$:/language/SideBar/Orphans/Caption": {
            "title": "$:/language/SideBar/Orphans/Caption",
            "text": "Orphans"
        },
        "$:/language/SideBar/Recent/Caption": {
            "title": "$:/language/SideBar/Recent/Caption",
            "text": "Recent"
        },
        "$:/language/SideBar/Shadows/Caption": {
            "title": "$:/language/SideBar/Shadows/Caption",
            "text": "Shadows"
        },
        "$:/language/SideBar/System/Caption": {
            "title": "$:/language/SideBar/System/Caption",
            "text": "System"
        },
        "$:/language/SideBar/Tags/Caption": {
            "title": "$:/language/SideBar/Tags/Caption",
            "text": "Tags"
        },
        "$:/language/SideBar/Tags/Untagged/Caption": {
            "title": "$:/language/SideBar/Tags/Untagged/Caption",
            "text": "untagged"
        },
        "$:/language/SideBar/Tools/Caption": {
            "title": "$:/language/SideBar/Tools/Caption",
            "text": "Tools"
        },
        "$:/language/SideBar/Types/Caption": {
            "title": "$:/language/SideBar/Types/Caption",
            "text": "Types"
        },
        "$:/SiteSubtitle": {
            "title": "$:/SiteSubtitle",
            "text": "a non-linear personal web notebook"
        },
        "$:/SiteTitle": {
            "title": "$:/SiteTitle",
            "text": "My ~TiddlyWiki"
        },
        "$:/language/Snippets/ListByTag": {
            "title": "$:/language/Snippets/ListByTag",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "List of tiddlers by tag",
            "text": "<<list-links \"[tag[task]sort[title]]\">>\n"
        },
        "$:/language/Snippets/MacroDefinition": {
            "title": "$:/language/Snippets/MacroDefinition",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "Macro definition",
            "text": "\\define macroName(param1:\"default value\",param2)\nText of the macro\n\\end\n"
        },
        "$:/language/Snippets/Table4x3": {
            "title": "$:/language/Snippets/Table4x3",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "Table with 4 columns by 3 rows",
            "text": "|! |!Alpha |!Beta |!Gamma |!Delta |\n|!One | | | | |\n|!Two | | | | |\n|!Three | | | | |\n"
        },
        "$:/language/Snippets/TableOfContents": {
            "title": "$:/language/Snippets/TableOfContents",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "Table of Contents",
            "text": "<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'TableOfContents'>>\n\n</div>"
        },
        "$:/language/ThemeTweaks/ThemeTweaks": {
            "title": "$:/language/ThemeTweaks/ThemeTweaks",
            "text": "Theme Tweaks"
        },
        "$:/language/ThemeTweaks/ThemeTweaks/Hint": {
            "title": "$:/language/ThemeTweaks/ThemeTweaks/Hint",
            "text": "You can tweak certain aspects of the ''Vanilla'' theme."
        },
        "$:/language/ThemeTweaks/Options": {
            "title": "$:/language/ThemeTweaks/Options",
            "text": "Options"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout",
            "text": "Sidebar layout"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid",
            "text": "Fixed story, fluid sidebar"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed",
            "text": "Fluid story, fixed sidebar"
        },
        "$:/language/ThemeTweaks/Options/StickyTitles": {
            "title": "$:/language/ThemeTweaks/Options/StickyTitles",
            "text": "Sticky titles"
        },
        "$:/language/ThemeTweaks/Options/StickyTitles/Hint": {
            "title": "$:/language/ThemeTweaks/Options/StickyTitles/Hint",
            "text": "Causes tiddler titles to \"stick\" to the top of the browser window. Caution: Does not work at all with Chrome, and causes some layout issues in Firefox"
        },
        "$:/language/ThemeTweaks/Options/CodeWrapping": {
            "title": "$:/language/ThemeTweaks/Options/CodeWrapping",
            "text": "Wrap long lines in code blocks"
        },
        "$:/language/ThemeTweaks/Settings": {
            "title": "$:/language/ThemeTweaks/Settings",
            "text": "Settings"
        },
        "$:/language/ThemeTweaks/Settings/FontFamily": {
            "title": "$:/language/ThemeTweaks/Settings/FontFamily",
            "text": "Font family"
        },
        "$:/language/ThemeTweaks/Settings/CodeFontFamily": {
            "title": "$:/language/ThemeTweaks/Settings/CodeFontFamily",
            "text": "Code font family"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImage": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImage",
            "text": "Page background image"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment",
            "text": "Page background image attachment"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll",
            "text": "Scroll with tiddlers"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed",
            "text": "Fixed to window"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize",
            "text": "Page background image size"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto",
            "text": "Auto"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover",
            "text": "Cover"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain",
            "text": "Contain"
        },
        "$:/language/ThemeTweaks/Metrics": {
            "title": "$:/language/ThemeTweaks/Metrics",
            "text": "Sizes"
        },
        "$:/language/ThemeTweaks/Metrics/FontSize": {
            "title": "$:/language/ThemeTweaks/Metrics/FontSize",
            "text": "Font size"
        },
        "$:/language/ThemeTweaks/Metrics/LineHeight": {
            "title": "$:/language/ThemeTweaks/Metrics/LineHeight",
            "text": "Line height"
        },
        "$:/language/ThemeTweaks/Metrics/BodyFontSize": {
            "title": "$:/language/ThemeTweaks/Metrics/BodyFontSize",
            "text": "Font size for tiddler body"
        },
        "$:/language/ThemeTweaks/Metrics/BodyLineHeight": {
            "title": "$:/language/ThemeTweaks/Metrics/BodyLineHeight",
            "text": "Line height for tiddler body"
        },
        "$:/language/ThemeTweaks/Metrics/StoryLeft": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryLeft",
            "text": "Story left position"
        },
        "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint",
            "text": "how far the left margin of the story river<br>(tiddler area) is from the left of the page"
        },
        "$:/language/ThemeTweaks/Metrics/StoryTop": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryTop",
            "text": "Story top position"
        },
        "$:/language/ThemeTweaks/Metrics/StoryTop/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryTop/Hint",
            "text": "how far the top margin of the story river<br>is from the top of the page"
        },
        "$:/language/ThemeTweaks/Metrics/StoryRight": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryRight",
            "text": "Story right"
        },
        "$:/language/ThemeTweaks/Metrics/StoryRight/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryRight/Hint",
            "text": "how far the left margin of the sidebar <br>is from the left of the page"
        },
        "$:/language/ThemeTweaks/Metrics/StoryWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryWidth",
            "text": "Story width"
        },
        "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint",
            "text": "the overall width of the story river"
        },
        "$:/language/ThemeTweaks/Metrics/TiddlerWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth",
            "text": "Tiddler width"
        },
        "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint",
            "text": "within the story river"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint",
            "text": "Sidebar breakpoint"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint",
            "text": "the minimum page width at which the story<br>river and sidebar will appear side by side"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth",
            "text": "Sidebar width"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint",
            "text": "the width of the sidebar in fluid-fixed layout"
        },
        "$:/language/TiddlerInfo/Advanced/Caption": {
            "title": "$:/language/TiddlerInfo/Advanced/Caption",
            "text": "Advanced"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint",
            "text": "none"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading",
            "text": "Plugin Details"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint",
            "text": "This plugin contains the following shadow tiddlers:"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading",
            "text": "Shadow Status"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint",
            "text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is not a shadow tiddler"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint",
            "text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is a shadow tiddler"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source",
            "text": "It is defined in the plugin <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint",
            "text": "It is overridden by an ordinary tiddler"
        },
        "$:/language/TiddlerInfo/Fields/Caption": {
            "title": "$:/language/TiddlerInfo/Fields/Caption",
            "text": "Fields"
        },
        "$:/language/TiddlerInfo/List/Caption": {
            "title": "$:/language/TiddlerInfo/List/Caption",
            "text": "List"
        },
        "$:/language/TiddlerInfo/List/Empty": {
            "title": "$:/language/TiddlerInfo/List/Empty",
            "text": "This tiddler does not have a list"
        },
        "$:/language/TiddlerInfo/Listed/Caption": {
            "title": "$:/language/TiddlerInfo/Listed/Caption",
            "text": "Listed"
        },
        "$:/language/TiddlerInfo/Listed/Empty": {
            "title": "$:/language/TiddlerInfo/Listed/Empty",
            "text": "This tiddler is not listed by any others"
        },
        "$:/language/TiddlerInfo/References/Caption": {
            "title": "$:/language/TiddlerInfo/References/Caption",
            "text": "References"
        },
        "$:/language/TiddlerInfo/References/Empty": {
            "title": "$:/language/TiddlerInfo/References/Empty",
            "text": "No tiddlers link to this one"
        },
        "$:/language/TiddlerInfo/Tagging/Caption": {
            "title": "$:/language/TiddlerInfo/Tagging/Caption",
            "text": "Tagging"
        },
        "$:/language/TiddlerInfo/Tagging/Empty": {
            "title": "$:/language/TiddlerInfo/Tagging/Empty",
            "text": "No tiddlers are tagged with this one"
        },
        "$:/language/TiddlerInfo/Tools/Caption": {
            "title": "$:/language/TiddlerInfo/Tools/Caption",
            "text": "Tools"
        },
        "$:/language/Docs/Types/application/javascript": {
            "title": "$:/language/Docs/Types/application/javascript",
            "description": "JavaScript code",
            "name": "application/javascript",
            "group": "Developer",
            "group-sort": "2"
        },
        "$:/language/Docs/Types/application/json": {
            "title": "$:/language/Docs/Types/application/json",
            "description": "JSON data",
            "name": "application/json",
            "group": "Developer",
            "group-sort": "2"
        },
        "$:/language/Docs/Types/application/x-tiddler-dictionary": {
            "title": "$:/language/Docs/Types/application/x-tiddler-dictionary",
            "description": "Data dictionary",
            "name": "application/x-tiddler-dictionary",
            "group": "Developer",
            "group-sort": "2"
        },
        "$:/language/Docs/Types/image/gif": {
            "title": "$:/language/Docs/Types/image/gif",
            "description": "GIF image",
            "name": "image/gif",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/image/jpeg": {
            "title": "$:/language/Docs/Types/image/jpeg",
            "description": "JPEG image",
            "name": "image/jpeg",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/image/png": {
            "title": "$:/language/Docs/Types/image/png",
            "description": "PNG image",
            "name": "image/png",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/image/svg+xml": {
            "title": "$:/language/Docs/Types/image/svg+xml",
            "description": "Structured Vector Graphics image",
            "name": "image/svg+xml",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/image/x-icon": {
            "title": "$:/language/Docs/Types/image/x-icon",
            "description": "ICO format icon file",
            "name": "image/x-icon",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/text/css": {
            "title": "$:/language/Docs/Types/text/css",
            "description": "Static stylesheet",
            "name": "text/css",
            "group": "Developer",
            "group-sort": "2"
        },
        "$:/language/Docs/Types/text/html": {
            "title": "$:/language/Docs/Types/text/html",
            "description": "HTML markup",
            "name": "text/html",
            "group": "Text",
            "group-sort": "0"
        },
        "$:/language/Docs/Types/text/plain": {
            "title": "$:/language/Docs/Types/text/plain",
            "description": "Plain text",
            "name": "text/plain",
            "group": "Text",
            "group-sort": "0"
        },
        "$:/language/Docs/Types/text/vnd.tiddlywiki": {
            "title": "$:/language/Docs/Types/text/vnd.tiddlywiki",
            "description": "TiddlyWiki 5",
            "name": "text/vnd.tiddlywiki",
            "group": "Text",
            "group-sort": "0"
        },
        "$:/language/Docs/Types/text/x-tiddlywiki": {
            "title": "$:/language/Docs/Types/text/x-tiddlywiki",
            "description": "TiddlyWiki Classic",
            "name": "text/x-tiddlywiki",
            "group": "Text",
            "group-sort": "0"
        },
        "$:/languages/en-GB/icon": {
            "title": "$:/languages/en-GB/icon",
            "type": "image/svg+xml",
            "text": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 60 30\" width=\"1200\" height=\"600\">\n<clipPath id=\"t\">\n\t<path d=\"M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z\"/>\n</clipPath>\n<path d=\"M0,0 v30 h60 v-30 z\" fill=\"#00247d\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" stroke=\"#fff\" stroke-width=\"6\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" clip-path=\"url(#t)\" stroke=\"#cf142b\" stroke-width=\"4\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#fff\" stroke-width=\"10\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#cf142b\" stroke-width=\"6\"/>\n</svg>\n"
        },
        "$:/languages/en-GB": {
            "title": "$:/languages/en-GB",
            "name": "en-GB",
            "description": "English (British)",
            "author": "JeremyRuston",
            "core-version": ">=5.0.0\"",
            "text": "Stub pseudo-plugin for the default language"
        },
        "$:/core/modules/commander.js": {
            "text": "/*\\\ntitle: $:/core/modules/commander.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Commander class is a command interpreter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a sequence of commands\n\tcommandTokens: an array of command string tokens\n\twiki: reference to the wiki store object\n\tstreams: {output:, error:}, each of which has a write(string) method\n\tcallback: a callback invoked as callback(err) where err is null if there was no error\n*/\nvar Commander = function(commandTokens,callback,wiki,streams) {\n\tvar path = require(\"path\");\n\tthis.commandTokens = commandTokens;\n\tthis.nextToken = 0;\n\tthis.callback = callback;\n\tthis.wiki = wiki;\n\tthis.streams = streams;\n\tthis.outputPath = path.resolve($tw.boot.wikiPath,$tw.config.wikiOutputSubDir);\n};\n\n/*\nLog a string if verbose flag is set\n*/\nCommander.prototype.log = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str + \"\\n\");\n\t}\n};\n\n/*\nWrite a string if verbose flag is set\n*/\nCommander.prototype.write = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str);\n\t}\n};\n\n/*\nAdd a string of tokens to the command queue\n*/\nCommander.prototype.addCommandTokens = function(commandTokens) {\n\tvar params = commandTokens.slice(0);\n\tparams.unshift(0);\n\tparams.unshift(this.nextToken);\n\tArray.prototype.splice.apply(this.commandTokens,params);\n};\n\n/*\nExecute the sequence of commands and invoke a callback on completion\n*/\nCommander.prototype.execute = function() {\n\tthis.executeNextCommand();\n};\n\n/*\nExecute the next command in the sequence\n*/\nCommander.prototype.executeNextCommand = function() {\n\tvar self = this;\n\t// Invoke the callback if there are no more commands\n\tif(this.nextToken >= this.commandTokens.length) {\n\t\tthis.callback(null);\n\t} else {\n\t\t// Get and check the command token\n\t\tvar commandName = this.commandTokens[this.nextToken++];\n\t\tif(commandName.substr(0,2) !== \"--\") {\n\t\t\tthis.callback(\"Missing command: \" + commandName);\n\t\t} else {\n\t\t\tcommandName = commandName.substr(2); // Trim off the --\n\t\t\t// Accumulate the parameters to the command\n\t\t\tvar params = [];\n\t\t\twhile(this.nextToken < this.commandTokens.length && \n\t\t\t\tthis.commandTokens[this.nextToken].substr(0,2) !== \"--\") {\n\t\t\t\tparams.push(this.commandTokens[this.nextToken++]);\n\t\t\t}\n\t\t\t// Get the command info\n\t\t\tvar command = $tw.commands[commandName],\n\t\t\t\tc,err;\n\t\t\tif(!command) {\n\t\t\t\tthis.callback(\"Unknown command: \" + commandName);\n\t\t\t} else {\n\t\t\t\tif(this.verbose) {\n\t\t\t\t\tthis.streams.output.write(\"Executing command: \" + commandName + \" \" + params.join(\" \") + \"\\n\");\n\t\t\t\t}\n\t\t\t\tif(command.info.synchronous) {\n\t\t\t\t\t// Synchronous command\n\t\t\t\t\tc = new command.Command(params,this);\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.executeNextCommand();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Asynchronous command\n\t\t\t\t\tc = new command.Command(params,this,function(err) {\n\t\t\t\t\t\tif(err) {\n\t\t\t\t\t\t\tself.callback(err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.executeNextCommand();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nCommander.initCommands = function(moduleType) {\n\tmoduleType = moduleType || \"command\";\n\t$tw.commands = {};\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tvar c = $tw.commands[module.info.name] = {};\n\t\t// Add the methods defined by the module\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\tc[f] = module[f];\n\t\t\t}\n\t\t}\n\t});\n};\n\nexports.Commander = Commander;\n\n})();\n",
            "title": "$:/core/modules/commander.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/commands/build.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/build.js\ntype: application/javascript\nmodule-type: command\n\nCommand to build a build target\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"build\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\t// Get the build targets defined in the wiki\n\tvar buildTargets = $tw.boot.wikiInfo.build;\n\tif(!buildTargets) {\n\t\treturn \"No build targets defined\";\n\t}\n\t// Loop through each of the specified targets\n\tvar targets;\n\tif(this.params.length > 0) {\n\t\ttargets = this.params;\n\t} else {\n\t\ttargets = Object.keys(buildTargets);\n\t}\n\tfor(var targetIndex=0; targetIndex<targets.length; targetIndex++) {\n\t\tvar target = targets[targetIndex],\n\t\t\tcommands = buildTargets[target];\n\t\tif(!commands) {\n\t\t\treturn \"Build target '\" + target + \"' not found\";\n\t\t}\n\t\t// Add the commands to the queue\n\t\tthis.commander.addCommandTokens(commands);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/build.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/clearpassword.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/clearpassword.js\ntype: application/javascript\nmodule-type: command\n\nClear password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"clearpassword\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\t$tw.crypto.setPassword(null);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/clearpassword.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/editions.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/editions.js\ntype: application/javascript\nmodule-type: command\n\nCommand to list the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"editions\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\t// Output the list\n\tthis.commander.streams.output.write(\"Available editions:\\n\\n\");\n\tvar editionInfo = $tw.utils.getEditionInfo();\n\t$tw.utils.each(editionInfo,function(info,name) {\n\t\tself.commander.streams.output.write(\"    \" + name + \": \" + info.description + \"\\n\");\n\t});\n\tthis.commander.streams.output.write(\"\\n\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/editions.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/fetch.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/fetch.js\ntype: application/javascript\nmodule-type: command\n\nCommands to fetch external tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"fetch\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing subcommand and url\";\n\t}\n\tvar subcommand = this.params[0],\n\t\turl = this.params[1],\n\t\timportFilter = this.params[2] || \"[all[tiddlers]]\",\n\t\ttransformFilter = this.params[3] || \"\";\n\tswitch(subcommand) {\n\t\tcase \"file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turl: url,\n\t\t\t\timportFilter: importFilter,\n\t\t\t\ttransformFilter: transformFilter,\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turlFilter: url,\n\t\t\t\timportFilter: importFilter,\n\t\t\t\ttransformFilter: transformFilter,\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t}\n\treturn null;\n};\n\nCommand.prototype.fetchFiles = function(options) {\n\tvar self = this;\n\t// Get the list of URLs\n\tvar urls;\n\tif(options.url) {\n\t\turls = [options.url]\n\t} else if(options.urlFilter) {\n\t\turls = $tw.wiki.filterTiddlers(options.urlFilter);\n\t} else {\n\t\treturn \"Missing URL\";\n\t}\n\t// Process each URL in turn\n\tvar next = 0;\n\tvar getNextFile = function(err) {\n\t\tif(err) {\n\t\t\treturn options.callback(err);\n\t\t}\n\t\tif(next < urls.length) {\n\t\t\tself.fetchFile(urls[next++],options,getNextFile);\n\t\t} else {\n\t\t\toptions.callback(null);\n\t\t}\n\t};\n\tgetNextFile(null);\n\t// Success\n\treturn null;\n};\n\nCommand.prototype.fetchFile = function(url,options,callback) {\n\tvar self = this,\n\t\tlib = url.substr(0,8) === \"https://\" ? require(\"https\") : require(\"http\");\n\tlib.get(url).on(\"response\",function(response) {\n\t    var type = (response.headers[\"content-type\"] || \"\").split(\";\")[0],\n\t    \tbody = \"\";\n\t    self.commander.write(\"Reading \" + url + \": \");\n\t    response.on(\"data\",function(chunk) {\n\t        body += chunk;\n\t        self.commander.write(\".\");\n\t    });\n\t    response.on(\"end\",function() {\n\t        self.commander.write(\"\\n\");\n\t        if(response.statusCode === 200) {\n\t\t        self.processBody(body,type,options);\n\t\t        callback(null);\n\t        } else {\n\t        \tcallback(\"Error \" + response.statusCode + \" retrieving \" + url)\n\t        }\n\t   \t});\n\t   \tresponse.on(\"error\",function(e) {\n\t\t\tconsole.log(\"Error on GET request: \" + e);\n\t\t\tcallback(e);\n\t   \t});\n\t});\n\treturn null;\n};\n\nCommand.prototype.processBody = function(body,type,options) {\n\t// Deserialise the HTML file and put the tiddlers in their own wiki\n\tvar self = this,\n\t\tincomingWiki = new $tw.Wiki(),\n\t\ttiddlers = this.commander.wiki.deserializeTiddlers(type || \"text/html\",body,{});\n\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\tincomingWiki.addTiddler(new $tw.Tiddler(tiddler));\n\t});\n\t// Filter the tiddlers to select the ones we want\n\tvar filteredTitles = incomingWiki.filterTiddlers(options.importFilter);\n\t// Import the selected tiddlers\n\tvar count = 0;\n\tincomingWiki.each(function(tiddler,title) {\n\t\tif(filteredTitles.indexOf(title) !== -1) {\n\t\t\tvar newTiddler;\n\t\t\tif(options.transformFilter) {\n\t\t\t\tvar transformedTitle = (incomingWiki.filterTiddlers(options.transformFilter,null,self.commander.wiki.makeTiddlerIterator([title])) || [\"\"])[0];\n\t\t\t\tif(transformedTitle) {\n\t\t\t\t\tself.commander.log(\"Importing \" + title + \" as \" + transformedTitle)\n\t\t\t\t\tnewTiddler = new $tw.Tiddler(tiddler,{title: transformedTitle});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.commander.log(\"Importing \" + title)\n\t\t\t\tnewTiddler = tiddler;\n\t\t\t}\n\t\t\tself.commander.wiki.importTiddler(newTiddler);\n\t\t\tcount++;\n\t\t}\n\t});\n\tself.commander.log(\"Imported \" + count + \" tiddlers\")\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/fetch.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/help.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/help.js\ntype: application/javascript\nmodule-type: command\n\nHelp command\n\n\\*/\n(function(){\n\n/*jshint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"help\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar subhelp = this.params[0] || \"default\",\n\t\thelpBase = \"$:/language/Help/\",\n\t\ttext;\n\tif(!this.commander.wiki.getTiddler(helpBase + subhelp)) {\n\t\tsubhelp = \"notfound\";\n\t}\n\t// Wikify the help as formatted text (ie block elements generate newlines)\n\ttext = this.commander.wiki.renderTiddler(\"text/plain-formatted\",helpBase + subhelp);\n\t// Remove any leading linebreaks\n\ttext = text.replace(/^(\\r?\\n)*/g,\"\");\n\tthis.commander.streams.output.write(text);\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/help.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/init.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/init.js\ntype: application/javascript\nmodule-type: command\n\nCommand to initialise an empty wiki folder\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"init\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\t// Check that we don't already have a valid wiki folder\n\tif($tw.boot.wikiTiddlersPath || ($tw.utils.isDirectory($tw.boot.wikiPath) && !$tw.utils.isDirectoryEmpty($tw.boot.wikiPath))) {\n\t\treturn \"Wiki folder is not empty\";\n\t}\n\t// Loop through each of the specified editions\n\tvar editions = this.params.length > 0 ? this.params : [\"empty\"];\n\tfor(var editionIndex=0; editionIndex<editions.length; editionIndex++) {\n\t\tvar editionName = editions[editionIndex];\n\t\t// Check the edition exists\n\t\tvar editionPath = $tw.findLibraryItem(editionName,$tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar));\n\t\tif(!$tw.utils.isDirectory(editionPath)) {\n\t\t\treturn \"Edition '\" + editionName + \"' not found\";\n\t\t}\n\t\t// Copy the edition content\n\t\tvar err = $tw.utils.copyDirectory(editionPath,$tw.boot.wikiPath);\n\t\tif(!err) {\n\t\t\tthis.commander.streams.output.write(\"Copied edition '\" + editionName + \"' to \" + $tw.boot.wikiPath + \"\\n\");\n\t\t} else {\n\t\t\treturn err;\n\t\t}\n\t}\n\t// Tweak the tiddlywiki.info to remove any included wikis\n\tvar packagePath = $tw.boot.wikiPath + \"/tiddlywiki.info\",\n\t\tpackageJson = JSON.parse(fs.readFileSync(packagePath));\n\tdelete packageJson.includeWikis;\n\tfs.writeFileSync(packagePath,JSON.stringify(packageJson,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/init.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/load.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/load.js\ntype: application/javascript\nmodule-type: command\n\nCommand to load tiddlers from a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"load\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar ext = path.extname(self.params[0]),\n\t\tstat = fs.statSync(self.params[0]),\n\t\ttiddlers = $tw.loadTiddlersFromPath(self.params[0]),\n\t\tcount = 0;\n\t$tw.utils.each(tiddlers,function(tiddlerInfo) {\n\t\t$tw.utils.each(tiddlerInfo.tiddlers,function(tiddler) {\n\t\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t\t\tcount++;\n\t\t});\n\t});\n\tif(!count) {\n\t\tself.callback(\"No tiddlers found in file \\\"\" + self.params[0] + \"\\\"\");\n\t} else {\n\t\tself.callback(null);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/load.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/makelibrary.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/makelibrary.js\ntype: application/javascript\nmodule-type: command\n\nCommand to pack all of the plugins in the library into a plugin tiddler of type \"library\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"makelibrary\",\n\tsynchronous: true\n};\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar wiki = this.commander.wiki,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tupgradeLibraryTitle = this.params[0] || UPGRADE_LIBRARY_TITLE,\n\t\ttiddlers = {};\n\t// Collect up the library plugins\n\tvar collectPlugins = function(folder) {\n\t\t\tvar pluginFolders = fs.readdirSync(folder);\n\t\t\tfor(var p=0; p<pluginFolders.length; p++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(pluginFolders[p])) {\n\t\t\t\t\tpluginFields = $tw.loadPluginFolder(path.resolve(folder,\"./\" + pluginFolders[p]));\n\t\t\t\t\tif(pluginFields && pluginFields.title) {\n\t\t\t\t\t\ttiddlers[pluginFields.title] = pluginFields;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcollectPublisherPlugins = function(folder) {\n\t\t\tvar publisherFolders = fs.readdirSync(folder);\n\t\t\tfor(var t=0; t<publisherFolders.length; t++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(publisherFolders[t])) {\n\t\t\t\t\tcollectPlugins(path.resolve(folder,\"./\" + publisherFolders[t]));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\tcollectPublisherPlugins(path.resolve($tw.boot.corePath,$tw.config.pluginsPath));\n\tcollectPublisherPlugins(path.resolve($tw.boot.corePath,$tw.config.themesPath));\n\tcollectPlugins(path.resolve($tw.boot.corePath,$tw.config.languagesPath));\n\t// Save the upgrade library tiddler\n\tvar pluginFields = {\n\t\ttitle: upgradeLibraryTitle,\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"library\",\n\t\t\"text\": JSON.stringify({tiddlers: tiddlers},null,$tw.config.preferences.jsonSpaces)\n\t};\n\twiki.addTiddler(new $tw.Tiddler(pluginFields));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/makelibrary.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/output.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/output.js\ntype: application/javascript\nmodule-type: command\n\nCommand to set the default output location (defaults to current working directory)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"output\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing output path\";\n\t}\n\tthis.commander.outputPath = path.resolve(process.cwd(),this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/output.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/password.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/password.js\ntype: application/javascript\nmodule-type: command\n\nSave password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"password\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing password\";\n\t}\n\t$tw.crypto.setPassword(this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/password.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/rendertiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/rendertiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render a tiddler and save it to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"rendertiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tname = this.params[4],\n\t\tvalue = this.params[5],\n\t\tvariables = {};\n\t$tw.utils.createFileDirectories(filename);\n\tif(template) {\n\t\tvariables.currentTiddler = title;\n\t\ttitle = template;\n\t}\n\tif(name && value) {\n\t\tvariables[name] = value;\n\t}\n\tfs.writeFile(filename,this.commander.wiki.renderTiddler(type,title,{variables: variables}),\"utf8\",function(err) {\n\t\tself.callback(err);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/rendertiddler.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/rendertiddlers.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/rendertiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"rendertiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttemplate = this.params[1],\n\t\toutputPath = this.commander.outputPath,\n\t\tpathname = path.resolve(outputPath,this.params[2]),\t\t\n\t\ttype = this.params[3] || \"text/html\",\n\t\textension = this.params[4] || \".html\",\n\t\tdeleteDirectory = (this.params[5] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template),\n\t\t\twidgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\texportPath = null;\n\t\tif($tw.utils.hop($tw.macros,\"tv-get-export-path\")) {\n\t\t\tvar macroPath = $tw.macros[\"tv-get-export-path\"].run.apply(self,[title]);\n\t\t\tif(macroPath) {\n\t\t\t\texportPath = path.resolve(outputPath,macroPath + extension);\n\t\t\t}\n\t\t}\n\t\tvar finalPath = exportPath || path.resolve(pathname,encodeURIComponent(title) + extension);\n\t\t$tw.utils.createFileDirectories(finalPath);\n\t\tfs.writeFileSync(finalPath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/rendertiddlers.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/savelibrarytiddlers.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/savelibrarytiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the subtiddlers of a bundle tiddler as a series of JSON files\n\n--savelibrarytiddlers <tiddler> <pathname> <skinnylisting>\n\nThe tiddler identifies the bundle tiddler that contains the subtiddlers.\n\nThe pathname specifies the pathname to the folder in which the JSON files should be saved. The filename is the URL encoded title of the subtiddler.\n\nThe skinnylisting specifies the title of the tiddler to which a JSON catalogue of the subtiddlers will be saved. The JSON file contains the same data as the bundle tiddler but with the `text` field removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savelibrarytiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tcontainerTitle = this.params[0],\n\t\tfilter = this.params[1],\n\t\tbasepath = this.params[2],\n\t\tskinnyListTitle = this.params[3];\n\t// Get the container tiddler as data\n\tvar containerData = self.commander.wiki.getTiddlerDataCached(containerTitle,undefined);\n\tif(!containerData) {\n\t\treturn \"'\" + containerTitle + \"' is not a tiddler bundle\";\n\t}\n\t// Filter the list of plugins\n\tvar pluginList = [];\n\t$tw.utils.each(containerData.tiddlers,function(tiddler,title) {\n\t\tpluginList.push(title);\n\t});\n\tvar filteredPluginList;\n\tif(filter) {\n\t\tfilteredPluginList = self.commander.wiki.filterTiddlers(filter,null,self.commander.wiki.makeTiddlerIterator(pluginList));\n\t} else {\n\t\tfilteredPluginList = pluginList;\n\t}\n\t// Iterate through the plugins\n\tvar skinnyList = [];\n\t$tw.utils.each(filteredPluginList,function(title) {\n\t\tvar tiddler = containerData.tiddlers[title];\n\t\t// Save each JSON file and collect the skinny data\n\t\tvar pathname = path.resolve(self.commander.outputPath,basepath + encodeURIComponent(title) + \".json\");\n\t\t$tw.utils.createFileDirectories(pathname);\n\t\tfs.writeFileSync(pathname,JSON.stringify(tiddler,null,$tw.config.preferences.jsonSpaces),\"utf8\");\n\t\t// Collect the skinny list data\n\t\tvar pluginTiddlers = JSON.parse(tiddler.text),\n\t\t\treadmeContent = (pluginTiddlers.tiddlers[title + \"/readme\"] || {}).text,\n\t\t\ticonTiddler = pluginTiddlers.tiddlers[title + \"/icon\"] || {},\n\t\t\ticonType = iconTiddler.type,\n\t\t\ticonText = iconTiddler.text,\n\t\t\ticonContent;\n\t\tif(iconType && iconText) {\n\t\t\ticonContent = $tw.utils.makeDataUri(iconText,iconType);\n\t\t}\n\t\tskinnyList.push($tw.utils.extend({},tiddler,{text: undefined, readme: readmeContent, icon: iconContent}));\n\t});\n\t// Save the catalogue tiddler\n\tif(skinnyListTitle) {\n\t\tself.commander.wiki.setTiddlerData(skinnyListTitle,skinnyList);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/savelibrarytiddlers.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/savetiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/savetiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the content of a tiddler to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savetiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttiddler = this.commander.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar type = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"};\n\t\t$tw.utils.createFileDirectories(filename);\n\t\tfs.writeFile(filename,tiddler.fields.text,contentTypeInfo.encoding,function(err) {\n\t\t\tself.callback(err);\n\t\t});\n\t} else {\n\t\treturn \"Missing tiddler: \" + title;\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/savetiddler.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/savetiddlers.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/savetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"savetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tpathname = path.resolve(this.commander.outputPath,this.params[1]),\n\t\tdeleteDirectory = (this.params[2] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.createDirectory(pathname);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilename = path.resolve(pathname,encodeURIComponent(title));\n\t\tfs.writeFileSync(filename,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/savetiddlers.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/server.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/server.js\ntype: application/javascript\nmodule-type: command\n\nServe tiddlers over http\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\"),\n\t\thttp = require(\"http\");\n}\n\nexports.info = {\n\tname: \"server\",\n\tsynchronous: true\n};\n\n/*\nA simple HTTP server with regexp-based routes\n*/\nfunction SimpleServer(options) {\n\tthis.routes = options.routes || [];\n\tthis.wiki = options.wiki;\n\tthis.variables = options.variables || {};\n}\n\nSimpleServer.prototype.set = function(obj) {\n\tvar self = this;\n\t$tw.utils.each(obj,function(value,name) {\n\t\tself.variables[name] = value;\n\t});\n};\n\nSimpleServer.prototype.get = function(name) {\n\treturn this.variables[name];\n};\n\nSimpleServer.prototype.addRoute = function(route) {\n\tthis.routes.push(route);\n};\n\nSimpleServer.prototype.findMatchingRoute = function(request,state) {\n\tvar pathprefix = this.get(\"pathprefix\") || \"\";\n\tfor(var t=0; t<this.routes.length; t++) {\n\t\tvar potentialRoute = this.routes[t],\n\t\t\tpathRegExp = potentialRoute.path,\n\t\t\tpathname = state.urlInfo.pathname,\n\t\t\tmatch;\n\t\tif(pathprefix) {\n\t\t\tif(pathname.substr(0,pathprefix.length) === pathprefix) {\n\t\t\t\tpathname = pathname.substr(pathprefix.length);\n\t\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t\t} else {\n\t\t\t\tmatch = false;\n\t\t\t}\n\t\t} else {\n\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t}\n\t\tif(match && request.method === potentialRoute.method) {\n\t\t\tstate.params = [];\n\t\t\tfor(var p=1; p<match.length; p++) {\n\t\t\t\tstate.params.push(match[p]);\n\t\t\t}\n\t\t\treturn potentialRoute;\n\t\t}\n\t}\n\treturn null;\n};\n\nSimpleServer.prototype.checkCredentials = function(request,incomingUsername,incomingPassword) {\n\tvar header = request.headers.authorization || \"\",\n\t\ttoken = header.split(/\\s+/).pop() || \"\",\n\t\tauth = $tw.utils.base64Decode(token),\n\t\tparts = auth.split(/:/),\n\t\tusername = parts[0],\n\t\tpassword = parts[1];\n\tif(incomingUsername === username && incomingPassword === password) {\n\t\treturn \"ALLOWED\";\n\t} else {\n\t\treturn \"DENIED\";\n\t}\n};\n\nSimpleServer.prototype.requestHandler = function(request,response) {\n\t// Compose the state object\n\tvar self = this;\n\tvar state = {};\n\tstate.wiki = self.wiki;\n\tstate.server = self;\n\tstate.urlInfo = url.parse(request.url);\n\t// Find the route that matches this path\n\tvar route = self.findMatchingRoute(request,state);\n\t// Check for the username and password if we've got one\n\tvar username = self.get(\"username\"),\n\t\tpassword = self.get(\"password\");\n\tif(username && password) {\n\t\t// Check they match\n\t\tif(self.checkCredentials(request,username,password) !== \"ALLOWED\") {\n\t\t\tvar servername = state.wiki.getTiddlerText(\"$:/SiteTitle\") || \"TiddlyWiki5\";\n\t\t\tresponse.writeHead(401,\"Authentication required\",{\n\t\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + servername + '\"'\n\t\t\t});\n\t\t\tresponse.end();\n\t\t\treturn;\n\t\t}\n\t}\n\t// Return a 404 if we didn't find a route\n\tif(!route) {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Set the encoding for the incoming request\n\t// TODO: Presumably this would need tweaking if we supported PUTting binary tiddlers\n\trequest.setEncoding(\"utf8\");\n\t// Dispatch the appropriate method\n\tswitch(request.method) {\n\t\tcase \"GET\": // Intentional fall-through\n\t\tcase \"DELETE\":\n\t\t\troute.handler(request,response,state);\n\t\t\tbreak;\n\t\tcase \"PUT\":\n\t\t\tvar data = \"\";\n\t\t\trequest.on(\"data\",function(chunk) {\n\t\t\t\tdata += chunk.toString();\n\t\t\t});\n\t\t\trequest.on(\"end\",function() {\n\t\t\t\tstate.data = data;\n\t\t\t\troute.handler(request,response,state);\n\t\t\t});\n\t\t\tbreak;\n\t}\n};\n\t\nSimpleServer.prototype.listen = function(port,host) {\n\thttp.createServer(this.requestHandler.bind(this)).listen(port,host);\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n\t// Set up server\n\tthis.server = new SimpleServer({\n\t\twiki: this.commander.wiki\n\t});\n\t// Add route handlers\n\tthis.server.addRoute({\n\t\tmethod: \"PUT\",\n\t\tpath: /^\\/recipes\\/default\\/tiddlers\\/(.+)$/,\n\t\thandler: function(request,response,state) {\n\t\t\tvar title = decodeURIComponent(state.params[0]),\n\t\t\t\tfields = JSON.parse(state.data);\n\t\t\t// Pull up any subfields in the `fields` object\n\t\t\tif(fields.fields) {\n\t\t\t\t$tw.utils.each(fields.fields,function(field,name) {\n\t\t\t\t\tfields[name] = field;\n\t\t\t\t});\n\t\t\t\tdelete fields.fields;\n\t\t\t}\n\t\t\t// Remove any revision field\n\t\t\tif(fields.revision) {\n\t\t\t\tdelete fields.revision;\n\t\t\t}\n\t\t\tstate.wiki.addTiddler(new $tw.Tiddler(state.wiki.getCreationFields(),fields,{title: title},state.wiki.getModificationFields()));\n\t\t\tvar changeCount = state.wiki.getChangeCount(title).toString();\n\t\t\tresponse.writeHead(204, \"OK\",{\n\t\t\t\tEtag: \"\\\"default/\" + encodeURIComponent(title) + \"/\" + changeCount + \":\\\"\",\n\t\t\t\t\"Content-Type\": \"text/plain\"\n\t\t\t});\n\t\t\tresponse.end();\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"DELETE\",\n\t\tpath: /^\\/bags\\/default\\/tiddlers\\/(.+)$/,\n\t\thandler: function(request,response,state) {\n\t\t\tvar title = decodeURIComponent(state.params[0]);\n\t\t\tstate.wiki.deleteTiddler(title);\n\t\t\tresponse.writeHead(204, \"OK\", {\n\t\t\t\t\"Content-Type\": \"text/plain\"\n\t\t\t});\n\t\t\tresponse.end();\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": state.server.get(\"serveType\")});\n\t\t\tvar text = state.wiki.renderTiddler(state.server.get(\"renderType\"),state.server.get(\"rootTiddler\"));\n\t\t\tresponse.end(text,\"utf8\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/status$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\t\tvar text = JSON.stringify({\n\t\t\t\tusername: state.server.get(\"username\"),\n\t\t\t\tspace: {\n\t\t\t\t\trecipe: \"default\"\n\t\t\t\t},\n\t\t\t\ttiddlywiki_version: $tw.version\n\t\t\t});\n\t\t\tresponse.end(text,\"utf8\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/favicon.ico$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": \"image/x-icon\"});\n\t\t\tvar buffer = state.wiki.getTiddlerText(\"$:/favicon.ico\",\"\");\n\t\t\tresponse.end(buffer,\"base64\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/recipes\\/default\\/tiddlers.json$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\t\tvar tiddlers = [];\n\t\t\tstate.wiki.forEachTiddler({sortField: \"title\"},function(title,tiddler) {\n\t\t\t\tvar tiddlerFields = {};\n\t\t\t\t$tw.utils.each(tiddler.fields,function(field,name) {\n\t\t\t\t\tif(name !== \"text\") {\n\t\t\t\t\t\ttiddlerFields[name] = tiddler.getFieldString(name);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\t\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\ttiddlers.push(tiddlerFields);\n\t\t\t});\n\t\t\tvar text = JSON.stringify(tiddlers);\n\t\t\tresponse.end(text,\"utf8\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/recipes\\/default\\/tiddlers\\/(.+)$/,\n\t\thandler: function(request,response,state) {\n\t\t\tvar title = decodeURIComponent(state.params[0]),\n\t\t\t\ttiddler = state.wiki.getTiddler(title),\n\t\t\t\ttiddlerFields = {},\n\t\t\t\tknownFields = [\n\t\t\t\t\t\"bag\", \"created\", \"creator\", \"modified\", \"modifier\", \"permissions\", \"recipe\", \"revision\", \"tags\", \"text\", \"title\", \"type\", \"uri\"\n\t\t\t\t];\n\t\t\tif(tiddler) {\n\t\t\t\t$tw.utils.each(tiddler.fields,function(field,name) {\n\t\t\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\t\t\tif(knownFields.indexOf(name) !== -1) {\n\t\t\t\t\t\ttiddlerFields[name] = value;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttiddlerFields.fields = tiddlerFields.fields || {};\n\t\t\t\t\t\ttiddlerFields.fields[name] = value;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\t\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\t\t\tresponse.end(JSON.stringify(tiddlerFields),\"utf8\");\n\t\t\t} else {\n\t\t\t\tresponse.writeHead(404);\n\t\t\t\tresponse.end();\n\t\t\t}\n\t\t}\n\t});\n};\n\nCommand.prototype.execute = function() {\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\tvar port = this.params[0] || \"8080\",\n\t\trootTiddler = this.params[1] || \"$:/core/save/all\",\n\t\trenderType = this.params[2] || \"text/plain\",\n\t\tserveType = this.params[3] || \"text/html\",\n\t\tusername = this.params[4],\n\t\tpassword = this.params[5],\n\t\thost = this.params[6] || \"127.0.0.1\",\n\t\tpathprefix = this.params[7];\n\tthis.server.set({\n\t\trootTiddler: rootTiddler,\n\t\trenderType: renderType,\n\t\tserveType: serveType,\n\t\tusername: username,\n\t\tpassword: password,\n\t\tpathprefix: pathprefix\n\t});\n\tthis.server.listen(port,host);\n\tconsole.log(\"Serving on \" + host + \":\" + port);\n\tconsole.log(\"(press ctrl-C to exit)\");\n\t// Warn if required plugins are missing\n\tif(!$tw.wiki.getTiddler(\"$:/plugins/tiddlywiki/tiddlyweb\") || !$tw.wiki.getTiddler(\"$:/plugins/tiddlywiki/filesystem\")) {\n\t\t$tw.utils.warning(\"Warning: Plugins required for client-server operation (\\\"tiddlywiki/filesystem\\\" and \\\"tiddlywiki/tiddlyweb\\\") are missing from tiddlywiki.info file\");\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/server.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/setfield.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/setfield.js\ntype: application/javascript\nmodule-type: command\n\nCommand to modify selected tiddlers to set a field to the text of a template tiddler that has been wikified with the selected tiddler as the current tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"setfield\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 4) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tfieldname = this.params[1] || \"text\",\n\t\ttemplatetitle = this.params[2],\n\t\trendertype = this.params[3] || \"text/plain\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(templatetitle),\n\t\t\tnewFields = {},\n\t\t\ttiddler = wiki.getTiddler(title);\n\t\tif(parser) {\n\t\t\tvar widgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}});\n\t\t\tvar container = $tw.fakeDocument.createElement(\"div\");\n\t\t\twidgetNode.render(container,null);\n\t\t\tnewFields[fieldname] = rendertype === \"text/html\" ? container.innerHTML : container.textContent;\n\t\t} else {\n\t\t\tnewFields[fieldname] = undefined;\n\t\t}\n\t\twiki.addTiddler(new $tw.Tiddler(tiddler,newFields));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/setfield.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/unpackplugin.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/unpackplugin.js\ntype: application/javascript\nmodule-type: command\n\nCommand to extract the shadow tiddlers from within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"unpackplugin\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing plugin name\";\n\t}\n\tvar self = this,\n\t\ttitle = this.params[0],\n\t\tpluginData = this.commander.wiki.getTiddlerDataCached(title);\n\tif(!pluginData) {\n\t\treturn \"Plugin '\" + title + \"' not found\";\n\t}\n\t$tw.utils.each(pluginData.tiddlers,function(tiddler) {\n\t\tself.commander.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/unpackplugin.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/verbose.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/verbose.js\ntype: application/javascript\nmodule-type: command\n\nVerbose command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"verbose\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.verbose = true;\n\t// Output the boot message log\n\tthis.commander.streams.output.write(\"Boot log:\\n  \" + $tw.boot.logMessages.join(\"\\n  \") + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/verbose.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/version.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/version.js\ntype: application/javascript\nmodule-type: command\n\nVersion command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"version\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.streams.output.write($tw.version + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/version.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/config.js": {
            "text": "/*\\\ntitle: $:/core/modules/config.js\ntype: application/javascript\nmodule-type: config\n\nCore configuration constants\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.preferences = {};\n\nexports.preferences.notificationDuration = 3 * 1000;\nexports.preferences.jsonSpaces = 4;\n\nexports.textPrimitives = {\n\tupperLetter: \"[A-Z\\u00c0-\\u00d6\\u00d8-\\u00de\\u0150\\u0170]\",\n\tlowerLetter: \"[a-z\\u00df-\\u00f6\\u00f8-\\u00ff\\u0151\\u0171]\",\n\tanyLetter:   \"[A-Za-z0-9\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\",\n\tblockPrefixLetters:\t\"[A-Za-z0-9-_\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\"\n};\n\nexports.textPrimitives.unWikiLink = \"~\";\nexports.textPrimitives.wikiLink = exports.textPrimitives.upperLetter + \"+\" +\n\texports.textPrimitives.lowerLetter + \"+\" +\n\texports.textPrimitives.upperLetter +\n\texports.textPrimitives.anyLetter + \"*\";\n\nexports.htmlEntities = {quot:34, amp:38, apos:39, lt:60, gt:62, nbsp:160, iexcl:161, cent:162, pound:163, curren:164, yen:165, brvbar:166, sect:167, uml:168, copy:169, ordf:170, laquo:171, not:172, shy:173, reg:174, macr:175, deg:176, plusmn:177, sup2:178, sup3:179, acute:180, micro:181, para:182, middot:183, cedil:184, sup1:185, ordm:186, raquo:187, frac14:188, frac12:189, frac34:190, iquest:191, Agrave:192, Aacute:193, Acirc:194, Atilde:195, Auml:196, Aring:197, AElig:198, Ccedil:199, Egrave:200, Eacute:201, Ecirc:202, Euml:203, Igrave:204, Iacute:205, Icirc:206, Iuml:207, ETH:208, Ntilde:209, Ograve:210, Oacute:211, Ocirc:212, Otilde:213, Ouml:214, times:215, Oslash:216, Ugrave:217, Uacute:218, Ucirc:219, Uuml:220, Yacute:221, THORN:222, szlig:223, agrave:224, aacute:225, acirc:226, atilde:227, auml:228, aring:229, aelig:230, ccedil:231, egrave:232, eacute:233, ecirc:234, euml:235, igrave:236, iacute:237, icirc:238, iuml:239, eth:240, ntilde:241, ograve:242, oacute:243, ocirc:244, otilde:245, ouml:246, divide:247, oslash:248, ugrave:249, uacute:250, ucirc:251, uuml:252, yacute:253, thorn:254, yuml:255, OElig:338, oelig:339, Scaron:352, scaron:353, Yuml:376, fnof:402, circ:710, tilde:732, Alpha:913, Beta:914, Gamma:915, Delta:916, Epsilon:917, Zeta:918, Eta:919, Theta:920, Iota:921, Kappa:922, Lambda:923, Mu:924, Nu:925, Xi:926, Omicron:927, Pi:928, Rho:929, Sigma:931, Tau:932, Upsilon:933, Phi:934, Chi:935, Psi:936, Omega:937, alpha:945, beta:946, gamma:947, delta:948, epsilon:949, zeta:950, eta:951, theta:952, iota:953, kappa:954, lambda:955, mu:956, nu:957, xi:958, omicron:959, pi:960, rho:961, sigmaf:962, sigma:963, tau:964, upsilon:965, phi:966, chi:967, psi:968, omega:969, thetasym:977, upsih:978, piv:982, ensp:8194, emsp:8195, thinsp:8201, zwnj:8204, zwj:8205, lrm:8206, rlm:8207, ndash:8211, mdash:8212, lsquo:8216, rsquo:8217, sbquo:8218, ldquo:8220, rdquo:8221, bdquo:8222, dagger:8224, Dagger:8225, bull:8226, hellip:8230, permil:8240, prime:8242, Prime:8243, lsaquo:8249, rsaquo:8250, oline:8254, frasl:8260, euro:8364, image:8465, weierp:8472, real:8476, trade:8482, alefsym:8501, larr:8592, uarr:8593, rarr:8594, darr:8595, harr:8596, crarr:8629, lArr:8656, uArr:8657, rArr:8658, dArr:8659, hArr:8660, forall:8704, part:8706, exist:8707, empty:8709, nabla:8711, isin:8712, notin:8713, ni:8715, prod:8719, sum:8721, minus:8722, lowast:8727, radic:8730, prop:8733, infin:8734, ang:8736, and:8743, or:8744, cap:8745, cup:8746, int:8747, there4:8756, sim:8764, cong:8773, asymp:8776, ne:8800, equiv:8801, le:8804, ge:8805, sub:8834, sup:8835, nsub:8836, sube:8838, supe:8839, oplus:8853, otimes:8855, perp:8869, sdot:8901, lceil:8968, rceil:8969, lfloor:8970, rfloor:8971, lang:9001, rang:9002, loz:9674, spades:9824, clubs:9827, hearts:9829, diams:9830 };\n\nexports.htmlVoidElements = \"area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr\".split(\",\");\n\nexports.htmlBlockElements = \"address,article,aside,audio,blockquote,canvas,dd,div,dl,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,li,noscript,ol,output,p,pre,section,table,tfoot,ul,video\".split(\",\");\n\nexports.htmlUnsafeElements = \"script\".split(\",\");\n\n})();\n",
            "title": "$:/core/modules/config.js",
            "type": "application/javascript",
            "module-type": "config"
        },
        "$:/core/modules/deserializers.js": {
            "text": "/*\\\ntitle: $:/core/modules/deserializers.js\ntype: application/javascript\nmodule-type: tiddlerdeserializer\n\nFunctions to deserialise tiddlers from a block of text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nUtility function to parse an old-style tiddler DIV in a *.tid file. It looks like this:\n\n<div title=\"Title\" creator=\"JoeBloggs\" modifier=\"JoeBloggs\" created=\"201102111106\" modified=\"201102111310\" tags=\"myTag [[my long tag]]\">\n<pre>The text of the tiddler (without the expected HTML encoding).\n</pre>\n</div>\n\nNote that the field attributes are HTML encoded, but that the body of the <PRE> tag is not encoded.\n\nWhen these tiddler DIVs are encountered within a TiddlyWiki HTML file then the body is encoded in the usual way.\n*/\nvar parseTiddlerDiv = function(text /* [,fields] */) {\n\t// Slot together the default results\n\tvar result = {};\n\tif(arguments.length > 1) {\n\t\tfor(var f=1; f<arguments.length; f++) {\n\t\t\tvar fields = arguments[f];\n\t\t\tfor(var t in fields) {\n\t\t\t\tresult[t] = fields[t];\t\t\n\t\t\t}\n\t\t}\n\t}\n\t// Parse the DIV body\n\tvar startRegExp = /^\\s*<div\\s+([^>]*)>(\\s*<pre>)?/gi,\n\t\tendRegExp,\n\t\tmatch = startRegExp.exec(text);\n\tif(match) {\n\t\t// Old-style DIVs don't have the <pre> tag\n\t\tif(match[2]) {\n\t\t\tendRegExp = /<\\/pre>\\s*<\\/div>\\s*$/gi;\n\t\t} else {\n\t\t\tendRegExp = /<\\/div>\\s*$/gi;\n\t\t}\n\t\tvar endMatch = endRegExp.exec(text);\n\t\tif(endMatch) {\n\t\t\t// Extract the text\n\t\t\tresult.text = text.substring(match.index + match[0].length,endMatch.index);\n\t\t\t// Process the attributes\n\t\t\tvar attrRegExp = /\\s*([^=\\s]+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)')/gi,\n\t\t\t\tattrMatch;\n\t\t\tdo {\n\t\t\t\tattrMatch = attrRegExp.exec(match[1]);\n\t\t\t\tif(attrMatch) {\n\t\t\t\t\tvar name = attrMatch[1];\n\t\t\t\t\tvar value = attrMatch[2] !== undefined ? attrMatch[2] : attrMatch[3];\n\t\t\t\t\tresult[name] = value;\n\t\t\t\t}\n\t\t\t} while(attrMatch);\n\t\t\treturn result;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports[\"application/x-tiddler-html-div\"] = function(text,fields) {\n\treturn [parseTiddlerDiv(text,fields)];\n};\n\nexports[\"application/json\"] = function(text,fields) {\n\tvar incoming,\n\t\tresults = [];\n\ttry {\n\t\tincoming = JSON.parse(text);\n\t} catch(e) {\n\t\tincoming = [{\n\t\t\ttitle: \"JSON error: \" + e,\n\t\t\ttext: \"\"\n\t\t}]\n\t}\n\tif(!$tw.utils.isArray(incoming)) {\n\t\tincoming = [incoming];\n\t}\n\tfor(var t=0; t<incoming.length; t++) {\n\t\tvar incomingFields = incoming[t],\n\t\t\tfields = {};\n\t\tfor(var f in incomingFields) {\n\t\t\tif(typeof incomingFields[f] === \"string\") {\n\t\t\t\tfields[f] = incomingFields[f];\n\t\t\t}\n\t\t}\n\t\tresults.push(fields);\n\t}\n\treturn results;\n};\n\n/*\nParse an HTML file into tiddlers. There are three possibilities:\n# A TiddlyWiki classic HTML file containing `text/x-tiddlywiki` tiddlers\n# A TiddlyWiki5 HTML file containing `text/vnd.tiddlywiki` tiddlers\n# An ordinary HTML file\n*/\nexports[\"text/html\"] = function(text,fields) {\n\t// Check if we've got a store area\n\tvar storeAreaMarkerRegExp = /<div id=[\"']?storeArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\tmatch = storeAreaMarkerRegExp.exec(text);\n\tif(match) {\n\t\t// If so, it's either a classic TiddlyWiki file or an unencrypted TW5 file\n\t\t// First read the normal tiddlers\n\t\tvar results = deserializeTiddlyWikiFile(text,storeAreaMarkerRegExp.lastIndex,!!match[1],fields);\n\t\t// Then any system tiddlers\n\t\tvar systemAreaMarkerRegExp = /<div id=[\"']?systemArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\t\tsysMatch = systemAreaMarkerRegExp.exec(text);\n\t\tif(sysMatch) {\n\t\t\tresults.push.apply(results,deserializeTiddlyWikiFile(text,systemAreaMarkerRegExp.lastIndex,!!sysMatch[1],fields));\n\t\t}\n\t\treturn results;\n\t} else {\n\t\t// Check whether we've got an encrypted file\n\t\tvar encryptedStoreArea = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedStoreArea) {\n\t\t\t// If so, attempt to decrypt it using the current password\n\t\t\treturn $tw.utils.decryptStoreArea(encryptedStoreArea);\n\t\t} else {\n\t\t\t// It's not a TiddlyWiki so we'll return the entire HTML file as a tiddler\n\t\t\treturn deserializeHtmlFile(text,fields);\n\t\t}\n\t}\n};\n\nfunction deserializeHtmlFile(text,fields) {\n\tvar result = {};\n\t$tw.utils.each(fields,function(value,name) {\n\t\tresult[name] = value;\n\t});\n\tresult.text = text;\n\tresult.type = \"text/html\";\n\treturn [result];\n}\n\nfunction deserializeTiddlyWikiFile(text,storeAreaEnd,isTiddlyWiki5,fields) {\n\tvar results = [],\n\t\tendOfDivRegExp = /(<\\/div>\\s*)/gi,\n\t\tstartPos = storeAreaEnd,\n\t\tdefaultType = isTiddlyWiki5 ? undefined : \"text/x-tiddlywiki\";\n\tendOfDivRegExp.lastIndex = startPos;\n\tvar match = endOfDivRegExp.exec(text);\n\twhile(match) {\n\t\tvar endPos = endOfDivRegExp.lastIndex,\n\t\t\ttiddlerFields = parseTiddlerDiv(text.substring(startPos,endPos),fields,{type: defaultType});\n\t\tif(!tiddlerFields) {\n\t\t\tbreak;\n\t\t}\n\t\t$tw.utils.each(tiddlerFields,function(value,name) {\n\t\t\tif(typeof value === \"string\") {\n\t\t\t\ttiddlerFields[name] = $tw.utils.htmlDecode(value);\n\t\t\t}\n\t\t});\n\t\tif(tiddlerFields.text !== null) {\n\t\t\tresults.push(tiddlerFields);\n\t\t}\n\t\tstartPos = endPos;\n\t\tmatch = endOfDivRegExp.exec(text);\n\t}\n\treturn results;\n}\n\n})();\n",
            "title": "$:/core/modules/deserializers.js",
            "type": "application/javascript",
            "module-type": "tiddlerdeserializer"
        },
        "$:/core/modules/editor/engines/framed.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/engines/framed.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea within an iframe. This is done so that the selection is preserved even when clicking away from the textarea\n\n\\*/\n(function(){\n\n/*jslint node: true,browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction FramedEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Create our hidden dummy text area for reading styles\n\tthis.dummyTextArea = this.widget.document.createElement(\"textarea\");\n\tif(this.widget.editClass) {\n\t\tthis.dummyTextArea.className = this.widget.editClass;\n\t}\n\tthis.dummyTextArea.setAttribute(\"hidden\",\"true\");\n\tthis.parentNode.insertBefore(this.dummyTextArea,this.nextSibling);\n\tthis.widget.domNodes.push(this.dummyTextArea);\n\t// Create the iframe\n\tthis.iframeNode = this.widget.document.createElement(\"iframe\");\n\tthis.parentNode.insertBefore(this.iframeNode,this.nextSibling);\n\tthis.iframeDoc = this.iframeNode.contentWindow.document;\n\t// (Firefox requires us to put some empty content in the iframe)\n\tthis.iframeDoc.open();\n\tthis.iframeDoc.write(\"\");\n\tthis.iframeDoc.close();\n\t// Style the iframe\n\tthis.iframeNode.className = this.dummyTextArea.className;\n\tthis.iframeNode.style.border = \"none\";\n\tthis.iframeNode.style.padding = \"0\";\n\tthis.iframeNode.style.resize = \"none\";\n\tthis.iframeDoc.body.style.margin = \"0\";\n\tthis.iframeDoc.body.style.padding = \"0\";\n\tthis.widget.domNodes.push(this.iframeNode);\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.iframeDoc.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.iframeDoc.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\t// Copy the styles from the dummy textarea\n\tthis.copyStyles();\n\t// Add event listeners\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"input\",handlerObject: this,handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"keydown\",handlerObject: this.widget,handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.iframeDoc.body.appendChild(this.domNode);\n}\n\n/*\nCopy styles from the dummy text area to the textarea in the iframe\n*/\nFramedEngine.prototype.copyStyles = function() {\n\t// Copy all styles\n\t$tw.utils.copyStyles(this.dummyTextArea,this.domNode);\n\t// Override the ones that should not be set the same as the dummy textarea\n\tthis.domNode.style.display = \"block\";\n\tthis.domNode.style.width = \"100%\";\n\tthis.domNode.style.margin = \"0\";\n\t// In Chrome setting -webkit-text-fill-color overrides the placeholder text colour\n\tthis.domNode.style[\"-webkit-text-fill-color\"] = \"currentcolor\";\n};\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nFramedEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode) {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nFramedEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nFramedEngine.prototype.fixHeight = function() {\n\t// Make sure styles are updated\n\tthis.copyStyles();\n\t// Adjust height\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tvar newHeight = $tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t\tthis.iframeNode.style.height = (newHeight + 14) + \"px\"; // +14 for the border on the textarea\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t\tthis.iframeNode.style.height = (fixedHeight + 14) + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nFramedEngine.prototype.focus  = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nFramedEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nFramedEngine.prototype.createTextOperation = function() {\n\tvar operation = {\n\t\ttext: this.domNode.value,\n\t\tselStart: this.domNode.selectionStart,\n\t\tselEnd: this.domNode.selectionEnd,\n\t\tcutStart: null,\n\t\tcutEnd: null,\n\t\treplacement: null,\n\t\tnewSelStart: null,\n\t\tnewSelEnd: null\n\t};\n\toperation.selection = operation.text.substring(operation.selStart,operation.selEnd);\n\treturn operation;\n};\n\n/*\nExecute a text operation\n*/\nFramedEngine.prototype.executeTextOperation = function(operation) {\n\t// Perform the required changes to the text area and the underlying tiddler\n\tvar newText = operation.text;\n\tif(operation.replacement !== null) {\n\t\tnewText = operation.text.substring(0,operation.cutStart) + operation.replacement + operation.text.substring(operation.cutEnd);\n\t\t// Attempt to use a execCommand to modify the value of the control\n\t\tif(this.iframeDoc.queryCommandSupported(\"insertText\") && this.iframeDoc.queryCommandSupported(\"delete\") && !$tw.browser.isFirefox) {\n\t\t\tthis.domNode.focus();\n\t\t\tthis.domNode.setSelectionRange(operation.cutStart,operation.cutEnd);\n\t\t\tif(operation.replacement === \"\") {\n\t\t\t\tthis.iframeDoc.execCommand(\"delete\",false,\"\");\n\t\t\t} else {\n\t\t\t\tthis.iframeDoc.execCommand(\"insertText\",false,operation.replacement);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.domNode.value = newText;\n\t\t}\n\t\tthis.domNode.focus();\n\t\tthis.domNode.setSelectionRange(operation.newSelStart,operation.newSelEnd);\n\t}\n\tthis.domNode.focus();\n\treturn newText;\n};\n\nexports.FramedEngine = FramedEngine;\n\n})();\n",
            "title": "$:/core/modules/editor/engines/framed.js",
            "type": "application/javascript",
            "module-type": "library"
        },
        "$:/core/modules/editor/engines/simple.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/engines/simple.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction SimpleEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.widget.document.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.widget.document.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editClass) {\n\t\tthis.domNode.className = this.widget.editClass;\n\t}\n\t// Add an input event handler\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"focus\", handlerObject: this, handlerMethod: \"handleFocusEvent\"},\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInputEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.parentNode.insertBefore(this.domNode,this.nextSibling);\n\tthis.widget.domNodes.push(this.domNode);\n}\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nSimpleEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode || text === \"\") {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nSimpleEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nSimpleEngine.prototype.fixHeight = function() {\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\t$tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nSimpleEngine.prototype.focus  = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nSimpleEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"focus\" event\n*/\nSimpleEngine.prototype.handleFocusEvent = function(event) {\n\tif(this.widget.editFocusPopup) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNode,\n\t\t\ttitle: this.widget.editFocusPopup,\n\t\t\twiki: this.widget.wiki,\n\t\t\tforce: true\n\t\t});\n\t}\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nSimpleEngine.prototype.createTextOperation = function() {\n\treturn null;\n};\n\n/*\nExecute a text operation\n*/\nSimpleEngine.prototype.executeTextOperation = function(operation) {\n};\n\nexports.SimpleEngine = SimpleEngine;\n\n})();\n",
            "title": "$:/core/modules/editor/engines/simple.js",
            "type": "application/javascript",
            "module-type": "library"
        },
        "$:/core/modules/editor/factory.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/factory.js\ntype: application/javascript\nmodule-type: library\n\nFactory for constructing text editor widgets with specified engines for the toolbar and non-toolbar cases\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_MIN_TEXT_AREA_HEIGHT = \"100px\"; // Minimum height of textareas in pixels\n\n// Configuration tiddlers\nvar HEIGHT_MODE_TITLE = \"$:/config/TextEditor/EditorHeight/Mode\";\nvar ENABLE_TOOLBAR_TITLE = \"$:/config/TextEditor/EnableToolbar\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nfunction editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {\n\n\tvar EditTextWidget = function(parseTreeNode,options) {\n\t\t// Initialise the editor operations if they've not been done already\n\t\tif(!this.editorOperations) {\n\t\t\tEditTextWidget.prototype.editorOperations = {};\n\t\t\t$tw.modules.applyMethods(\"texteditoroperation\",this.editorOperations);\n\t\t}\n\t\tthis.initialise(parseTreeNode,options);\n\t};\n\n\t/*\n\tInherit from the base widget class\n\t*/\n\tEditTextWidget.prototype = new Widget();\n\n\t/*\n\tRender this widget into the DOM\n\t*/\n\tEditTextWidget.prototype.render = function(parent,nextSibling) {\n\t\t// Save the parent dom node\n\t\tthis.parentDomNode = parent;\n\t\t// Compute our attributes\n\t\tthis.computeAttributes();\n\t\t// Execute our logic\n\t\tthis.execute();\n\t\t// Create the wrapper for the toolbar and render its content\n\t\tif(this.editShowToolbar) {\n\t\t\tthis.toolbarNode = this.document.createElement(\"div\");\n\t\t\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\t\t\tparent.insertBefore(this.toolbarNode,nextSibling);\n\t\t\tthis.renderChildren(this.toolbarNode,null);\n\t\t\tthis.domNodes.push(this.toolbarNode);\n\t\t}\n\t\t// Create our element\n\t\tvar editInfo = this.getEditInfo(),\n\t\t\tEngine = this.editShowToolbar ? toolbarEngine : nonToolbarEngine;\n\t\tthis.engine = new Engine({\n\t\t\t\twidget: this,\n\t\t\t\tvalue: editInfo.value,\n\t\t\t\ttype: editInfo.type,\n\t\t\t\tparentNode: parent,\n\t\t\t\tnextSibling: nextSibling\n\t\t\t});\n\t\t// Call the postRender hook\n\t\tif(this.postRender) {\n\t\t\tthis.postRender();\n\t\t}\n\t\t// Fix height\n\t\tthis.engine.fixHeight();\n\t\t// Focus if required\n\t\tif(this.editFocus === \"true\" || this.editFocus === \"yes\") {\n\t\t\tthis.engine.focus();\n\t\t}\n\t\t// Add widget message listeners\n\t\tthis.addEventListeners([\n\t\t\t{type: \"tm-edit-text-operation\", handler: \"handleEditTextOperationMessage\"}\n\t\t]);\n\t};\n\n\t/*\n\tGet the tiddler being edited and current value\n\t*/\n\tEditTextWidget.prototype.getEditInfo = function() {\n\t\t// Get the edit value\n\t\tvar self = this,\n\t\t\tvalue,\n\t\t\ttype = \"text/plain\",\n\t\t\tupdate;\n\t\tif(this.editIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.editTitle,this.editIndex,this.editDefault);\n\t\t\tupdate = function(value) {\n\t\t\t\tvar data = self.wiki.getTiddlerData(self.editTitle,{});\n\t\t\t\tif(data[self.editIndex] !== value) {\n\t\t\t\t\tdata[self.editIndex] = value;\n\t\t\t\t\tself.wiki.setTiddlerData(self.editTitle,data);\n\t\t\t\t}\n\t\t\t};\n\t\t} else {\n\t\t\t// Get the current tiddler and the field name\n\t\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\t\tif(tiddler) {\n\t\t\t\t// If we've got a tiddler, the value to display is the field string value\n\t\t\t\tvalue = tiddler.getFieldString(this.editField);\n\t\t\t\tif(this.editField === \"text\") {\n\t\t\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise, we need to construct a default value for the editor\n\t\t\t\tswitch(this.editField) {\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\tvalue = \"Type the text for the tiddler '\" + this.editTitle + \"'\";\n\t\t\t\t\t\ttype = \"text/vnd.tiddlywiki\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"title\":\n\t\t\t\t\t\tvalue = this.editTitle;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvalue = \"\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(this.editDefault !== undefined) {\n\t\t\t\t\tvalue = this.editDefault;\n\t\t\t\t}\n\t\t\t}\n\t\t\tupdate = function(value) {\n\t\t\t\tvar tiddler = self.wiki.getTiddler(self.editTitle),\n\t\t\t\t\tupdateFields = {\n\t\t\t\t\t\ttitle: self.editTitle\n\t\t\t\t\t};\n\t\t\t\tupdateFields[self.editField] = value;\n\t\t\t\tself.wiki.addTiddler(new $tw.Tiddler(self.wiki.getCreationFields(),tiddler,updateFields,self.wiki.getModificationFields()));\n\t\t\t};\n\t\t}\n\t\tif(this.editType) {\n\t\t\ttype = this.editType;\n\t\t}\n\t\treturn {value: value || \"\", type: type, update: update};\n\t};\n\n\t/*\n\tHandle an edit text operation message from the toolbar\n\t*/\n\tEditTextWidget.prototype.handleEditTextOperationMessage = function(event) {\n\t\t// Prepare information about the operation\n\t\tvar operation = this.engine.createTextOperation();\n\t\t// Invoke the handler for the selected operation\n\t\tvar handler = this.editorOperations[event.param];\n\t\tif(handler) {\n\t\t\thandler.call(this,event,operation);\n\t\t}\n\t\t// Execute the operation via the engine\n\t\tvar newText = this.engine.executeTextOperation(operation);\n\t\t// Fix the tiddler height and save changes\n\t\tthis.engine.fixHeight();\n\t\tthis.saveChanges(newText);\n\t};\n\n\t/*\n\tCompute the internal state of the widget\n\t*/\n\tEditTextWidget.prototype.execute = function() {\n\t\t// Get our parameters\n\t\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t\tthis.editField = this.getAttribute(\"field\",\"text\");\n\t\tthis.editIndex = this.getAttribute(\"index\");\n\t\tthis.editDefault = this.getAttribute(\"default\");\n\t\tthis.editClass = this.getAttribute(\"class\");\n\t\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\t\tthis.editSize = this.getAttribute(\"size\");\n\t\tthis.editRows = this.getAttribute(\"rows\");\n\t\tthis.editAutoHeight = this.wiki.getTiddlerText(HEIGHT_MODE_TITLE,\"auto\");\n\t\tthis.editAutoHeight = this.getAttribute(\"autoHeight\",this.editAutoHeight === \"auto\" ? \"yes\" : \"no\") === \"yes\";\n\t\tthis.editMinHeight = this.getAttribute(\"minHeight\",DEFAULT_MIN_TEXT_AREA_HEIGHT);\n\t\tthis.editFocusPopup = this.getAttribute(\"focusPopup\");\n\t\tthis.editFocus = this.getAttribute(\"focus\");\n\t\t// Get the default editor element tag and type\n\t\tvar tag,type;\n\t\tif(this.editField === \"text\") {\n\t\t\ttag = \"textarea\";\n\t\t} else {\n\t\t\ttag = \"input\";\n\t\t\tvar fieldModule = $tw.Tiddler.fieldModules[this.editField];\n\t\t\tif(fieldModule && fieldModule.editTag) {\n\t\t\t\ttag = fieldModule.editTag;\n\t\t\t}\n\t\t\tif(fieldModule && fieldModule.editType) {\n\t\t\t\ttype = fieldModule.editType;\n\t\t\t}\n\t\t\ttype = type || \"text\";\n\t\t}\n\t\t// Get the rest of our parameters\n\t\tthis.editTag = this.getAttribute(\"tag\",tag);\n\t\tthis.editType = this.getAttribute(\"type\",type);\n\t\t// Make the child widgets\n\t\tthis.makeChildWidgets();\n\t\t// Determine whether to show the toolbar\n\t\tthis.editShowToolbar = this.wiki.getTiddlerText(ENABLE_TOOLBAR_TITLE,\"yes\");\n\t\tthis.editShowToolbar = (this.editShowToolbar === \"yes\") && !!(this.children && this.children.length > 0);\n\t};\n\n\t/*\n\tSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n\t*/\n\tEditTextWidget.prototype.refresh = function(changedTiddlers) {\n\t\tvar changedAttributes = this.computeAttributes();\n\t\t// Completely rerender if any of our attributes have changed\n\t\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.placeholder || changedAttributes.size || changedAttributes.autoHeight || changedAttributes.minHeight || changedAttributes.focusPopup ||  changedAttributes.rows || changedTiddlers[HEIGHT_MODE_TITLE] || changedTiddlers[ENABLE_TOOLBAR_TITLE]) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t\t} else if(changedTiddlers[this.editTitle]) {\n\t\t\tvar editInfo = this.getEditInfo();\n\t\t\tthis.updateEditor(editInfo.value,editInfo.type);\n\t\t}\n\t\tthis.engine.fixHeight();\n\t\tif(this.editShowToolbar) {\n\t\t\treturn this.refreshChildren(changedTiddlers);\t\t\t\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\t/*\n\tUpdate the editor with new text. This method is separate from updateEditorDomNode()\n\tso that subclasses can override updateEditor() and still use updateEditorDomNode()\n\t*/\n\tEditTextWidget.prototype.updateEditor = function(text,type) {\n\t\tthis.updateEditorDomNode(text,type);\n\t};\n\n\t/*\n\tUpdate the editor dom node with new text\n\t*/\n\tEditTextWidget.prototype.updateEditorDomNode = function(text,type) {\n\t\tthis.engine.setText(text,type);\n\t};\n\n\t/*\n\tSave changes back to the tiddler store\n\t*/\n\tEditTextWidget.prototype.saveChanges = function(text) {\n\t\tvar editInfo = this.getEditInfo();\n\t\tif(text !== editInfo.value) {\n\t\t\teditInfo.update(text);\n\t\t}\n\t};\n\n\t/*\n\tHandle a dom \"keydown\" event, which we'll bubble up to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.handleKeydownEvent = function(event) {\n\t\t// Check for a keyboard shortcut\n\t\tif(this.toolbarNode) {\n\t\t\tvar shortcutElements = this.toolbarNode.querySelectorAll(\"[data-tw-keyboard-shortcut]\");\n\t\t\tfor(var index=0; index<shortcutElements.length; index++) {\n\t\t\t\tvar el = shortcutElements[index],\n\t\t\t\t\tshortcutData = el.getAttribute(\"data-tw-keyboard-shortcut\"),\n\t\t\t\t\tkeyInfoArray = $tw.keyboardManager.parseKeyDescriptors(shortcutData,{\n\t\t\t\t\t\twiki: this.wiki\n\t\t\t\t\t});\n\t\t\t\tif($tw.keyboardManager.checkKeyDescriptors(event,keyInfoArray)) {\n\t\t\t\t\tvar clickEvent = this.document.createEvent(\"Events\");\n\t\t\t\t    clickEvent.initEvent(\"click\",true,false);\n\t\t\t\t    el.dispatchEvent(clickEvent);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\treturn true;\t\t\t\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Propogate the event to the container\n\t\tif(this.propogateKeydownEvent(event)) {\n\t\t\t// Ignore the keydown if it was already handled\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\t// Otherwise, process the keydown normally\n\t\treturn false;\n\t};\n\n\t/*\n\tPropogate keydown events to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.propogateKeydownEvent = function(event) {\n\t\tvar newEvent = this.document.createEventObject ? this.document.createEventObject() : this.document.createEvent(\"Events\");\n\t\tif(newEvent.initEvent) {\n\t\t\tnewEvent.initEvent(\"keydown\", true, true);\n\t\t}\n\t\tnewEvent.keyCode = event.keyCode;\n\t\tnewEvent.which = event.which;\n\t\tnewEvent.metaKey = event.metaKey;\n\t\tnewEvent.ctrlKey = event.ctrlKey;\n\t\tnewEvent.altKey = event.altKey;\n\t\tnewEvent.shiftKey = event.shiftKey;\n\t\treturn !this.parentDomNode.dispatchEvent(newEvent);\n\t};\n\n\treturn EditTextWidget;\n\n}\n\nexports.editTextWidgetFactory = editTextWidgetFactory;\n\n})();\n",
            "title": "$:/core/modules/editor/factory.js",
            "type": "application/javascript",
            "module-type": "library"
        },
        "$:/core/modules/editor/operations/bitmap/clear.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/clear.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to clear the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"clear\"] = function(event) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.globalAlpha = 1;\n\tctx.fillStyle = event.paramObject.colour || \"white\";\n\tctx.fillRect(0,0,this.canvasDomNode.width,this.canvasDomNode.height);\n\t// Save changes\n\tthis.strokeEnd();\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/bitmap/clear.js",
            "type": "application/javascript",
            "module-type": "bitmapeditoroperation"
        },
        "$:/core/modules/editor/operations/bitmap/resize.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/resize.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to resize the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"resize\"] = function(event) {\n\t// Get the new width\n\tvar newWidth = parseInt(event.paramObject.width || this.canvasDomNode.width,10),\n\t\tnewHeight = parseInt(event.paramObject.height || this.canvasDomNode.height,10);\n\t// Update if necessary\n\tif(newWidth > 0 && newHeight > 0 && !(newWidth === this.currCanvas.width && newHeight === this.currCanvas.height)) {\n\t\tthis.changeCanvasSize(newWidth,newHeight);\n\t}\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/bitmap/resize.js",
            "type": "application/javascript",
            "module-type": "bitmapeditoroperation"
        },
        "$:/core/modules/editor/operations/text/excise.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/excise.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to excise the selection to a new tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"excise\"] = function(event,operation) {\n\tvar editTiddler = this.wiki.getTiddler(this.editTitle),\n\t\teditTiddlerTitle = this.editTitle;\n\tif(editTiddler && editTiddler.fields[\"draft.of\"]) {\n\t\teditTiddlerTitle = editTiddler.fields[\"draft.of\"];\n\t}\n\tvar excisionTitle = event.paramObject.title || this.wiki.generateNewTitle(\"New Excision\");\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\tthis.wiki.getModificationFields(),\n\t\t{\n\t\t\ttitle: excisionTitle,\n\t\t\ttext: operation.selection,\n\t\t\ttags: event.paramObject.tagnew === \"yes\" ?  [editTiddlerTitle] : []\n\t\t}\n\t));\n\toperation.replacement = excisionTitle;\n\tswitch(event.paramObject.type || \"transclude\") {\n\t\tcase \"transclude\":\n\t\t\toperation.replacement = \"{{\" + operation.replacement+ \"}}\";\n\t\t\tbreak;\n\t\tcase \"link\":\n\t\t\toperation.replacement = \"[[\" + operation.replacement+ \"]]\";\n\t\t\tbreak;\n\t\tcase \"macro\":\n\t\t\toperation.replacement = \"<<\" + (event.paramObject.macro || \"translink\") + \" \\\"\\\"\\\"\" + operation.replacement + \"\\\"\\\"\\\">>\";\n\t\t\tbreak;\n\t}\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/text/excise.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/make-link.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/make-link.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to make a link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"make-link\"] = function(event,operation) {\n\tif(operation.selection) {\n\t\toperation.replacement = \"[[\" + operation.selection + \"|\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t} else {\n\t\toperation.replacement = \"[[\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t}\n\toperation.newSelStart = operation.selStart + operation.replacement.length;\n\toperation.newSelEnd = operation.newSelStart;\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/text/make-link.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/prefix-lines.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/prefix-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to add a prefix to the selected lines\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"prefix-lines\"] = function(event,operation) {\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Compose the required prefix\n\tvar prefix = $tw.utils.repeat(event.paramObject.character,event.paramObject.count);\n\t// Process each line\n\tvar lines = operation.text.substring(operation.cutStart,operation.cutEnd).split(/\\r?\\n/mg);\n\t$tw.utils.each(lines,function(line,index) {\n\t\t// Remove and count any existing prefix characters\n\t\tvar count = 0;\n\t\twhile(line.charAt(0) === event.paramObject.character) {\n\t\t\tline = line.substring(1);\n\t\t\tcount++;\n\t\t}\n\t\t// Remove any whitespace\n\t\twhile(line.charAt(0) === \" \") {\n\t\t\tline = line.substring(1);\n\t\t}\n\t\t// We're done if we removed the exact required prefix, otherwise add it\n\t\tif(count !== event.paramObject.count) {\n\t\t\t// Apply the prefix\n\t\t\tline =  prefix + \" \" + line;\n\t\t}\n\t\t// Save the modified line\n\t\tlines[index] = line;\n\t});\n\t// Stitch the replacement text together and set the selection\n\toperation.replacement = lines.join(\"\\n\");\n\tif(lines.length === 1) {\n\t\toperation.newSelStart = operation.cutStart + operation.replacement.length;\n\t\toperation.newSelEnd = operation.newSelStart;\n\t} else {\n\t\toperation.newSelStart = operation.cutStart;\n\t\toperation.newSelEnd = operation.newSelStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/text/prefix-lines.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/replace-all.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-all.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the entire text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-all\"] = function(event,operation) {\n\toperation.cutStart = 0;\n\toperation.cutEnd = operation.text.length;\n\toperation.replacement = event.paramObject.text;\n\toperation.newSelStart = 0;\n\toperation.newSelEnd = operation.replacement.length;\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/text/replace-all.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/replace-selection.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the selection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-selection\"] = function(event,operation) {\n\toperation.replacement = event.paramObject.text;\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/text/replace-selection.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/wrap-lines.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selected lines with a prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-lines\"] = function(event,operation) {\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Add the prefix and suffix\n\toperation.replacement = event.paramObject.prefix + \"\\n\" +\n\t\t\t\toperation.text.substring(operation.cutStart,operation.cutEnd) + \"\\n\" +\n\t\t\t\tevent.paramObject.suffix + \"\\n\";\n\toperation.newSelStart = operation.cutStart + event.paramObject.prefix.length + 1;\n\toperation.newSelEnd = operation.newSelStart + (operation.cutEnd - operation.cutStart);\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/text/wrap-lines.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/wrap-selection.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selection with the specified prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-selection\"] = function(event,operation) {\n\tif(operation.selStart === operation.selEnd) {\n\t\t// No selection; check if we're within the prefix/suffix\n\t\tif(operation.text.substring(operation.selStart - event.paramObject.prefix.length,operation.selStart + event.paramObject.suffix.length) === event.paramObject.prefix + event.paramObject.suffix) {\n\t\t\t// Remove the prefix and suffix unless they comprise the entire text\n\t\t\tif(operation.selStart > event.paramObject.prefix.length || (operation.selEnd + event.paramObject.suffix.length) < operation.text.length ) {\n\t\t\t\toperation.cutStart = operation.selStart - event.paramObject.prefix.length;\n\t\t\t\toperation.cutEnd = operation.selEnd + event.paramObject.suffix.length;\n\t\t\t\toperation.replacement = \"\";\n\t\t\t\toperation.newSelStart = operation.cutStart;\n\t\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t\t}\n\t\t} else {\n\t\t\t// Wrap the cursor instead\n\t\t\toperation.cutStart = operation.selStart;\n\t\t\toperation.cutEnd = operation.selEnd;\n\t\t\toperation.replacement = event.paramObject.prefix + event.paramObject.suffix;\n\t\t\toperation.newSelStart = operation.selStart + event.paramObject.prefix.length;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t}\n\t} else if(operation.text.substring(operation.selStart,operation.selStart + event.paramObject.prefix.length) === event.paramObject.prefix && operation.text.substring(operation.selEnd - event.paramObject.suffix.length,operation.selEnd) === event.paramObject.suffix) {\n\t\t// Prefix and suffix are already present, so remove them\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = operation.selection.substring(event.paramObject.prefix.length,operation.selection.length - event.paramObject.suffix.length);\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t} else {\n\t\t// Add the prefix and suffix\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = event.paramObject.prefix + operation.selection + event.paramObject.suffix;\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/text/wrap-selection.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/filters/addprefix.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/addprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a prefix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand + title);\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/addprefix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/addsuffix.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/addsuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a suffix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addsuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title + operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/addsuffix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/after.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/after.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is after the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.after = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index === -1 || index > (results.length - 2)) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index + 1]];\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/filters/after.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/all/current.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/all/current.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar currTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(currTiddlerTitle) {\n\t\treturn [currTiddlerTitle];\n\t} else {\n\t\treturn [];\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/filters/all/current.js",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/missing.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/all/missing.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\treturn options.wiki.getMissingTitles();\n};\n\n})();\n",
            "title": "$:/core/modules/filters/all/missing.js",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/orphans.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/all/orphans.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[orphans]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphans = function(source,prefix,options) {\n\treturn options.wiki.getOrphanTitles();\n};\n\n})();\n",
            "title": "$:/core/modules/filters/all/orphans.js",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/shadows.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/all/shadows.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[shadows]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadows = function(source,prefix,options) {\n\treturn options.wiki.allShadowTitles();\n};\n\n})();\n",
            "title": "$:/core/modules/filters/all/shadows.js",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/tags.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/all/tags.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tags]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,prefix,options) {\n\treturn Object.keys(options.wiki.getTagMap());\n};\n\n})();\n",
            "title": "$:/core/modules/filters/all/tags.js",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/tiddlers.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/all/tiddlers.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddlers = function(source,prefix,options) {\n\treturn options.wiki.allTitles();\n};\n\n})();\n",
            "title": "$:/core/modules/filters/all/tiddlers.js",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/all.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for selecting tiddlers\n\n[all[shadows+tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar allFilterOperators;\n\nfunction getAllFilterOperators() {\n\tif(!allFilterOperators) {\n\t\tallFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"allfilteroperator\",allFilterOperators);\n\t}\n\treturn allFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.all = function(source,operator,options) {\n\t// Get our suboperators\n\tvar allFilterOperators = getAllFilterOperators();\n\t// Cycle through the suboperators accumulating their results\n\tvar results = [],\n\t\tsubops = operator.operand.split(\"+\");\n\t// Check for common optimisations\n\tif(subops.length === 1 && subops[0] === \"\") {\n\t\treturn source;\n\t} else if(subops.length === 1 && subops[0] === \"tiddlers\") {\n\t\treturn options.wiki.each;\n\t} else if(subops.length === 1 && subops[0] === \"shadows\") {\n\t\treturn options.wiki.eachShadow;\n\t} else if(subops.length === 2 && subops[0] === \"tiddlers\" && subops[1] === \"shadows\") {\n\t\treturn options.wiki.eachTiddlerPlusShadows;\n\t} else if(subops.length === 2 && subops[0] === \"shadows\" && subops[1] === \"tiddlers\") {\n\t\treturn options.wiki.eachShadowPlusTiddlers;\n\t}\n\t// Do it the hard way\n\tfor(var t=0; t<subops.length; t++) {\n\t\tvar subop = allFilterOperators[subops[t]];\n\t\tif(subop) {\n\t\t\t$tw.utils.pushTop(results,subop(source,operator.prefix,options));\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/all.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/backlinks.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/backlinks.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the backlinks from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.backlinks = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerBacklinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/backlinks.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/before.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/before.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is before the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.before = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index <= 0) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index - 1]];\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/filters/before.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/commands.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/commands.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the commands available in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.commands = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.commands,function(commandInfo,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/commands.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/count.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/count.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the number of entries in the current list.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.count = function(source,operator,options) {\n\tvar count = 0;\n\tsource(function(tiddler,title) {\n\t\tcount++;\n\t});\n\treturn [count + \"\"];\n};\n\n})();\n",
            "title": "$:/core/modules/filters/count.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/days.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/days.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a specified date field within a specified date interval.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.days = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\tdayInterval = (parseInt(operator.operand,10)||0),\n\t\tdayIntervalSign = $tw.utils.sign(dayInterval),\n\t\ttargetTimeStamp = (new Date()).setHours(0,0,0,0) + 1000*60*60*24*dayInterval,\n\t\tisWithinDays = function(dateField) {\n\t\t\tvar sign = $tw.utils.sign(targetTimeStamp - (new Date(dateField)).setHours(0,0,0,0));\n\t\t\treturn sign === 0 || sign === dayIntervalSign;\n\t\t};\n\n\tif(operator.prefix === \"!\") {\n\t\ttargetTimeStamp = targetTimeStamp - 1000*60*60*24*dayIntervalSign;\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(!isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/days.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/each.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/each.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique value of the specified field.\nWith suffix \"list\", selects all tiddlers that are values in a specified list field.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.each = function(source,operator,options) {\n\tvar results =[] ,\n\t\tvalue,values = {},\n\t\tfield = operator.operand || \"title\";\n\tif(operator.suffix !== \"list-item\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvalue = (field === \"title\") ? title : tiddler.getFieldString(field);\n\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\t$tw.utils.each(\n\t\t\t\t\toptions.wiki.getTiddlerList(title,field),\n\t\t\t\t\tfunction(value) {\n\t\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\t\tresults.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/each.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/eachday.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/eachday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique day covered by the specified date field\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.eachday = function(source,operator,options) {\n\tvar results = [],\n\t\tvalues = [],\n\t\tfieldName = operator.operand || \"modified\";\n\t// Function to convert a date/time to a date integer\n\tvar toDate = function(value) {\n\t\tvalue = (new Date(value)).setHours(0,0,0,0);\n\t\treturn value+0;\n\t};\n\tsource(function(tiddler,title) {\n\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\tvar value = toDate($tw.utils.parseDate(tiddler.fields[fieldName]));\n\t\t\tif(values.indexOf(value) === -1) {\n\t\t\t\tvalues.push(value);\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/eachday.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/editiondescription.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/editiondescription.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the descriptions of the specified edition names\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editiondescription = function(source,operator,options) {\n\tvar results = [],\n\t\teditionInfo = $tw.utils.getEditionInfo();\n\tif(editionInfo) {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(editionInfo,title)) {\n\t\t\t\tresults.push(editionInfo[title].description || \"\");\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/editiondescription.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/editions.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/editions.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the available editions in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editions = function(source,operator,options) {\n\tvar results = [],\n\t\teditionInfo = $tw.utils.getEditionInfo();\n\tif(editionInfo) {\n\t\t$tw.utils.each(editionInfo,function(info,name) {\n\t\t\tresults.push(name);\n\t\t});\n\t}\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/editions.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/decodeuricomponent.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/decodeuricomponent.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for applying decodeURIComponent() to each item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter functions\n*/\n\nexports.decodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(decodeURIComponent(title));\n\t});\n\treturn results;\n};\n\nexports.encodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURIComponent(title));\n\t});\n\treturn results;\n};\n\nexports.decodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(decodeURI(title));\n\t});\n\treturn results;\n};\n\nexports.encodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURI(title));\n\t});\n\treturn results;\n};\n\nexports.decodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlDecode(title));\n\t});\n\treturn results;\n};\n\nexports.encodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlEncode(title));\n\t});\n\treturn results;\n};\n\nexports.stringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.stringify(title));\n\t});\n\treturn results;\n};\n\nexports.escaperegexp = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.escapeRegExp(title));\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/decodeuricomponent.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/enlist.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/enlist.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand parsed as a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.enlist = function(source,operator,options) {\n\tvar list = $tw.utils.parseStringArray(operator.operand);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/filters/enlist.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/field.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/field.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.field = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || operator.operator || \"title\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text !== operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !!operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text === operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/field.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/fields.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/fields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.fields = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tfor(var fieldName in tiddler.fields) {\n\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/fields.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/get.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/get.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing tiddler titles by the value of the field specified in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.get = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tvar value = tiddler.getFieldString(operator.operand);\n\t\t\tif(value) {\n\t\t\t\tresults.push(value);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/get.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/getindex.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/getindex.js\ntype: application/javascript\nmodule-type: filteroperator\n\nreturns the value at a given index of datatiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getindex = function(source,operator,options) {\n\tvar data,title,results = [];\n\tif(operator.operand){\n\t\tsource(function(tiddler,title) {\n\t\t\ttitle = tiddler ? tiddler.fields.title : title;\n\t\t\tdata = options.wiki.extractTiddlerDataItem(tiddler,operator.operand);\n\t\t\tif(data) {\n\t\t\t\tresults.push(data);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/getindex.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/has.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/has.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a tiddler has the specified field\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.has = function(source,operator,options) {\n\tvar results = [],\n\t\tinvert = operator.prefix === \"!\";\n\n\tif(operator.suffix === \"field\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop(tiddler.fields,operator.operand)))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || !$tw.utils.hop(tiddler.fields,operator.operand) || (tiddler.fields[operator.operand] === \"\")) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand) && !(tiddler.fields[operator.operand] === \"\" || tiddler.fields[operator.operand].length === 0)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/has.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/haschanged.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/haschanged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returns tiddlers from the list that have a non-zero changecount.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.haschanged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) === 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) > 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/haschanged.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/indexes.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/indexes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the indexes of a data tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.indexes = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar data = options.wiki.getTiddlerDataCached(title);\n\t\tif(data) {\n\t\t\t$tw.utils.pushTop(results,Object.keys(data));\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/indexes.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/insertbefore.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/insertbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nInsert an item before another item in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.insertbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar target = options.widget && options.widget.getVariable(operator.suffix || \"currentTiddler\");\n\tif(target !== operator.operand) {\n\t\t// Remove the entry from the list if it is present\n\t\tvar pos = results.indexOf(operator.operand);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,1);\n\t\t}\n\t\t// Insert the entry before the target marker\n\t\tpos = results.indexOf(target);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,0,operator.operand);\n\t\t} else {\n\t\t\tresults.push(operator.operand);\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/insertbefore.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/is/current.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/current.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar results = [],\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title !== currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title === currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/current.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/image.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/image.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[image]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.image = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/image.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/missing.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/missing.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/missing.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/orphan.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/orphan.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[orphan]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphan = function(source,prefix,options) {\n\tvar results = [],\n\t\torphanTitles = options.wiki.getOrphanTitles();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) !== -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/orphan.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/shadow.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/shadow.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[shadow]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadow = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/shadow.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/system.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/system.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[system]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.system = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/system.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/tag.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/tag.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tag]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,prefix,options) {\n\tvar results = [],\n\t\ttagMap = options.wiki.getTagMap();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/tag.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/tiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/tiddler.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tiddler]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddler = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/tiddler.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking tiddler properties\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar isFilterOperators;\n\nfunction getIsFilterOperators() {\n\tif(!isFilterOperators) {\n\t\tisFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"isfilteroperator\",isFilterOperators);\n\t}\n\treturn isFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.is = function(source,operator,options) {\n\t// Dispatch to the correct isfilteroperator\n\tvar isFilterOperators = getIsFilterOperators();\n\tif(operator.operand) {\n\t\tvar isFilterOperator = isFilterOperators[operator.operand];\n\t\tif(isFilterOperator) {\n\t\t\treturn isFilterOperator(source,operator.prefix,options);\n\t\t} else {\n\t\t\treturn [$tw.language.getString(\"Error/IsFilterOperator\")];\n\t\t}\n\t} else {\n\t\t// Return all tiddlers if the operand is missing\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t\treturn results;\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/limit.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/limit.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for chopping the results to a specified maximum number of entries\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.limit = function(source,operator,options) {\n\tvar results = [];\n\t// Convert to an array\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\t// Slice the array if necessary\n\tvar limit = Math.min(results.length,parseInt(operator.operand,10));\n\tif(operator.prefix === \"!\") {\n\t\tresults = results.slice(-limit);\n\t} else {\n\t\tresults = results.slice(0,limit);\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/limit.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/links.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/links.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the links from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.links = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerLinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/links.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/list.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/list.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddlers whose title is listed in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.list = function(source,operator,options) {\n\tvar results = [],\n\t\ttr = $tw.utils.parseTextReference(operator.operand),\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\"),\n\t\tlist = options.wiki.getTiddlerList(tr.title || currTiddlerTitle,tr.field,tr.index);\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults = list;\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/list.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/listed.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/listed.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that have the selected tiddlers in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.listed = function(source,operator,options) {\n\tvar field = operator.operand || \"list\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.findListingsOfTiddler(title,field));\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/listed.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/listops.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for manipulating the current selection list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.order = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.operand.toLowerCase() === \"reverse\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.unshift(title);\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\t\t\n\t}\n\treturn results;\n};\n\n/*\nReverse list\n*/\nexports.reverse = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.unshift(title);\n\t});\n\treturn results;\n};\n\n/*\nFirst entry/entries in list\n*/\nexports.first = function(source,operator,options) {\n\tvar count = parseInt(operator.operand) || 1,\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,count);\n};\n\n/*\nLast entry/entries in list\n*/\nexports.last = function(source,operator,options) {\n\tvar count = parseInt(operator.operand) || 1,\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(-count);\n};\n\n/*\nAll but the first entry/entries of the list\n*/\nexports.rest = function(source,operator,options) {\n\tvar count = parseInt(operator.operand) || 1,\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count);\n};\nexports.butfirst = exports.rest;\nexports.bf = exports.rest;\n\n/*\nAll but the last entry/entries of the list\n*/\nexports.butlast = function(source,operator,options) {\n\tvar count = parseInt(operator.operand) || 1,\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,-count);\n};\nexports.bl = exports.butlast;\n\n/*\nThe nth member of the list\n*/\nexports.nth = function(source,operator,options) {\n\tvar count = parseInt(operator.operand) || 1,\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count - 1,count);\n};\n\n})();\n",
            "title": "$:/core/modules/filters/listops.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/minlength.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/minlength.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for filtering out titles that don't meet the minimum length in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.minlength = function(source,operator,options) {\n\tvar results = [],\n\t\tminLength = parseInt(operator.operand || \"\",10) || 0;\n\tsource(function(tiddler,title) {\n\t\tif(title.length >= minLength) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/minlength.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/modules.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/modules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the modules of a given type in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.modules = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.each($tw.modules.types[title],function(moduleInfo,moduleName) {\n\t\t\tresults.push(moduleName);\n\t\t});\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/modules.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/moduletypes.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/moduletypes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the module types in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.moduletypes = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.modules.types,function(moduleInfo,type) {\n\t\tresults.push(type);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/moduletypes.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/next.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/next.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs next in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.next = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch++;\n\t\tif(match > 0 && match < list.length) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/next.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/plugintiddlers.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/plugintiddlers.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the shadow tiddlers within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.plugintiddlers = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar pluginInfo = options.wiki.getPluginInfo(title) || options.wiki.getTiddlerDataCached(title,{tiddlers:[]});\n\t\tif(pluginInfo && pluginInfo.tiddlers) {\n\t\t\t$tw.utils.each(pluginInfo.tiddlers,function(fields,title) {\n\t\t\t\tresults.push(title);\n\t\t\t});\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/plugintiddlers.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/prefix.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/prefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title starts with a prefix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.prefix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/prefix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/previous.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/previous.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs immediately prior in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.previous = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch--;\n\t\tif(match >= 0) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/previous.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/regexp.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/regexp.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for regexp matching\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.regexp = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"title\").toLowerCase(),\n\t\tregexpString, regexp, flags = \"\", match,\n\t\tgetFieldString = function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\treturn tiddler.getFieldString(fieldname);\n\t\t\t} else if(fieldname === \"title\") {\n\t\t\t\treturn title;\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\t// Process flags and construct regexp\n\tregexpString = operator.operand;\n\tmatch = /^\\(\\?([gim]+)\\)/.exec(regexpString);\n\tif(match) {\n\t\tflags = match[1];\n\t\tregexpString = regexpString.substr(match[0].length);\n\t} else {\n\t\tmatch = /\\(\\?([gim]+)\\)$/.exec(regexpString);\n\t\tif(match) {\n\t\t\tflags = match[1];\n\t\t\tregexpString = regexpString.substr(0,regexpString.length - match[0].length);\n\t\t}\n\t}\n\ttry {\n\t\tregexp = new RegExp(regexpString,flags);\n\t} catch(e) {\n\t\treturn [\"\" + e];\n\t}\n\t// Process the incoming tiddlers\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/regexp.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/removeprefix.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/removeprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a prefix from each title in the list. Titles that do not start with the prefix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removeprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/removeprefix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/removesuffix.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/removesuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a suffix from each title in the list. Titles that do not end with the suffix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removesuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title.substr(-operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(0,title.length - operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/removesuffix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/sameday.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/sameday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a modified date field on the same day as the provided value.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sameday = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\ttargetDate = (new Date($tw.utils.parseDate(operator.operand))).setHours(0,0,0,0);\n\t// Function to convert a date/time to a date integer\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(tiddler.getFieldDay(fieldName) === targetDate) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/sameday.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/search.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/search.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for searching for the text in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.search = function(source,operator,options) {\n\tvar invert = operator.prefix === \"!\";\n\tif(operator.suffix) {\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert,\n\t\t\tfield: operator.suffix\n\t\t});\n\t} else {\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert\n\t\t});\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/filters/search.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/shadowsource.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/shadowsource.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the source plugins for shadow tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadowsource = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar source = options.wiki.getShadowSource(title);\n\t\tif(source) {\n\t\t\t$tw.utils.pushTop(results,source);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/shadowsource.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/sort.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/sort.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for sorting\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,false);\n\treturn results;\n};\n\nexports.nsort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,true);\n\treturn results;\n};\n\nexports.sortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,false);\n\treturn results;\n};\n\nexports.nsortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,true);\n\treturn results;\n};\n\nvar prepare_results = function (source) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/sort.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/splitbefore.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/splitbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that splits each result on the first occurance of the specified separator and returns the unique values.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.splitbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar parts = title.split(operator.operand);\n\t\tif(parts.length === 1) {\n\t\t\t$tw.utils.pushTop(results,parts[0]);\n\t\t} else {\n\t\t\t$tw.utils.pushTop(results,parts[0] + operator.operand);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/splitbefore.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/storyviews.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/storyviews.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the story views in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.storyviews = function(source,operator,options) {\n\tvar results = [],\n\t\tstoryviews = {};\n\t$tw.modules.applyMethods(\"storyview\",storyviews);\n\t$tw.utils.each(storyviews,function(info,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/storyviews.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/suffix.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/suffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title ends with a suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.suffix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/suffix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/tag.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/tag.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking for the presence of a tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,operator,options) {\n\tvar results = [];\n\tif((operator.suffix || \"\").toLowerCase() === \"strict\" && !operator.operand) {\n\t\t// New semantics:\n\t\t// Always return copy of input if operator.operand is missing\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t} else {\n\t\t// Old semantics:\n\t\tif(operator.prefix === \"!\") {\n\t\t\t// Returns a copy of the input if operator.operand is missing\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && !tiddler.hasTag(operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// Returns empty results if operator.operand is missing\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && tiddler.hasTag(operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t\tresults = options.wiki.sortByList(results,operator.operand);\n\t\t}\t\t\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/tag.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/tagging.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/tagging.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that are tagged with the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tagging = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlersWithTag(title));\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/tagging.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/tags.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/tags.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the tags of the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,operator,options) {\n\tvar tags = {};\n\tsource(function(tiddler,title) {\n\t\tvar t, length;\n\t\tif(tiddler && tiddler.fields.tags) {\n\t\t\tfor(t=0, length=tiddler.fields.tags.length; t<length; t++) {\n\t\t\t\ttags[tiddler.fields.tags[t]] = true;\n\t\t\t}\n\t\t}\n\t});\n\treturn Object.keys(tags);\n};\n\n})();\n",
            "title": "$:/core/modules/filters/tags.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/title.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/title.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing title fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.title = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields.title !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults.push(operator.operand);\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/title.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/untagged.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/untagged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the selected tiddlers that are untagged\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.untagged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && $tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length > 0) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!tiddler || !tiddler.hasField(\"tags\") || ($tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length === 0)) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/untagged.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/wikiparserrules.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/wikiparserrules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the wiki parser rules in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.wikiparserrules = function(source,operator,options) {\n\tvar results = [],\n\t\toperand = operator.operand;\n\t$tw.utils.each($tw.modules.types.wikirule,function(mod) {\n\t\tvar exp = mod.exports;\n\t\tif(!operand || exp.types[operand]) {\n\t\t\tresults.push(exp.name);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/wikiparserrules.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/x-listops.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/x-listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nExtended filter operators to manipulate the current list.\n\n\\*/\n(function () {\n\n    /*jslint node: true, browser: true */\n    /*global $tw: false */\n    \"use strict\";\n\n    /*\n    Fetch titles from the current list\n    */\n    var prepare_results = function (source) {\n    var results = [];\n        source(function (tiddler, title) {\n            results.push(title);\n        });\n        return results;\n    };\n\n    /*\n    Moves a number of items from the tail of the current list before the item named in the operand\n    */\n    exports.putbefore = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand),\n            count = parseInt(operator.suffix) || 1;\n        return (index === -1) ?\n            results.slice(0, -1) :\n            results.slice(0, index).concat(results.slice(-count)).concat(results.slice(index, -count));\n    };\n\n    /*\n    Moves a number of items from the tail of the current list after the item named in the operand\n    */\n    exports.putafter = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand),\n            count = parseInt(operator.suffix) || 1;\n        return (index === -1) ?\n            results.slice(0, -1) :\n            results.slice(0, index + 1).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n    };\n\n    /*\n    Replaces the item named in the operand with a number of items from the tail of the current list\n    */\n    exports.replace = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand),\n            count = parseInt(operator.suffix) || 1;\n        return (index === -1) ?\n            results.slice(0, -count) :\n            results.slice(0, index).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n    };\n\n    /*\n    Moves a number of items from the tail of the current list to the head of the list\n    */\n    exports.putfirst = function (source, operator) {\n        var results = prepare_results(source),\n            count = parseInt(operator.suffix) || 1;\n        return results.slice(-count).concat(results.slice(0, -count));\n    };\n\n    /*\n    Moves a number of items from the head of the current list to the tail of the list\n    */\n    exports.putlast = function (source, operator) {\n        var results = prepare_results(source),\n            count = parseInt(operator.suffix) || 1;\n        return results.slice(count).concat(results.slice(0, count));\n    };\n\n    /*\n    Moves the item named in the operand a number of places forward or backward in the list\n    */\n    exports.move = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand),\n            count = parseInt(operator.suffix) || 1,\n            marker = results.splice(index, 1),\n            offset =  (index + count) > 0 ? index + count : 0;\n        return results.slice(0, offset).concat(marker).concat(results.slice(offset));\n    };\n\n    /*\n    Returns the items from the current list that are after the item named in the operand\n    */\n    exports.allafter = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand);\n        return (index === -1 || index > (results.length - 2)) ? [] :\n            (operator.suffix) ? results.slice(index) :\n            results.slice(index + 1);\n    };\n\n    /*\n    Returns the items from the current list that are before the item named in the operand\n    */\n    exports.allbefore = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand);\n        return (index <= 0) ? [] :\n            (operator.suffix) ? results.slice(0, index + 1) :\n            results.slice(0, index);\n    };\n\n    /*\n    Appends the items listed in the operand array to the tail of the current list\n    */\n    exports.append = function (source, operator) {\n        var append = $tw.utils.parseStringArray(operator.operand, \"true\"),\n            results = prepare_results(source),\n            count = parseInt(operator.suffix) || append.length;\n        return (append.length === 0) ? results :\n            (operator.prefix) ? results.concat(append.slice(-count)) :\n            results.concat(append.slice(0, count));\n    };\n\n    /*\n    Prepends the items listed in the operand array to the head of the current list\n    */\n    exports.prepend = function (source, operator) {\n        var prepend = $tw.utils.parseStringArray(operator.operand, \"true\"),\n            results = prepare_results(source),\n            count = parseInt(operator.suffix) || prepend.length;\n        return (prepend.length === 0) ? results :\n            (operator.prefix) ? prepend.slice(-count).concat(results) :\n            prepend.slice(0, count).concat(results);\n    };\n\n    /*\n    Returns all items from the current list except the items listed in the operand array\n    */\n    exports.remove = function (source, operator) {\n        var array = $tw.utils.parseStringArray(operator.operand, \"true\"),\n            results = prepare_results(source),\n            count = parseInt(operator.suffix) || array.length,\n            p,\n            len,\n            index;\n        len = array.length - 1;\n        for (p = 0; p < count; ++p) {\n            if (operator.prefix) {\n                index = results.indexOf(array[len - p]);\n            } else {\n                index = results.indexOf(array[p]);\n            }\n            if (index !== -1) {\n                results.splice(index, 1);\n            }\n        }\n        return results;\n    };\n\n    /*\n    Returns all items from the current list sorted in the order of the items in the operand array\n    */\n    exports.sortby = function (source, operator) {\n        var results = prepare_results(source);\n        if (!results || results.length < 2) {\n            return results;\n        }\n        var lookup = $tw.utils.parseStringArray(operator.operand, \"true\");\n        results.sort(function (a, b) {\n            return lookup.indexOf(a) - lookup.indexOf(b);\n        });\n        return results;\n    };\n\n    /*\n    Removes all duplicate items from the current list\n    */\n    exports.unique = function (source, operator) {\n        var results = prepare_results(source);\n        var set = results.reduce(function (a, b) {\n            if (a.indexOf(b) < 0) {\n                a.push(b);\n            }\n            return a;\n        }, []);\n        return set;\n    };\n})();\n",
            "title": "$:/core/modules/filters/x-listops.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters.js\ntype: application/javascript\nmodule-type: wikimethod\n\nAdds tiddler filtering methods to the $tw.Wiki object.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParses an operation (i.e. a run) within a filter string\n\toperators: Array of array of operator nodes into which results should be inserted\n\tfilterString: filter string\n\tp: start position within the string\nReturns the new start position, after the parsed operation\n*/\nfunction parseFilterOperation(operators,filterString,p) {\n\tvar nextBracketPos, operator;\n\t// Skip the starting square bracket\n\tif(filterString.charAt(p++) !== \"[\") {\n\t\tthrow \"Missing [ in filter expression\";\n\t}\n\t// Process each operator in turn\n\tdo {\n\t\toperator = {};\n\t\t// Check for an operator prefix\n\t\tif(filterString.charAt(p) === \"!\") {\n\t\t\toperator.prefix = filterString.charAt(p++);\n\t\t}\n\t\t// Get the operator name\n\t\tnextBracketPos = filterString.substring(p).search(/[\\[\\{<\\/]/);\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing [ in filter expression\";\n\t\t}\n\t\tnextBracketPos += p;\n\t\tvar bracket = filterString.charAt(nextBracketPos);\n\t\toperator.operator = filterString.substring(p,nextBracketPos);\n\n\t\t// Any suffix?\n\t\tvar colon = operator.operator.indexOf(':');\n\t\tif(colon > -1) {\n\t\t\toperator.suffix = operator.operator.substring(colon + 1);\n\t\t\toperator.operator = operator.operator.substring(0,colon) || \"field\";\n\t\t}\n\t\t// Empty operator means: title\n\t\telse if(operator.operator === \"\") {\n\t\t\toperator.operator = \"title\";\n\t\t}\n\n\t\tp = nextBracketPos + 1;\n\t\tswitch (bracket) {\n\t\t\tcase \"{\": // Curly brackets\n\t\t\t\toperator.indirect = true;\n\t\t\t\tnextBracketPos = filterString.indexOf(\"}\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"[\": // Square brackets\n\t\t\t\tnextBracketPos = filterString.indexOf(\"]\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"<\": // Angle brackets\n\t\t\t\toperator.variable = true;\n\t\t\t\tnextBracketPos = filterString.indexOf(\">\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"/\": // regexp brackets\n\t\t\t\tvar rex = /^((?:[^\\\\\\/]*|\\\\.)*)\\/(?:\\(([mygi]+)\\))?/g,\n\t\t\t\t\trexMatch = rex.exec(filterString.substring(p));\n\t\t\t\tif(rexMatch) {\n\t\t\t\t\toperator.regexp = new RegExp(rexMatch[1], rexMatch[2]);\n// DEPRECATION WARNING\nconsole.log(\"WARNING: Filter\",operator.operator,\"has a deprecated regexp operand\",operator.regexp);\n\t\t\t\t\tnextBracketPos = p + rex.lastIndex - 1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow \"Unterminated regular expression in filter expression\";\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing closing bracket in filter expression\";\n\t\t}\n\t\tif(!operator.regexp) {\n\t\t\toperator.operand = filterString.substring(p,nextBracketPos);\n\t\t}\n\t\tp = nextBracketPos + 1;\n\n\t\t// Push this operator\n\t\toperators.push(operator);\n\t} while(filterString.charAt(p) !== \"]\");\n\t// Skip the ending square bracket\n\tif(filterString.charAt(p++) !== \"]\") {\n\t\tthrow \"Missing ] in filter expression\";\n\t}\n\t// Return the parsing position\n\treturn p;\n}\n\n/*\nParse a filter string\n*/\nexports.parseFilter = function(filterString) {\n\tfilterString = filterString || \"\";\n\tvar results = [], // Array of arrays of operator nodes {operator:,operand:}\n\t\tp = 0, // Current position in the filter string\n\t\tmatch;\n\tvar whitespaceRegExp = /(\\s+)/mg,\n\t\toperandRegExp = /((?:\\+|\\-)?)(?:(\\[)|(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\s\\[\\]]+))/mg;\n\twhile(p < filterString.length) {\n\t\t// Skip any whitespace\n\t\twhitespaceRegExp.lastIndex = p;\n\t\tmatch = whitespaceRegExp.exec(filterString);\n\t\tif(match && match.index === p) {\n\t\t\tp = p + match[0].length;\n\t\t}\n\t\t// Match the start of the operation\n\t\tif(p < filterString.length) {\n\t\t\toperandRegExp.lastIndex = p;\n\t\t\tmatch = operandRegExp.exec(filterString);\n\t\t\tif(!match || match.index !== p) {\n\t\t\t\tthrow $tw.language.getString(\"Error/FilterSyntax\");\n\t\t\t}\n\t\t\tvar operation = {\n\t\t\t\tprefix: \"\",\n\t\t\t\toperators: []\n\t\t\t};\n\t\t\tif(match[1]) {\n\t\t\t\toperation.prefix = match[1];\n\t\t\t\tp++;\n\t\t\t}\n\t\t\tif(match[2]) { // Opening square bracket\n\t\t\t\tp = parseFilterOperation(operation.operators,filterString,p);\n\t\t\t} else {\n\t\t\t\tp = match.index + match[0].length;\n\t\t\t}\n\t\t\tif(match[3] || match[4] || match[5]) { // Double quoted string, single quoted string or unquoted title\n\t\t\t\toperation.operators.push(\n\t\t\t\t\t{operator: \"title\", operand: match[3] || match[4] || match[5]}\n\t\t\t\t);\n\t\t\t}\n\t\t\tresults.push(operation);\n\t\t}\n\t}\n\treturn results;\n};\n\nexports.getFilterOperators = function() {\n\tif(!this.filterOperators) {\n\t\t$tw.Wiki.prototype.filterOperators = {};\n\t\t$tw.modules.applyMethods(\"filteroperator\",this.filterOperators);\n\t}\n\treturn this.filterOperators;\n};\n\nexports.filterTiddlers = function(filterString,widget,source) {\n\tvar fn = this.compileFilter(filterString);\n\treturn fn.call(this,source,widget);\n};\n\n/*\nCompile a filter into a function with the signature fn(source,widget) where:\nsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\nwidget: an optional widget node for retrieving the current tiddler etc.\n*/\nexports.compileFilter = function(filterString) {\n\tvar filterParseTree;\n\ttry {\n\t\tfilterParseTree = this.parseFilter(filterString);\n\t} catch(e) {\n\t\treturn function(source,widget) {\n\t\t\treturn [$tw.language.getString(\"Error/Filter\") + \": \" + e];\n\t\t};\n\t}\n\t// Get the hashmap of filter operator functions\n\tvar filterOperators = this.getFilterOperators();\n\t// Assemble array of functions, one for each operation\n\tvar operationFunctions = [];\n\t// Step through the operations\n\tvar self = this;\n\t$tw.utils.each(filterParseTree,function(operation) {\n\t\t// Create a function for the chain of operators in the operation\n\t\tvar operationSubFunction = function(source,widget) {\n\t\t\tvar accumulator = source,\n\t\t\t\tresults = [],\n\t\t\t\tcurrTiddlerTitle = widget && widget.getVariable(\"currentTiddler\");\n\t\t\t$tw.utils.each(operation.operators,function(operator) {\n\t\t\t\tvar operand = operator.operand,\n\t\t\t\t\toperatorFunction;\n\t\t\t\tif(!operator.operator) {\n\t\t\t\t\toperatorFunction = filterOperators.title;\n\t\t\t\t} else if(!filterOperators[operator.operator]) {\n\t\t\t\t\toperatorFunction = filterOperators.field;\n\t\t\t\t} else {\n\t\t\t\t\toperatorFunction = filterOperators[operator.operator];\n\t\t\t\t}\n\t\t\t\tif(operator.indirect) {\n\t\t\t\t\toperand = self.getTextReference(operator.operand,\"\",currTiddlerTitle);\n\t\t\t\t}\n\t\t\t\tif(operator.variable) {\n\t\t\t\t\toperand = widget.getVariable(operator.operand,{defaultValue: \"\"});\n\t\t\t\t}\n\t\t\t\t// Invoke the appropriate filteroperator module\n\t\t\t\tresults = operatorFunction(accumulator,{\n\t\t\t\t\t\t\toperator: operator.operator,\n\t\t\t\t\t\t\toperand: operand,\n\t\t\t\t\t\t\tprefix: operator.prefix,\n\t\t\t\t\t\t\tsuffix: operator.suffix,\n\t\t\t\t\t\t\tregexp: operator.regexp\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\twiki: self,\n\t\t\t\t\t\t\twidget: widget\n\t\t\t\t\t\t});\n\t\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\t\taccumulator = self.makeTiddlerIterator(results);\n\t\t\t\t} else {\n\t\t\t\t\taccumulator = results;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\treturn results;\n\t\t\t} else {\n\t\t\t\tvar resultArray = [];\n\t\t\t\tresults(function(tiddler,title) {\n\t\t\t\t\tresultArray.push(title);\n\t\t\t\t});\n\t\t\t\treturn resultArray;\n\t\t\t}\n\t\t};\n\t\t// Wrap the operator functions in a wrapper function that depends on the prefix\n\t\toperationFunctions.push((function() {\n\t\t\tswitch(operation.prefix || \"\") {\n\t\t\t\tcase \"\": // No prefix means that the operation is unioned into the result\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"-\": // The results of this operation are removed from the main result\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t$tw.utils.removeArrayEntries(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"+\": // This operation is applied to the main results so far\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t// This replaces all the elements of the array, but keeps the actual array so that references to it are preserved\n\t\t\t\t\t\tsource = self.makeTiddlerIterator(results);\n\t\t\t\t\t\tresults.splice(0,results.length);\n\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t}\n\t\t})());\n\t});\n\t// Return a function that applies the operations to a source iterator of tiddler titles\n\treturn $tw.perf.measure(\"filter\",function filterFunction(source,widget) {\n\t\tif(!source) {\n\t\t\tsource = self.each;\n\t\t} else if(typeof source === \"object\") { // Array or hashmap\n\t\t\tsource = self.makeTiddlerIterator(source);\n\t\t}\n\t\tvar results = [];\n\t\t$tw.utils.each(operationFunctions,function(operationFunction) {\n\t\t\toperationFunction(results,source,widget);\n\t\t});\n\t\treturn results;\n\t});\n};\n\n})();\n",
            "title": "$:/core/modules/filters.js",
            "type": "application/javascript",
            "module-type": "wikimethod"
        },
        "$:/core/modules/info/platform.js": {
            "text": "/*\\\ntitle: $:/core/modules/info/platform.js\ntype: application/javascript\nmodule-type: info\n\nInitialise basic platform $:/info/ tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.getInfoTiddlerFields = function() {\n\tvar mapBoolean = function(value) {return value ? \"yes\" : \"no\";},\n\t\tinfoTiddlerFields = [];\n\t// Basics\n\tinfoTiddlerFields.push({title: \"$:/info/browser\", text: mapBoolean(!!$tw.browser)});\n\tinfoTiddlerFields.push({title: \"$:/info/node\", text: mapBoolean(!!$tw.node)});\n\t// Document location\n\tif($tw.browser) {\n\t\tvar setLocationProperty = function(name,value) {\n\t\t\t\tinfoTiddlerFields.push({title: \"$:/info/url/\" + name, text: value});\t\t\t\n\t\t\t},\n\t\t\tlocation = document.location;\n\t\tsetLocationProperty(\"full\", (location.toString()).split(\"#\")[0]);\n\t\tsetLocationProperty(\"host\", location.host);\n\t\tsetLocationProperty(\"hostname\", location.hostname);\n\t\tsetLocationProperty(\"protocol\", location.protocol);\n\t\tsetLocationProperty(\"port\", location.port);\n\t\tsetLocationProperty(\"pathname\", location.pathname);\n\t\tsetLocationProperty(\"search\", location.search);\n\t\tsetLocationProperty(\"origin\", location.origin);\n\t}\n\treturn infoTiddlerFields;\n};\n\n})();\n",
            "title": "$:/core/modules/info/platform.js",
            "type": "application/javascript",
            "module-type": "info"
        },
        "$:/core/modules/keyboard.js": {
            "text": "/*\\\ntitle: $:/core/modules/keyboard.js\ntype: application/javascript\nmodule-type: global\n\nKeyboard handling utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar namedKeys = {\n\t\"cancel\": 3,\n\t\"help\": 6,\n\t\"backspace\": 8,\n\t\"tab\": 9,\n\t\"clear\": 12,\n\t\"return\": 13,\n\t\"enter\": 13,\n\t\"pause\": 19,\n\t\"escape\": 27,\n\t\"space\": 32,\n\t\"page_up\": 33,\n\t\"page_down\": 34,\n\t\"end\": 35,\n\t\"home\": 36,\n\t\"left\": 37,\n\t\"up\": 38,\n\t\"right\": 39,\n\t\"down\": 40,\n\t\"printscreen\": 44,\n\t\"insert\": 45,\n\t\"delete\": 46,\n\t\"0\": 48,\n\t\"1\": 49,\n\t\"2\": 50,\n\t\"3\": 51,\n\t\"4\": 52,\n\t\"5\": 53,\n\t\"6\": 54,\n\t\"7\": 55,\n\t\"8\": 56,\n\t\"9\": 57,\n\t\"firefoxsemicolon\": 59,\n\t\"firefoxequals\": 61,\n\t\"a\": 65,\n\t\"b\": 66,\n\t\"c\": 67,\n\t\"d\": 68,\n\t\"e\": 69,\n\t\"f\": 70,\n\t\"g\": 71,\n\t\"h\": 72,\n\t\"i\": 73,\n\t\"j\": 74,\n\t\"k\": 75,\n\t\"l\": 76,\n\t\"m\": 77,\n\t\"n\": 78,\n\t\"o\": 79,\n\t\"p\": 80,\n\t\"q\": 81,\n\t\"r\": 82,\n\t\"s\": 83,\n\t\"t\": 84,\n\t\"u\": 85,\n\t\"v\": 86,\n\t\"w\": 87,\n\t\"x\": 88,\n\t\"y\": 89,\n\t\"z\": 90,\n\t\"numpad0\": 96,\n\t\"numpad1\": 97,\n\t\"numpad2\": 98,\n\t\"numpad3\": 99,\n\t\"numpad4\": 100,\n\t\"numpad5\": 101,\n\t\"numpad6\": 102,\n\t\"numpad7\": 103,\n\t\"numpad8\": 104,\n\t\"numpad9\": 105,\n\t\"multiply\": 106,\n\t\"add\": 107,\n\t\"separator\": 108,\n\t\"subtract\": 109,\n\t\"decimal\": 110,\n\t\"divide\": 111,\n\t\"f1\": 112,\n\t\"f2\": 113,\n\t\"f3\": 114,\n\t\"f4\": 115,\n\t\"f5\": 116,\n\t\"f6\": 117,\n\t\"f7\": 118,\n\t\"f8\": 119,\n\t\"f9\": 120,\n\t\"f10\": 121,\n\t\"f11\": 122,\n\t\"f12\": 123,\n\t\"f13\": 124,\n\t\"f14\": 125,\n\t\"f15\": 126,\n\t\"f16\": 127,\n\t\"f17\": 128,\n\t\"f18\": 129,\n\t\"f19\": 130,\n\t\"f20\": 131,\n\t\"f21\": 132,\n\t\"f22\": 133,\n\t\"f23\": 134,\n\t\"f24\": 135,\n\t\"firefoxminus\": 173,\n\t\"semicolon\": 186,\n\t\"equals\": 187,\n\t\"comma\": 188,\n\t\"dash\": 189,\n\t\"period\": 190,\n\t\"slash\": 191,\n\t\"backquote\": 192,\n\t\"openbracket\": 219,\n\t\"backslash\": 220,\n\t\"closebracket\": 221,\n\t\"quote\": 222\n};\n\nfunction KeyboardManager(options) {\n\tvar self = this;\n\toptions = options || \"\";\n\t// Save the named key hashmap\n\tthis.namedKeys = namedKeys;\n\t// Create a reverse mapping of code to keyname\n\tthis.keyNames = [];\n\t$tw.utils.each(namedKeys,function(keyCode,name) {\n\t\tself.keyNames[keyCode] = name.substr(0,1).toUpperCase() + name.substr(1);\n\t});\n\t// Save the platform-specific name of the \"meta\" key\n\tthis.metaKeyName = $tw.platform.isMac ? \"cmd-\" : \"win-\";\n}\n\n/*\nReturn an array of keycodes for the modifier keys ctrl, shift, alt, meta\n*/\nKeyboardManager.prototype.getModifierKeys = function() {\n\treturn [\n\t\t16, // Shift\n\t\t17, // Ctrl\n\t\t18, // Alt\n\t\t20, // CAPS LOCK\n\t\t91, // Meta (left)\n\t\t93, // Meta (right)\n\t\t224 // Meta (Firefox)\n\t]\n};\n\n/*\nParses a key descriptor into the structure:\n{\n\tkeyCode: numeric keycode\n\tshiftKey: boolean\n\taltKey: boolean\n\tctrlKey: boolean\n\tmetaKey: boolean\n}\nKey descriptors have the following format:\n\tctrl+enter\n\tctrl+shift+alt+A\n*/\nKeyboardManager.prototype.parseKeyDescriptor = function(keyDescriptor) {\n\tvar components = keyDescriptor.split(/\\+|\\-/),\n\t\tinfo = {\n\t\t\tkeyCode: 0,\n\t\t\tshiftKey: false,\n\t\t\taltKey: false,\n\t\t\tctrlKey: false,\n\t\t\tmetaKey: false\n\t\t};\n\tfor(var t=0; t<components.length; t++) {\n\t\tvar s = components[t].toLowerCase(),\n\t\t\tc = s.charCodeAt(0);\n\t\t// Look for modifier keys\n\t\tif(s === \"ctrl\") {\n\t\t\tinfo.ctrlKey = true;\n\t\t} else if(s === \"shift\") {\n\t\t\tinfo.shiftKey = true;\n\t\t} else if(s === \"alt\") {\n\t\t\tinfo.altKey = true;\n\t\t} else if(s === \"meta\" || s === \"cmd\" || s === \"win\") {\n\t\t\tinfo.metaKey = true;\n\t\t}\n\t\t// Replace named keys with their code\n\t\tif(this.namedKeys[s]) {\n\t\t\tinfo.keyCode = this.namedKeys[s];\n\t\t}\n\t}\n\tif(info.keyCode) {\n\t\treturn info;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nParse a list of key descriptors into an array of keyInfo objects. The key descriptors can be passed as an array of strings or a space separated string\n*/\nKeyboardManager.prototype.parseKeyDescriptors = function(keyDescriptors,options) {\n\tvar self = this;\n\toptions = options || {};\n\toptions.stack = options.stack || [];\n\tvar wiki = options.wiki || $tw.wiki;\n\tif(typeof keyDescriptors === \"string\" && keyDescriptors === \"\") {\n\t\treturn [];\n\t}\n\tif(!$tw.utils.isArray(keyDescriptors)) {\n\t\tkeyDescriptors = keyDescriptors.split(\" \");\n\t}\n\tvar result = [];\n\t$tw.utils.each(keyDescriptors,function(keyDescriptor) {\n\t\t// Look for a named shortcut\n\t\tif(keyDescriptor.substr(0,2) === \"((\" && keyDescriptor.substr(-2,2) === \"))\") {\n\t\t\tif(options.stack.indexOf(keyDescriptor) === -1) {\n\t\t\t\toptions.stack.push(keyDescriptor);\n\t\t\t\tvar name = keyDescriptor.substring(2,keyDescriptor.length - 2),\n\t\t\t\t\tlookupName = function(configName) {\n\t\t\t\t\t\tvar keyDescriptors = wiki.getTiddlerText(\"$:/config/\" + configName + \"/\" + name);\n\t\t\t\t\t\tif(keyDescriptors) {\n\t\t\t\t\t\t\tresult.push.apply(result,self.parseKeyDescriptors(keyDescriptors,options));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\tlookupName(\"shortcuts\");\n\t\t\t\tlookupName($tw.platform.isMac ? \"shortcuts-mac\" : \"shortcuts-not-mac\");\n\t\t\t\tlookupName($tw.platform.isWindows ? \"shortcuts-windows\" : \"shortcuts-not-windows\");\n\t\t\t\tlookupName($tw.platform.isLinux ? \"shortcuts-linux\" : \"shortcuts-not-linux\");\n\t\t\t}\n\t\t} else {\n\t\t\tresult.push(self.parseKeyDescriptor(keyDescriptor));\n\t\t}\n\t});\n\treturn result;\n};\n\nKeyboardManager.prototype.getPrintableShortcuts = function(keyInfoArray) {\n\tvar self = this,\n\t\tresult = [];\n\t$tw.utils.each(keyInfoArray,function(keyInfo) {\n\t\tif(keyInfo) {\n\t\t\tresult.push((keyInfo.ctrlKey ? \"ctrl-\" : \"\") + \n\t\t\t\t   (keyInfo.shiftKey ? \"shift-\" : \"\") + \n\t\t\t\t   (keyInfo.altKey ? \"alt-\" : \"\") + \n\t\t\t\t   (keyInfo.metaKey ? self.metaKeyName : \"\") + \n\t\t\t\t   (self.keyNames[keyInfo.keyCode]));\n\t\t}\n\t});\n\treturn result;\n}\n\nKeyboardManager.prototype.checkKeyDescriptor = function(event,keyInfo) {\n\treturn keyInfo &&\n\t\t\tevent.keyCode === keyInfo.keyCode && \n\t\t\tevent.shiftKey === keyInfo.shiftKey && \n\t\t\tevent.altKey === keyInfo.altKey && \n\t\t\tevent.ctrlKey === keyInfo.ctrlKey && \n\t\t\tevent.metaKey === keyInfo.metaKey;\n};\n\nKeyboardManager.prototype.checkKeyDescriptors = function(event,keyInfoArray) {\n\tfor(var t=0; t<keyInfoArray.length; t++) {\n\t\tif(this.checkKeyDescriptor(event,keyInfoArray[t])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\nexports.KeyboardManager = KeyboardManager;\n\n})();\n",
            "title": "$:/core/modules/keyboard.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/language.js": {
            "text": "/*\\\ntitle: $:/core/modules/language.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Language() manages translateable strings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate an instance of the language manager. Options include:\nwiki: wiki from which to retrieve translation tiddlers\n*/\nfunction Language(options) {\n\toptions = options || \"\";\n\tthis.wiki = options.wiki || $tw.wiki;\n}\n\n/*\nReturn a wikified translateable string. The title is automatically prefixed with \"$:/language/\"\nOptions include:\nvariables: optional hashmap of variables to supply to the language wikification\n*/\nLanguage.prototype.getString = function(title,options) {\n\toptions = options || {};\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.renderTiddler(\"text/plain\",title,{variables: options.variables});\n};\n\n/*\nReturn a raw, unwikified translateable string. The title is automatically prefixed with \"$:/language/\"\n*/\nLanguage.prototype.getRawString = function(title) {\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.getTiddlerText(title);\n};\n\nexports.Language = Language;\n\n})();\n",
            "title": "$:/core/modules/language.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/macros/changecount.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/changecount.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the changecount for the current tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"changecount\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn this.wiki.getChangeCount(this.getVariable(\"currentTiddler\")) + \"\";\n};\n\n})();\n",
            "title": "$:/core/modules/macros/changecount.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/contrastcolour.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/contrastcolour.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to choose which of two colours has the highest contrast with a base colour\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"contrastcolour\";\n\nexports.params = [\n\t{name: \"target\"},\n\t{name: \"fallbackTarget\"},\n\t{name: \"colourA\"},\n\t{name: \"colourB\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(target,fallbackTarget,colourA,colourB) {\n\tvar rgbTarget = $tw.utils.parseCSSColor(target) || $tw.utils.parseCSSColor(fallbackTarget);\n\tif(!rgbTarget) {\n\t\treturn colourA;\n\t}\n\tvar rgbColourA = $tw.utils.parseCSSColor(colourA),\n\t\trgbColourB = $tw.utils.parseCSSColor(colourB);\n\tif(rgbColourA && !rgbColourB) {\n\t\treturn rgbColourA;\n\t}\n\tif(rgbColourB && !rgbColourA) {\n\t\treturn rgbColourB;\n\t}\n\tif(!rgbColourA && !rgbColourB) {\n\t\t// If neither colour is readable, return a crude inverse of the target\n\t\treturn [255 - rgbTarget[0],255 - rgbTarget[1],255 - rgbTarget[2],rgbTarget[3]];\n\t}\n\t// Colour brightness formula derived from http://www.w3.org/WAI/ER/WD-AERT/#color-contrast\n\tvar brightnessTarget = rgbTarget[0] * 0.299 + rgbTarget[1] * 0.587 + rgbTarget[2] * 0.114,\n\t\tbrightnessA = rgbColourA[0] * 0.299 + rgbColourA[1] * 0.587 + rgbColourA[2] * 0.114,\n\t\tbrightnessB = rgbColourB[0] * 0.299 + rgbColourB[1] * 0.587 + rgbColourB[2] * 0.114;\n\treturn Math.abs(brightnessTarget - brightnessA) > Math.abs(brightnessTarget - brightnessB) ? colourA : colourB;\n};\n\n})();\n",
            "title": "$:/core/modules/macros/contrastcolour.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/csvtiddlers.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/csvtiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to CSV\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"csvtiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"format\"},\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,format) {\n\tvar self = this,\n\t\ttiddlers = this.wiki.filterTiddlers(filter),\n\t\ttiddler,\n\t\tfields = [],\n\t\tt,f;\n\t// Collect all the fields\n\tfor(t=0;t<tiddlers.length; t++) {\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\tfor(f in tiddler.fields) {\n\t\t\tif(fields.indexOf(f) === -1) {\n\t\t\t\tfields.push(f);\n\t\t\t}\n\t\t}\n\t}\n\t// Sort the fields and bring the standard ones to the front\n\tfields.sort();\n\t\"title text modified modifier created creator\".split(\" \").reverse().forEach(function(value,index) {\n\t\tvar p = fields.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tfields.splice(p,1);\n\t\t\tfields.unshift(value)\n\t\t}\n\t});\n\t// Output the column headings\n\tvar output = [], row = [];\n\tfields.forEach(function(value) {\n\t\trow.push(quoteAndEscape(value))\n\t});\n\toutput.push(row.join(\",\"));\n\t// Output each tiddler\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\trow = [];\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\t\tfor(f=0; f<fields.length; f++) {\n\t\t\t\trow.push(quoteAndEscape(tiddler ? tiddler.getFieldString(fields[f]) || \"\" : \"\"));\n\t\t\t}\n\t\toutput.push(row.join(\",\"));\n\t}\n\treturn output.join(\"\\n\");\n};\n\nfunction quoteAndEscape(value) {\n\treturn \"\\\"\" + value.replace(/\"/mg,\"\\\"\\\"\") + \"\\\"\";\n}\n\n})();\n",
            "title": "$:/core/modules/macros/csvtiddlers.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/displayshortcuts.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/displayshortcuts.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to display a list of keyboard shortcuts in human readable form. Notably, it resolves named shortcuts like `((bold))` to the underlying keystrokes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"displayshortcuts\";\n\nexports.params = [\n\t{name: \"shortcuts\"},\n\t{name: \"prefix\"},\n\t{name: \"separator\"},\n\t{name: \"suffix\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(shortcuts,prefix,separator,suffix) {\n\tvar shortcutArray = $tw.keyboardManager.getPrintableShortcuts($tw.keyboardManager.parseKeyDescriptors(shortcuts,{\n\t\twiki: this.wiki\n\t}));\n\tif(shortcutArray.length > 0) {\n\t\tshortcutArray.sort(function(a,b) {\n\t\t    return a.toLowerCase().localeCompare(b.toLowerCase());\n\t\t})\n\t\treturn prefix + shortcutArray.join(separator) + suffix;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/macros/displayshortcuts.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/dumpvariables.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/dumpvariables.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to dump all active variable values\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"dumpvariables\";\n\nexports.params = [\n];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\tvar output = [\"|!Variable |!Value |\"],\n\t\tvariables = [], variable;\n\tfor(variable in this.variables) {\n\t\tvariables.push(variable);\n\t}\n\tvariables.sort();\n\tfor(var index=0; index<variables.length; index++) {\n\t\tvar variable = variables[index];\n\t\toutput.push(\"|\" + variable + \" |<input size=50 value=<<\" + variable + \">>/> |\")\n\t}\n\treturn output.join(\"\\n\");\n};\n\n})();\n",
            "title": "$:/core/modules/macros/dumpvariables.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/jsontiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/jsontiddler.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output a single tiddler to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddler\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\ttitle = title || this.getVariable(\"currentTiddler\");\n\tvar tiddler = !!title && this.wiki.getTiddler(title),\n\t\tfields = new Object();\n\tif(tiddler) {\n\t\tfor(var field in tiddler.fields) {\n\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t}\n\t}\n\treturn JSON.stringify(fields,null,$tw.config.preferences.jsonSpaces);\n};\n\n})();\n",
            "title": "$:/core/modules/macros/jsontiddler.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/jsontiddlers.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/jsontiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddlers\";\n\nexports.params = [\n\t{name: \"filter\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter) {\n\tvar tiddlers = this.wiki.filterTiddlers(filter),\n\t\tdata = [];\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\tvar tiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\tif(tiddler) {\n\t\t\tvar fields = new Object();\n\t\t\tfor(var field in tiddler.fields) {\n\t\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t\t}\n\t\t\tdata.push(fields);\n\t\t}\n\t}\n\treturn JSON.stringify(data,null,$tw.config.preferences.jsonSpaces);\n};\n\n})();\n",
            "title": "$:/core/modules/macros/jsontiddlers.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/makedatauri.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/makedatauri.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to convert a string of text to a data URI\n\n<<makedatauri text:\"Text to be converted\" type:\"text/vnd.tiddlywiki\">>\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"makedatauri\";\n\nexports.params = [\n\t{name: \"text\"},\n\t{name: \"type\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(text,type) {\n\treturn $tw.utils.makeDataUri(text,type);\n};\n\n})();\n",
            "title": "$:/core/modules/macros/makedatauri.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/now.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/now.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return a formatted version of the current time\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"now\";\n\nexports.params = [\n\t{name: \"format\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(format) {\n\treturn $tw.utils.formatDateString(new Date(),format || \"0hh:0mm, DDth MMM YYYY\");\n};\n\n})();\n",
            "title": "$:/core/modules/macros/now.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/qualify.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/qualify.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to qualify a state tiddler title according\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"qualify\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\treturn title + \"-\" + this.getStateQualifier();\n};\n\n})();\n",
            "title": "$:/core/modules/macros/qualify.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/resolvepath.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/resolvepath.js\ntype: application/javascript\nmodule-type: macro\n\nResolves a relative path for an absolute rootpath.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"resolvepath\";\n\nexports.params = [\n\t{name: \"source\"},\n\t{name: \"root\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(source, root) {\n\treturn $tw.utils.resolvePath(source, root);\n};\n\n})();\n",
            "title": "$:/core/modules/macros/resolvepath.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/version.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/version.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the TiddlyWiki core version number\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"version\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn $tw.version;\n};\n\n})();\n",
            "title": "$:/core/modules/macros/version.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/parsers/audioparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/audioparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe audio parser parses an audio tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar AudioParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"audio\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"audio/ogg\"] = AudioParser;\nexports[\"audio/mpeg\"] = AudioParser;\nexports[\"audio/mp3\"] = AudioParser;\nexports[\"audio/mp4\"] = AudioParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/audioparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/csvparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/csvparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe CSV text parser processes CSV files into a table wrapped in a scrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar CsvParser = function(type,text,options) {\n\t// Table framework\n\tthis.tree = [{\n\t\t\"type\": \"scrollable\", \"children\": [{\n\t\t\t\"type\": \"element\", \"tag\": \"table\", \"children\": [{\n\t\t\t\t\"type\": \"element\", \"tag\": \"tbody\", \"children\": []\n\t\t\t}], \"attributes\": {\n\t\t\t\t\"class\": {\"type\": \"string\", \"value\": \"tc-csv-table\"}\n\t\t\t}\n\t\t}]\n\t}];\n\t// Split the text into lines\n\tvar lines = text.split(/\\r?\\n/mg),\n\t\ttag = \"th\";\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar lineText = lines[line];\n\t\tif(lineText) {\n\t\t\tvar row = {\n\t\t\t\t\t\"type\": \"element\", \"tag\": \"tr\", \"children\": []\n\t\t\t\t};\n\t\t\tvar columns = lineText.split(\",\");\n\t\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\t\trow.children.push({\n\t\t\t\t\t\t\"type\": \"element\", \"tag\": tag, \"children\": [{\n\t\t\t\t\t\t\t\"type\": \"text\",\n\t\t\t\t\t\t\t\"text\": columns[column]\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t}\n\t\t\ttag = \"td\";\n\t\t\tthis.tree[0].children[0].children[0].children.push(row);\n\t\t}\n\t}\n};\n\nexports[\"text/csv\"] = CsvParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/csvparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/htmlparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/htmlparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe HTML parser displays text as raw HTML\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HtmlParser = function(type,text,options) {\n\tvar src;\n\tif(options._canonical_uri) {\n\t\tsrc = options._canonical_uri;\n\t} else if(text) {\n\t\tsrc = \"data:text/html;charset=utf-8,\" + encodeURIComponent(text);\n\t}\n\tthis.tree = [{\n\t\ttype: \"element\",\n\t\ttag: \"iframe\",\n\t\tattributes: {\n\t\t\tsrc: {type: \"string\", value: src},\n\t\t\tsandbox: {type: \"string\", value: \"\"}\n\t\t}\n\t}];\n};\n\nexports[\"text/html\"] = HtmlParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/htmlparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/imageparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/imageparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe image parser parses an image into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"img\",\n\t\t\tattributes: {}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\tif(type === \"image/svg+xml\" || type === \".svg\") {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:image/svg+xml,\" + encodeURIComponent(text)};\n\t\t} else {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t\t}\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"image/svg+xml\"] = ImageParser;\nexports[\"image/jpg\"] = ImageParser;\nexports[\"image/jpeg\"] = ImageParser;\nexports[\"image/png\"] = ImageParser;\nexports[\"image/gif\"] = ImageParser;\nexports[\"image/x-icon\"] = ImageParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/imageparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/utils/parseutils.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/parseutils.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions concerned with parsing text into tokens.\n\nMost functions have the following pattern:\n\n* The parameters are:\n** `source`: the source string being parsed\n** `pos`: the current parse position within the string\n** Any further parameters are used to identify the token that is being parsed\n* The return value is:\n** null if the token was not found at the specified position\n** an object representing the token with the following standard fields:\n*** `type`: string indicating the type of the token\n*** `start`: start position of the token in the source string\n*** `end`: end position of the token in the source string\n*** Any further fields required to describe the token\n\nThe exception is `skipWhiteSpace`, which just returns the position after the whitespace.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for a whitespace token. Returns null if not found, otherwise returns {type: \"whitespace\", start:, end:,}\n*/\nexports.parseWhiteSpace = function(source,pos) {\n\tvar p = pos,c;\n\twhile(true) {\n\t\tc = source.charAt(p);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tp++;\n\t\t} else {\n\t\t\tbreak;\n\t\t}\n\t}\n\tif(p === pos) {\n\t\treturn null;\n\t} else {\n\t\treturn {\n\t\t\ttype: \"whitespace\",\n\t\t\tstart: pos,\n\t\t\tend: p\n\t\t}\n\t}\n};\n\n/*\nConvenience wrapper for parseWhiteSpace. Returns the position after the whitespace\n*/\nexports.skipWhiteSpace = function(source,pos) {\n\tvar c;\n\twhile(true) {\n\t\tc = source.charAt(pos);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tpos++;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n};\n\n/*\nLook for a given string token. Returns null if not found, otherwise returns {type: \"token\", value:, start:, end:,}\n*/\nexports.parseTokenString = function(source,pos,token) {\n\tvar match = source.indexOf(token,pos) === pos;\n\tif(match) {\n\t\treturn {\n\t\t\ttype: \"token\",\n\t\t\tvalue: token,\n\t\t\tstart: pos,\n\t\t\tend: pos + token.length\n\t\t};\n\t}\n\treturn null;\n};\n\n/*\nLook for a token matching a regex. Returns null if not found, otherwise returns {type: \"regexp\", match:, start:, end:,}\n*/\nexports.parseTokenRegExp = function(source,pos,reToken) {\n\tvar node = {\n\t\ttype: \"regexp\",\n\t\tstart: pos\n\t};\n\treToken.lastIndex = pos;\n\tnode.match = reToken.exec(source);\n\tif(node.match && node.match.index === pos) {\n\t\tnode.end = pos + node.match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a string literal. Returns null if not found, otherwise returns {type: \"string\", value:, start:, end:,}\n*/\nexports.parseStringLiteral = function(source,pos) {\n\tvar node = {\n\t\ttype: \"string\",\n\t\tstart: pos\n\t};\n\tvar reString = /(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\")|(?:'([^']*)')/g;\n\treString.lastIndex = pos;\n\tvar match = reString.exec(source);\n\tif(match && match.index === pos) {\n\t\tnode.value = match[1] !== undefined ? match[1] :(\n\t\t\tmatch[2] !== undefined ? match[2] : match[3] \n\t\t\t\t\t);\n\t\tnode.end = pos + match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a macro invocation parameter. Returns null if not found, or {type: \"macro-parameter\", name:, value:, start:, end:}\n*/\nexports.parseMacroParameter = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macro-parameter\",\n\t\tstart: pos\n\t};\n\t// Define our regexp\n\tvar reMacroParameter = /(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\\s>\"'=]+)))/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the parameter\n\tvar token = $tw.utils.parseTokenRegExp(source,pos,reMacroParameter);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the parameter details\n\tnode.value = token.match[2] !== undefined ? token.match[2] : (\n\t\t\t\t\ttoken.match[3] !== undefined ? token.match[3] : (\n\t\t\t\t\t\ttoken.match[4] !== undefined ? token.match[4] : (\n\t\t\t\t\t\t\ttoken.match[5] !== undefined ? token.match[5] : (\n\t\t\t\t\t\t\t\ttoken.match[6] !== undefined ? token.match[6] : (\n\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t);\n\tif(token.match[1]) {\n\t\tnode.name = token.match[1];\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for a macro invocation. Returns null if not found, or {type: \"macrocall\", name:, parameters:, start:, end:}\n*/\nexports.parseMacroInvocation = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macrocall\",\n\t\tstart: pos,\n\t\tparams: []\n\t};\n\t// Define our regexps\n\tvar reMacroName = /([^\\s>\"'=]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double less than sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"<<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the macro name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reMacroName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Process parameters\n\tvar parameter = $tw.utils.parseMacroParameter(source,pos);\n\twhile(parameter) {\n\t\tnode.params.push(parameter);\n\t\tpos = parameter.end;\n\t\t// Get the next parameter\n\t\tparameter = $tw.utils.parseMacroParameter(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">>\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for an HTML attribute definition. Returns null if not found, otherwise returns {type: \"attribute\", name:, valueType: \"string|indirect|macro\", value:, start:, end:,}\n*/\nexports.parseAttribute = function(source,pos) {\n\tvar node = {\n\t\tstart: pos\n\t};\n\t// Define our regexps\n\tvar reAttributeName = /([^\\/\\s>\"'=]+)/g,\n\t\treUnquotedAttribute = /([^\\/\\s<>\"'=]+)/g,\n\t\treFilteredValue = /\\{\\{\\{(.+?)\\}\\}\\}/g,\n\t\treIndirectValue = /\\{\\{([^\\}]+)\\}\\}/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the attribute name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reAttributeName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for an equals sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"=\");\n\tif(token) {\n\t\tpos = token.end;\n\t\t// Skip whitespace\n\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t// Look for a string literal\n\t\tvar stringLiteral = $tw.utils.parseStringLiteral(source,pos);\n\t\tif(stringLiteral) {\n\t\t\tpos = stringLiteral.end;\n\t\t\tnode.type = \"string\";\n\t\t\tnode.value = stringLiteral.value;\n\t\t} else {\n\t\t\t// Look for a filtered value\n\t\t\tvar filteredValue = $tw.utils.parseTokenRegExp(source,pos,reFilteredValue);\n\t\t\tif(filteredValue) {\n\t\t\t\tpos = filteredValue.end;\n\t\t\t\tnode.type = \"filtered\";\n\t\t\t\tnode.filter = filteredValue.match[1];\n\t\t\t} else {\n\t\t\t\t// Look for an indirect value\n\t\t\t\tvar indirectValue = $tw.utils.parseTokenRegExp(source,pos,reIndirectValue);\n\t\t\t\tif(indirectValue) {\n\t\t\t\t\tpos = indirectValue.end;\n\t\t\t\t\tnode.type = \"indirect\";\n\t\t\t\t\tnode.textReference = indirectValue.match[1];\n\t\t\t\t} else {\n\t\t\t\t\t// Look for a unquoted value\n\t\t\t\t\tvar unquotedValue = $tw.utils.parseTokenRegExp(source,pos,reUnquotedAttribute);\n\t\t\t\t\tif(unquotedValue) {\n\t\t\t\t\t\tpos = unquotedValue.end;\n\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\tnode.value = unquotedValue.match[1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Look for a macro invocation value\n\t\t\t\t\t\tvar macroInvocation = $tw.utils.parseMacroInvocation(source,pos);\n\t\t\t\t\t\tif(macroInvocation) {\n\t\t\t\t\t\t\tpos = macroInvocation.end;\n\t\t\t\t\t\t\tnode.type = \"macro\";\n\t\t\t\t\t\t\tnode.value = macroInvocation;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\t\tnode.value = \"true\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tnode.type = \"string\";\n\t\tnode.value = \"true\";\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
            "title": "$:/core/modules/utils/parseutils.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/parsers/pdfparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/pdfparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe PDF parser embeds a PDF viewer\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"embed\",\n\t\t\tattributes: {}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:application/pdf;base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"application/pdf\"] = ImageParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/pdfparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/textparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/textparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe plain text parser processes blocks of source text into a degenerate parse tree consisting of a single text node\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TextParser = function(type,text,options) {\n\tthis.tree = [{\n\t\ttype: \"codeblock\",\n\t\tattributes: {\n\t\t\tcode: {type: \"string\", value: text},\n\t\t\tlanguage: {type: \"string\", value: type}\n\t\t}\n\t}];\n};\n\nexports[\"text/plain\"] = TextParser;\nexports[\"text/x-tiddlywiki\"] = TextParser;\nexports[\"application/javascript\"] = TextParser;\nexports[\"application/json\"] = TextParser;\nexports[\"text/css\"] = TextParser;\nexports[\"application/x-tiddler-dictionary\"] = TextParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/textparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/videoparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/videoparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe video parser parses a video tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar VideoParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"video\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"video/mp4\"] = VideoParser;\nexports[\"video/quicktime\"] = VideoParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/videoparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/wikiparser/rules/codeblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for code blocks. For example:\n\n```\n\t```\n\tThis text will not be //wikified//\n\t```\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match and get language if defined\n\tthis.matchRegExp = /```([\\w-]*)\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\\r?\\n```$)/mg;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Return the $codeblock widget\n\treturn [{\n\t\t\ttype: \"codeblock\",\n\t\t\tattributes: {\n\t\t\t\t\tcode: {type: \"string\", value: text},\n\t\t\t\t\tlanguage: {type: \"string\", value: this.match[1]}\n\t\t\t}\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/codeblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/codeinline.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for code runs. For example:\n\n```\n\tThis is a `code run`.\n\tThis is another ``code run``\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(``?)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar reEnd = new RegExp(this.match[1], \"mg\");\n\t// Look for the end marker\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the text\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"code\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: text\n\t\t}]\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/codeinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/commentblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/commentblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/commentinline.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/commentinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/dash.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/dash.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for dashes. For example:\n\n```\nThis is an en-dash: --\n\nThis is an em-dash: ---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"dash\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{2,3}(?!-)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar dash = this.match[0].length === 2 ? \"&ndash;\" : \"&mdash;\";\n\treturn [{\n\t\ttype: \"entity\",\n\t\tentity: dash\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/dash.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/bold.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - bold. For example:\n\n```\n\tThis is ''bold'' text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except bold \n\\rules only bold \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"bold\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /''/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/''/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strong\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/italic.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - italic. For example:\n\n```\n\tThis is //italic// text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except italic\n\\rules only italic\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"italic\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\/\\//mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\/\\//mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"em\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - strikethrough. For example:\n\n```\n\tThis is ~~strikethrough~~ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except strikethrough \n\\rules only strikethrough \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"strikethrough\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~~/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/~~/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strike\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - subscript. For example:\n\n```\n\tThis is ,,subscript,, text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except subscript \n\\rules only subscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"subscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /,,/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/,,/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sub\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - superscript. For example:\n\n```\n\tThis is ^^superscript^^ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except superscript \n\\rules only superscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"superscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\^\\^/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\^\\^/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sup\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - underscore. For example:\n\n```\n\tThis is __underscore__ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except underscore \n\\rules only underscore\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"underscore\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /__/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/__/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"u\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/entity.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/entity.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML entities. For example:\n\n```\n\tThis is a copyright symbol: &copy;\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"entity\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(&#?[a-zA-Z0-9]{2,8};)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar entityString = this.match[1];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Return the entity\n\treturn [{type: \"entity\", entity: this.match[0]}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/entity.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/extlink.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/extlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\nAn external link: http://www.tiddlywiki.com/\n\nA suppressed external link: ~http://www.tiddlyspace.com/\n```\n\nExternal links can be suppressed by preceding them with `~`.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"extlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~?(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(this.match[0].substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: this.match[0].substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: this.match[0]},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: this.match[0]\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/extlink.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t},\n\t\tisBlock: true\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t}\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for marking areas with hard line breaks. For example:\n\n```\n\"\"\"\nThis is some text\nThat is set like\nIt is a Poem\nWhen it is\nClearly\nNot\n\"\"\"\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"hardlinebreaks\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\"\"\"(?:\\r?\\n)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\"\"\")|(\\r?\\n)/mg,\n\t\ttree = [],\n\t\tmatch;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tdo {\n\t\t// Parse the run up to the terminator\n\t\ttree.push.apply(tree,this.parser.parseInlineRun(reEnd,{eatTerminator: false}));\n\t\t// Redo the terminator match\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tmatch = reEnd.exec(this.parser.source);\n\t\tif(match) {\n\t\t\tthis.parser.pos = reEnd.lastIndex;\n\t\t\t// Add a line break if the terminator was a line break\n\t\t\tif(match[2]) {\n\t\t\t\ttree.push({type: \"element\", tag: \"br\"});\n\t\t\t}\n\t\t}\n\t} while(match && !match[1]);\n\t// Return the nodes\n\treturn tree;\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/heading.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/heading.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for headings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"heading\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(!{1,6})/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar headingLevel = this.match[1].length;\n\t// Move past the !s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse any classes, whitespace and then the heading itself\n\tvar classes = this.parser.parseClasses();\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// Return the heading\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"h\" + headingLevel, \n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: classes.join(\" \")}\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/heading.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/horizrule.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/horizrule.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for rules. For example:\n\n```\n---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"horizrule\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{3,}\\r?(?:\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\treturn [{type: \"element\", tag: \"hr\"}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/horizrule.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/html.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/html.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for HTML elements and widgets. For example:\n\n{{{\n<aside>\nThis is an HTML5 aside element\n</aside>\n\n<$slider target=\"MyTiddler\">\nThis is a widget invocation\n</$slider>\n\n}}}\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"html\";\nexports.types = {inline: true, block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextTag = this.findNextTag(this.parser.source,startPos,{\n\t\trequireLineBreak: this.is.block\n\t});\n\treturn this.nextTag ? this.nextTag.start : undefined;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Retrieve the most recent match so that recursive calls don't overwrite it\n\tvar tag = this.nextTag;\n\tthis.nextTag = null;\n\t// Advance the parser position to past the tag\n\tthis.parser.pos = tag.end;\n\t// Check for an immediately following double linebreak\n\tvar hasLineBreak = !tag.isSelfClosing && !!$tw.utils.parseTokenRegExp(this.parser.source,this.parser.pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t// Set whether we're in block mode\n\ttag.isBlock = this.is.block || hasLineBreak;\n\t// Parse the body if we need to\n\tif(!tag.isSelfClosing && $tw.config.htmlVoidElements.indexOf(tag.tag) === -1) {\n\t\t\tvar reEndString = \"</\" + $tw.utils.escapeRegExp(tag.tag) + \">\",\n\t\t\t\treEnd = new RegExp(\"(\" + reEndString + \")\",\"mg\");\n\t\tif(hasLineBreak) {\n\t\t\ttag.children = this.parser.parseBlocks(reEndString);\n\t\t} else {\n\t\t\ttag.children = this.parser.parseInlineRun(reEnd);\n\t\t}\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tvar endMatch = reEnd.exec(this.parser.source);\n\t\tif(endMatch && endMatch.index === this.parser.pos) {\n\t\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t\t}\n\t}\n\t// Return the tag\n\treturn [tag];\n};\n\n/*\nLook for an HTML tag. Returns null if not found, otherwise returns {type: \"element\", name:, attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseTag = function(source,pos,options) {\n\toptions = options || {};\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Define our regexps\n\tvar reTagName = /([a-zA-Z0-9\\-\\$]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a less than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\"<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the tag name\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,reTagName);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tnode.tag = token.match[1];\n\tif(node.tag.charAt(0) === \"$\") {\n\t\tnode.type = node.tag.substr(1);\n\t}\n\tpos = token.end;\n\t// Check that the tag is terminated by a space, / or >\n\tif(!$tw.utils.parseWhiteSpace(source,pos) && !(source.charAt(pos) === \"/\") && !(source.charAt(pos) === \">\") ) {\n\t\treturn null;\n\t}\n\t// Process attributes\n\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\twhile(attribute) {\n\t\tnode.attributes[attribute.name] = attribute;\n\t\tpos = attribute.end;\n\t\t// Get the next attribute\n\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a closing slash\n\ttoken = $tw.utils.parseTokenString(source,pos,\"/\");\n\tif(token) {\n\t\tpos = token.end;\n\t\tnode.isSelfClosing = true;\n\t}\n\t// Look for a greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Check for a required line break\n\tif(options.requireLineBreak) {\n\t\ttoken = $tw.utils.parseTokenRegExp(source,pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t\tif(!token) {\n\t\t\treturn null;\n\t\t}\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\nexports.findNextTag = function(source,pos,options) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /<([a-zA-Z\\-\\$]+)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseTag(source,match.index,options);\n\t\t// Return success\n\t\tif(tag && this.isLegalTag(tag)) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\nexports.isLegalTag = function(tag) {\n\t// Widgets are always OK\n\tif(tag.type !== \"element\") {\n\t\treturn true;\n\t// If it's an HTML tag that starts with a dash then it's not legal\n\t} else if(tag.tag.charAt(0) === \"-\") {\n\t\treturn false;\n\t} else {\n\t\t// Otherwise it's OK\n\t\treturn true;\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/html.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/image.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/image.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for embedding images. For example:\n\n```\n[img[http://tiddlywiki.com/fractalveg.jpg]]\n[img width=23 height=24 [http://tiddlywiki.com/fractalveg.jpg]]\n[img width={{!!width}} height={{!!height}} [http://tiddlywiki.com/fractalveg.jpg]]\n[img[Description of image|http://tiddlywiki.com/fractalveg.jpg]]\n[img[TiddlerTitle]]\n[img[Description of image|TiddlerTitle]]\n```\n\nGenerates the `<$image>` widget.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"image\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextImage = this.findNextImage(this.parser.source,startPos);\n\treturn this.nextImage ? this.nextImage.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextImage.end;\n\tvar node = {\n\t\ttype: \"image\",\n\t\tattributes: this.nextImage.attributes\n\t};\n\treturn [node];\n};\n\n/*\nFind the next image from the current position\n*/\nexports.findNextImage = function(source,pos) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /(\\[img)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseImage(source,match.index);\n\t\t// Return success\n\t\tif(tag) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an image at the specified position. Returns null if not found, otherwise returns {type: \"image\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseImage = function(source,pos) {\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"image\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[img`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[img\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Process attributes\n\tif(source.charAt(pos) !== \"[\") {\n\t\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\t\twhile(attribute) {\n\t\t\tnode.attributes[attribute.name] = attribute;\n\t\t\tpos = attribute.end;\n\t\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t\tif(source.charAt(pos) !== \"[\") {\n\t\t\t\t// Get the next attribute\n\t\t\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t\t\t} else {\n\t\t\t\tattribute = null;\n\t\t\t}\n\t\t}\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[` after the attributes\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the source up to the terminating `]]`\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,/(?:([^|\\]]*?)\\|)?([^\\]]+?)\\]\\]/g);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\tif(token.match[1]) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: token.match[1].trim()};\n\t}\n\tnode.attributes.source = {type: \"string\", value: (token.match[2] || \"\").trim()};\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/image.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/list.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/list.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for lists. For example:\n\n```\n* This is an unordered list\n* It has two items\n\n# This is a numbered list\n## With a subitem\n# And a third item\n\n; This is a term that is being defined\n: This is the definition of that term\n```\n\nNote that lists can be nested arbitrarily:\n\n```\n#** One\n#* Two\n#** Three\n#**** Four\n#**# Five\n#**## Six\n## Seven\n### Eight\n## Nine\n```\n\nA CSS class can be applied to a list item as follows:\n\n```\n* List item one\n*.active List item two has the class `active`\n* List item three\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"list\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /([\\*#;:>]+)/mg;\n};\n\nvar listTypes = {\n\t\"*\": {listTag: \"ul\", itemTag: \"li\"},\n\t\"#\": {listTag: \"ol\", itemTag: \"li\"},\n\t\";\": {listTag: \"dl\", itemTag: \"dt\"},\n\t\":\": {listTag: \"dl\", itemTag: \"dd\"},\n\t\">\": {listTag: \"blockquote\", itemTag: \"p\"}\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Array of parse tree nodes for the previous row of the list\n\tvar listStack = [];\n\t// Cycle through the items in the list\n\twhile(true) {\n\t\t// Match the list marker\n\t\tvar reMatch = /([\\*#;:>]+)/mg;\n\t\treMatch.lastIndex = this.parser.pos;\n\t\tvar match = reMatch.exec(this.parser.source);\n\t\tif(!match || match.index !== this.parser.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check whether the list type of the top level matches\n\t\tvar listInfo = listTypes[match[0].charAt(0)];\n\t\tif(listStack.length > 0 && listStack[0].tag !== listInfo.listTag) {\n\t\t\tbreak;\n\t\t}\n\t\t// Move past the list marker\n\t\tthis.parser.pos = match.index + match[0].length;\n\t\t// Walk through the list markers for the current row\n\t\tfor(var t=0; t<match[0].length; t++) {\n\t\t\tlistInfo = listTypes[match[0].charAt(t)];\n\t\t\t// Remove any stacked up element if we can't re-use it because the list type doesn't match\n\t\t\tif(listStack.length > t && listStack[t].tag !== listInfo.listTag) {\n\t\t\t\tlistStack.splice(t,listStack.length - t);\n\t\t\t}\n\t\t\t// Construct the list element or reuse the previous one at this level\n\t\t\tif(listStack.length <= t) {\n\t\t\t\tvar listElement = {type: \"element\", tag: listInfo.listTag, children: [\n\t\t\t\t\t{type: \"element\", tag: listInfo.itemTag, children: []}\n\t\t\t\t]};\n\t\t\t\t// Link this list element into the last child item of the parent list item\n\t\t\t\tif(t) {\n\t\t\t\t\tvar prevListItem = listStack[t-1].children[listStack[t-1].children.length-1];\n\t\t\t\t\tprevListItem.children.push(listElement);\n\t\t\t\t}\n\t\t\t\t// Save this element in the stack\n\t\t\t\tlistStack[t] = listElement;\n\t\t\t} else if(t === (match[0].length - 1)) {\n\t\t\t\tlistStack[t].children.push({type: \"element\", tag: listInfo.itemTag, children: []});\n\t\t\t}\n\t\t}\n\t\tif(listStack.length > match[0].length) {\n\t\t\tlistStack.splice(match[0].length,listStack.length - match[0].length);\n\t\t}\n\t\t// Process the body of the list item into the last list item\n\t\tvar lastListChildren = listStack[listStack.length-1].children,\n\t\t\tlastListItem = lastListChildren[lastListChildren.length-1],\n\t\t\tclasses = this.parser.parseClasses();\n\t\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\t\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t\tlastListItem.children.push.apply(lastListItem.children,tree);\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(lastListItem,classes.join(\" \"));\n\t\t}\n\t\t// Consume any whitespace following the list item\n\t\tthis.parser.skipWhitespace();\n\t}\n\t// Return the root element of the list\n\treturn [listStack[0]];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/list.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/macrocallblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for block macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^>\\s]+)(?:\\s*)((?:[^>]|(?:>(?!>)))*?)>>(?:\\r?\\n|$)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params,\n\t\tisBlock: true\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/macrocallblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/macrocallinline.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^\\s>]+)\\s*([\\s\\S]*?)>>/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5]|| paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/macrocallinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/macrodef.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrodef.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for macro definitions\n\n```\n\\define name(param:defaultvalue,param2:defaultvalue)\ndefinition text, including $param$ markers\n\\end\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrodef\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\define\\s+([^(\\s]+)\\(\\s*([^)]*)\\)(\\s*\\r?\\n)?/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the macro name and parameters\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the parameters\n\tvar paramString = this.match[2],\n\t\tparams = [];\n\tif(paramString !== \"\") {\n\t\tvar reParam = /\\s*([A-Za-z0-9\\-_]+)(?:\\s*:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))?/mg,\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\twhile(paramMatch) {\n\t\t\t// Save the parameter details\n\t\t\tvar paramInfo = {name: paramMatch[1]},\n\t\t\t\tdefaultValue = paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6];\n\t\t\tif(defaultValue) {\n\t\t\t\tparamInfo[\"default\"] = defaultValue;\n\t\t\t}\n\t\t\tparams.push(paramInfo);\n\t\t\t// Look for the next parameter\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\t}\n\t}\n\t// Is this a multiline definition?\n\tvar reEnd;\n\tif(this.match[3]) {\n\t\t// If so, the end of the body is marked with \\end\n\t\treEnd = /(\\r?\\n\\\\end[^\\S\\n\\r]*(?:$|\\r?\\n))/mg;\n\t} else {\n\t\t// Otherwise, the end of the definition is marked by the end of the line\n\t\treEnd = /($|\\r?\\n)/mg;\n\t\t// Move past any whitespace\n\t\tthis.parser.pos = $tw.utils.skipWhiteSpace(this.parser.source,this.parser.pos);\n\t}\n\t// Find the end of the definition\n\treEnd.lastIndex = this.parser.pos;\n\tvar text,\n\t\tendMatch = reEnd.exec(this.parser.source);\n\tif(endMatch) {\n\t\ttext = this.parser.source.substring(this.parser.pos,endMatch.index);\n\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t} else {\n\t\t// We didn't find the end of the definition, so we'll make it blank\n\t\ttext = \"\";\n\t}\n\t// Save the macro definition\n\treturn [{\n\t\ttype: \"set\",\n\t\tattributes: {\n\t\t\tname: {type: \"string\", value: this.match[1]},\n\t\t\tvalue: {type: \"string\", value: text}\n\t\t},\n\t\tchildren: [],\n\t\tparams: params\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/macrodef.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/prettyextlink.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettyextlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\n[ext[http://tiddlywiki.com/fractalveg.jpg]]\n[ext[Tooltip|http://tiddlywiki.com/fractalveg.jpg]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettyextlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextLink = this.findNextLink(this.parser.source,startPos);\n\treturn this.nextLink ? this.nextLink.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextLink.end;\n\treturn [this.nextLink];\n};\n\n/*\nFind the next link from the current position\n*/\nexports.findNextLink = function(source,pos) {\n\t// A regexp for finding candidate links\n\tvar reLookahead = /(\\[ext\\[)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a link\n\t\tvar link = this.parseLink(source,match.index);\n\t\t// Return success\n\t\tif(link) {\n\t\t\treturn link;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an link at the specified position. Returns null if not found, otherwise returns {type: \"element\", tag: \"a\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseLink = function(source,pos) {\n\tvar token,\n\t\ttextNode = {\n\t\t\ttype: \"text\"\n\t\t},\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tstart: pos,\n\t\t\tattributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t},\n\t\t\tchildren: [textNode]\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[ext[`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[ext[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Look ahead for the terminating `]]`\n\tvar closePos = source.indexOf(\"]]\",pos);\n\tif(closePos === -1) {\n\t\treturn null;\n\t}\n\t// Look for a `|` separating the tooltip\n\tvar splitPos = source.indexOf(\"|\",pos);\n\tif(splitPos === -1 || splitPos > closePos) {\n\t\tsplitPos = null;\n\t}\n\t// Pull out the tooltip and URL\n\tvar tooltip, URL;\n\tif(splitPos) {\n\t\tURL = source.substring(splitPos + 1,closePos).trim();\n\t\ttextNode.text = source.substring(pos,splitPos).trim();\n\t} else {\n\t\tURL = source.substring(pos,closePos).trim();\n\t\ttextNode.text = URL;\n\t}\n\tnode.attributes.href = {type: \"string\", value: URL};\n\tnode.attributes.target = {type: \"string\", value: \"_blank\"};\n\tnode.attributes.rel = {type: \"string\", value: \"noopener noreferrer\"};\n\t// Update the end position\n\tnode.end = closePos + 2;\n\treturn node;\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/prettyextlink.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/prettylink.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettylink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for pretty links. For example:\n\n```\n[[Introduction]]\n\n[[Link description|TiddlerTitle]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettylink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\[\\[(.*?)(?:\\|(.*?))?\\]\\]/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Process the link\n\tvar text = this.match[1],\n\t\tlink = this.match[2] || text;\n\tif($tw.utils.isLinkExternal(link)) {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: link},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: link}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/prettylink.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/quoteblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/quoteblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for quote blocks. For example:\n\n```\n\t<<<.optionalClass(es) optional cited from\n\ta quote\n\t<<<\n\t\n\t<<<.optionalClass(es)\n\ta quote\n\t<<< optional cited from\n```\n\nQuotes can be quoted by putting more <s\n\n```\n\t<<<\n\tQuote Level 1\n\t\n\t<<<<\n\tQuoteLevel 2\n\t<<<<\n\t\n\t<<<\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"quoteblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(<<<+)/mg;\n};\n\nexports.parse = function() {\n\tvar classes = [\"tc-quote\"];\n\t// Get all the details of the match\n\tvar reEndString = \"^\" + this.match[1] + \"(?!<)\";\n\t// Move past the <s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\n\t// Parse any classes, whitespace and then the optional cite itself\n\tclasses.push.apply(classes, this.parser.parseClasses());\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar cite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// before handling the cite, parse the body of the quote\n\tvar tree= this.parser.parseBlocks(reEndString);\n\t// If we got a cite, put it before the text\n\tif(cite.length > 0) {\n\t\ttree.unshift({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Parse any optional cite\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tcite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// If we got a cite, push it\n\tif(cite.length > 0) {\n\t\ttree.push({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Return the blockquote element\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"blockquote\",\n\t\tattributes: {\n\t\t\tclass: { type: \"string\", value: classes.join(\" \") },\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/quoteblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/rules.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/rules.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for rules specifications\n\n```\n\\rules except ruleone ruletwo rulethree\n\\rules only ruleone ruletwo rulethree\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"rules\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\rules[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\tif(tokens.length > 0) {\n\t\tthis.parser.amendRules(tokens[0],tokens.slice(1));\n\t}\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/rules.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/styleblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for assigning styles and classes to paragraphs and other blocks. For example:\n\n```\n@@.myClass\n@@background-color:red;\nThis paragraph will have the CSS class `myClass`.\n\n* The `<ul>` around this list will also have the class `myClass`\n* List item 2\n\n@@\n```\n\nNote that classes and styles can be mixed subject to the rule that styles must precede classes. For example\n\n```\n@@.myFirstClass.mySecondClass\n@@width:100px;.myThirdClass\nThis is a paragraph\n@@\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(?:\\.([^\\r\\n\\s]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEndString = \"^@@(?:\\\\r?\\\\n)?\";\n\tvar classes = [], styles = [];\n\tdo {\n\t\t// Get the class and style\n\t\tif(this.match[1]) {\n\t\t\tstyles.push(this.match[1]);\n\t\t}\n\t\tif(this.match[2]) {\n\t\t\tclasses.push(this.match[2].split(\".\").join(\" \"));\n\t\t}\n\t\t// Move past the match\n\t\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\t// Look for another line of classes and styles\n\t\tthis.match = this.matchRegExp.exec(this.parser.source);\n\t} while(this.match && this.match.index === this.parser.pos);\n\t// Parse the body\n\tvar tree = this.parser.parseBlocks(reEndString);\n\tfor(var t=0; t<tree.length; t++) {\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(tree[t],classes.join(\" \"));\n\t\t}\n\t\tif(styles.length > 0) {\n\t\t\t$tw.utils.addAttributeToParseTreeNode(tree[t],\"style\",styles.join(\"\"));\n\t\t}\n\t}\n\treturn tree;\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/styleblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/styleinline.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for assigning styles and classes to inline runs. For example:\n\n```\n@@.myClass This is some text with a class@@\n@@background-color:red;This is some text with a background colour@@\n@@width:100px;.myClass This is some text with a class and a width@@\n```\n\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(\\.(?:[^\\r\\n\\s]+)\\s+)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /@@/g;\n\t// Get the styles and class\n\tvar stylesString = this.match[1],\n\t\tclassString = this.match[2] ? this.match[2].split(\".\").join(\" \") : undefined;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the run up to the terminator\n\tvar tree = this.parser.parseInlineRun(reEnd,{eatTerminator: true});\n\t// Return the classed span\n\tvar node = {\n\t\ttype: \"element\",\n\t\ttag: \"span\",\n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: \"tc-inline-style\"}\n\t\t},\n\t\tchildren: tree\n\t};\n\tif(classString) {\n\t\t$tw.utils.addClassToParseTreeNode(node,classString);\n\t}\n\tif(stylesString) {\n\t\t$tw.utils.addAttributeToParseTreeNode(node,\"style\",stylesString);\n\t}\n\treturn [node];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/styleinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/syslink.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/syslink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for system tiddler links.\nCan be suppressed preceding them with `~`.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"syslink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp(\n\t\t\"~?\\\\$:\\\\/[\" +\n\t\t$tw.config.textPrimitives.anyLetter.substr(1,$tw.config.textPrimitives.anyLetter.length - 2) +\n\t\t\"\\/._-]+\",\n\t\t\"mg\"\n\t);\n};\n\nexports.parse = function() {\n\tvar match = this.match[0];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(match.substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: match.substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: match}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: match\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();",
            "title": "$:/core/modules/parsers/wikiparser/rules/syslink.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/table.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/table.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for tables.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"table\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\|(?:[^\\n]*)\\|(?:[fhck]?)\\r?(?:\\n|$)/mg;\n};\n\nvar processRow = function(prevColumns) {\n\tvar cellRegExp = /(?:\\|([^\\n\\|]*)\\|)|(\\|[fhck]?\\r?(?:\\n|$))/mg,\n\t\tcellTermRegExp = /((?:\\x20*)\\|)/mg,\n\t\ttree = [],\n\t\tcol = 0,\n\t\tcolSpanCount = 1,\n\t\tprevCell,\n\t\tvAlign;\n\t// Match a single cell\n\tcellRegExp.lastIndex = this.parser.pos;\n\tvar cellMatch = cellRegExp.exec(this.parser.source);\n\twhile(cellMatch && cellMatch.index === this.parser.pos) {\n\t\tif(cellMatch[1] === \"~\") {\n\t\t\t// Rowspan\n\t\t\tvar last = prevColumns[col];\n\t\t\tif(last) {\n\t\t\t\tlast.rowSpanCount++;\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"rowspan\",last.rowSpanCount);\n\t\t\t\tvAlign = $tw.utils.getAttributeValueFromParseTreeNode(last.element,\"valign\",\"center\");\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"valign\",vAlign);\n\t\t\t\tif(colSpanCount > 1) {\n\t\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"colspan\",colSpanCount);\n\t\t\t\t\tcolSpanCount = 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \">\") {\n\t\t\t// Colspan\n\t\t\tcolSpanCount++;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \"<\" && prevCell) {\n\t\t\tcolSpanCount = 1 + $tw.utils.getAttributeValueFromParseTreeNode(prevCell,\"colspan\",1);\n\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\tcolSpanCount = 1;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[2]) {\n\t\t\t// End of row\n\t\t\tif(prevCell && colSpanCount > 1) {\n\t\t\t\tif(prevCell.attributes && prevCell.attributes && prevCell.attributes.colspan) {\n\t\t\t\t\t\tcolSpanCount += prevCell.attributes.colspan.value;\n\t\t\t\t} else {\n\t\t\t\t\tcolSpanCount -= 1;\n\t\t\t\t}\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\t}\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t\tbreak;\n\t\t} else {\n\t\t\t// For ordinary cells, step beyond the opening `|`\n\t\t\tthis.parser.pos++;\n\t\t\t// Look for a space at the start of the cell\n\t\t\tvar spaceLeft = false;\n\t\t\tvAlign = null;\n\t\t\tif(this.parser.source.substr(this.parser.pos).search(/^\\^([^\\^]|\\^\\^)/) === 0) {\n\t\t\t\tvAlign = \"top\";\n\t\t\t} else if(this.parser.source.substr(this.parser.pos).search(/^,([^,]|,,)/) === 0) {\n\t\t\t\tvAlign = \"bottom\";\n\t\t\t}\n\t\t\tif(vAlign) {\n\t\t\t\tthis.parser.pos++;\n\t\t\t}\n\t\t\tvar chr = this.parser.source.substr(this.parser.pos,1);\n\t\t\twhile(chr === \" \") {\n\t\t\t\tspaceLeft = true;\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tchr = this.parser.source.substr(this.parser.pos,1);\n\t\t\t}\n\t\t\t// Check whether this is a heading cell\n\t\t\tvar cell;\n\t\t\tif(chr === \"!\") {\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tcell = {type: \"element\", tag: \"th\", children: []};\n\t\t\t} else {\n\t\t\t\tcell = {type: \"element\", tag: \"td\", children: []};\n\t\t\t}\n\t\t\ttree.push(cell);\n\t\t\t// Record information about this cell\n\t\t\tprevCell = cell;\n\t\t\tprevColumns[col] = {rowSpanCount:1,element:cell};\n\t\t\t// Check for a colspan\n\t\t\tif(colSpanCount > 1) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"colspan\",colSpanCount);\n\t\t\t\tcolSpanCount = 1;\n\t\t\t}\n\t\t\t// Parse the cell\n\t\t\tcell.children = this.parser.parseInlineRun(cellTermRegExp,{eatTerminator: true});\n\t\t\t// Set the alignment for the cell\n\t\t\tif(vAlign) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"valign\",vAlign);\n\t\t\t}\n\t\t\tif(this.parser.source.substr(this.parser.pos - 2,1) === \" \") { // spaceRight\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",spaceLeft ? \"center\" : \"left\");\n\t\t\t} else if(spaceLeft) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",\"right\");\n\t\t\t}\n\t\t\t// Move back to the closing `|`\n\t\t\tthis.parser.pos--;\n\t\t}\n\t\tcol++;\n\t\tcellRegExp.lastIndex = this.parser.pos;\n\t\tcellMatch = cellRegExp.exec(this.parser.source);\n\t}\n\treturn tree;\n};\n\nexports.parse = function() {\n\tvar rowContainerTypes = {\"c\":\"caption\", \"h\":\"thead\", \"\":\"tbody\", \"f\":\"tfoot\"},\n\t\ttable = {type: \"element\", tag: \"table\", children: []},\n\t\trowRegExp = /^\\|([^\\n]*)\\|([fhck]?)\\r?(?:\\n|$)/mg,\n\t\trowTermRegExp = /(\\|(?:[fhck]?)\\r?(?:\\n|$))/mg,\n\t\tprevColumns = [],\n\t\tcurrRowType,\n\t\trowContainer,\n\t\trowCount = 0;\n\t// Match the row\n\trowRegExp.lastIndex = this.parser.pos;\n\tvar rowMatch = rowRegExp.exec(this.parser.source);\n\twhile(rowMatch && rowMatch.index === this.parser.pos) {\n\t\tvar rowType = rowMatch[2];\n\t\t// Check if it is a class assignment\n\t\tif(rowType === \"k\") {\n\t\t\t$tw.utils.addClassToParseTreeNode(table,rowMatch[1]);\n\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t} else {\n\t\t\t// Otherwise, create a new row if this one is of a different type\n\t\t\tif(rowType !== currRowType) {\n\t\t\t\trowContainer = {type: \"element\", tag: rowContainerTypes[rowType], children: []};\n\t\t\t\ttable.children.push(rowContainer);\n\t\t\t\tcurrRowType = rowType;\n\t\t\t}\n\t\t\t// Is this a caption row?\n\t\t\tif(currRowType === \"c\") {\n\t\t\t\t// If so, move past the opening `|` of the row\n\t\t\t\tthis.parser.pos++;\n\t\t\t\t// Move the caption to the first row if it isn't already\n\t\t\t\tif(table.children.length !== 1) {\n\t\t\t\t\ttable.children.pop(); // Take rowContainer out of the children array\n\t\t\t\t\ttable.children.splice(0,0,rowContainer); // Insert it at the bottom\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t// Set the alignment - TODO: figure out why TW did this\n//\t\t\t\trowContainer.attributes.align = rowCount === 0 ? \"top\" : \"bottom\";\n\t\t\t\t// Parse the caption\n\t\t\t\trowContainer.children = this.parser.parseInlineRun(rowTermRegExp,{eatTerminator: true});\n\t\t\t} else {\n\t\t\t\t// Create the row\n\t\t\t\tvar theRow = {type: \"element\", tag: \"tr\", children: []};\n\t\t\t\t$tw.utils.addClassToParseTreeNode(theRow,rowCount%2 ? \"oddRow\" : \"evenRow\");\n\t\t\t\trowContainer.children.push(theRow);\n\t\t\t\t// Process the row\n\t\t\t\ttheRow.children = processRow.call(this,prevColumns);\n\t\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t\t\t// Increment the row count\n\t\t\t\trowCount++;\n\t\t\t}\n\t\t}\n\t\trowMatch = rowRegExp.exec(this.parser.source);\n\t}\n\treturn [table];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/table.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/transcludeblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {},\n\t\t\tisBlock: true\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tisBlock: true,\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/transcludeblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/transcludeinline.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {}\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/transcludeinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/typedblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/typedblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for typed blocks. For example:\n\n```\n$$$.js\nThis will be rendered as JavaScript\n$$$\n\n$$$.svg\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"150\" height=\"100\">\n  <circle cx=\"100\" cy=\"50\" r=\"40\" stroke=\"black\" stroke-width=\"2\" fill=\"red\" />\n</svg>\n$$$\n\n$$$text/vnd.tiddlywiki>text/html\nThis will be rendered as an //HTML representation// of WikiText\n$$$\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.name = \"typedblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\$\\$\\$([^ >\\r\\n]*)(?: *> *([^ \\r\\n]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /\\r?\\n\\$\\$\\$\\r?(?:\\n|$)/mg;\n\t// Save the type\n\tvar parseType = this.match[1],\n\t\trenderType = this.match[2];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Parse the block according to the specified type\n\tvar parser = this.parser.wiki.parseText(parseType,text,{defaultType: \"text/plain\"});\n\t// If there's no render type, just return the parse tree\n\tif(!renderType) {\n\t\treturn parser.tree;\n\t} else {\n\t\t// Otherwise, render to the rendertype and return in a <PRE> tag\n\t\tvar widgetNode = this.parser.wiki.makeWidget(parser),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\ttext = renderType === \"text/html\" ? container.innerHTML : container.textContent;\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"pre\",\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/typedblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/wikilink.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikilink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for wiki links. For example:\n\n```\nAWikiLink\nAnotherLink\n~SuppressedLink\n```\n\nPrecede a camel case word with `~` to prevent it from being recognised as a link.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"wikilink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp($tw.config.textPrimitives.unWikiLink + \"?\" + $tw.config.textPrimitives.wikiLink,\"mg\");\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get the details of the match\n\tvar linkText = this.match[0];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// If the link starts with the unwikilink character then just output it as plain text\n\tif(linkText.substr(0,1) === $tw.config.textPrimitives.unWikiLink) {\n\t\treturn [{type: \"text\", text: linkText.substr(1)}];\n\t}\n\t// If the link has been preceded with a blocked letter then don't treat it as a link\n\tif(this.match.index > 0) {\n\t\tvar preRegExp = new RegExp($tw.config.textPrimitives.blockPrefixLetters,\"mg\");\n\t\tpreRegExp.lastIndex = this.match.index-1;\n\t\tvar preMatch = preRegExp.exec(this.parser.source);\n\t\tif(preMatch && preMatch.index === this.match.index-1) {\n\t\t\treturn [{type: \"text\", text: linkText}];\n\t\t}\n\t}\n\treturn [{\n\t\ttype: \"link\",\n\t\tattributes: {\n\t\t\tto: {type: \"string\", value: linkText}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: linkText\n\t\t}]\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/wikilink.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/wikiparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/wikiparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe wiki text parser processes blocks of source text into a parse tree.\n\nThe parse tree is made up of nested arrays of these JavaScript objects:\n\n\t{type: \"element\", tag: <string>, attributes: {}, children: []} - an HTML element\n\t{type: \"text\", text: <string>} - a text node\n\t{type: \"entity\", value: <string>} - an entity\n\t{type: \"raw\", html: <string>} - raw HTML\n\nAttributes are stored as hashmaps of the following objects:\n\n\t{type: \"string\", value: <string>} - literal string\n\t{type: \"indirect\", textReference: <textReference>} - indirect through a text reference\n\t{type: \"macro\", macro: <TBD>} - indirect through a macro invocation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar WikiParser = function(type,text,options) {\n\tthis.wiki = options.wiki;\n\tvar self = this;\n\t// Check for an externally linked tiddler\n\tif($tw.browser && (text || \"\") === \"\" && options._canonical_uri) {\n\t\tthis.loadRemoteTiddler(options._canonical_uri);\n\t\ttext = $tw.language.getRawString(\"LazyLoadingWarning\");\n\t}\n\t// Initialise the classes if we don't have them already\n\tif(!this.pragmaRuleClasses) {\n\t\tWikiParser.prototype.pragmaRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"pragma\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.pragmaRuleClasses,\"$:/config/WikiParserRules/Pragmas/\");\n\t}\n\tif(!this.blockRuleClasses) {\n\t\tWikiParser.prototype.blockRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"block\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.blockRuleClasses,\"$:/config/WikiParserRules/Block/\");\n\t}\n\tif(!this.inlineRuleClasses) {\n\t\tWikiParser.prototype.inlineRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"inline\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.inlineRuleClasses,\"$:/config/WikiParserRules/Inline/\");\n\t}\n\t// Save the parse text\n\tthis.type = type || \"text/vnd.tiddlywiki\";\n\tthis.source = text || \"\";\n\tthis.sourceLength = this.source.length;\n\t// Set current parse position\n\tthis.pos = 0;\n\t// Instantiate the pragma parse rules\n\tthis.pragmaRules = this.instantiateRules(this.pragmaRuleClasses,\"pragma\",0);\n\t// Instantiate the parser block and inline rules\n\tthis.blockRules = this.instantiateRules(this.blockRuleClasses,\"block\",0);\n\tthis.inlineRules = this.instantiateRules(this.inlineRuleClasses,\"inline\",0);\n\t// Parse any pragmas\n\tthis.tree = [];\n\tvar topBranch = this.parsePragmas();\n\t// Parse the text into inline runs or blocks\n\tif(options.parseAsInline) {\n\t\ttopBranch.push.apply(topBranch,this.parseInlineRun());\n\t} else {\n\t\ttopBranch.push.apply(topBranch,this.parseBlocks());\n\t}\n\t// Return the parse tree\n};\n\n/*\n*/\nWikiParser.prototype.loadRemoteTiddler = function(url) {\n\tvar self = this;\n\t$tw.utils.httpRequest({\n\t\turl: url,\n\t\ttype: \"GET\",\n\t\tcallback: function(err,data) {\n\t\t\tif(!err) {\n\t\t\t\tvar tiddlers = self.wiki.deserializeTiddlers(\".tid\",data,self.wiki.getCreationFields());\n\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\ttiddler[\"_canonical_uri\"] = url;\n\t\t\t\t});\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tself.wiki.addTiddlers(tiddlers);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\n*/\nWikiParser.prototype.setupRules = function(proto,configPrefix) {\n\tvar self = this;\n\tif(!$tw.safemode) {\n\t\t$tw.utils.each(proto,function(object,name) {\n\t\t\tif(self.wiki.getTiddlerText(configPrefix + name,\"enable\") !== \"enable\") {\n\t\t\t\tdelete proto[name];\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nInstantiate an array of parse rules\n*/\nWikiParser.prototype.instantiateRules = function(classes,type,startPos) {\n\tvar rulesInfo = [],\n\t\tself = this;\n\t$tw.utils.each(classes,function(RuleClass) {\n\t\t// Instantiate the rule\n\t\tvar rule = new RuleClass(self);\n\t\trule.is = {};\n\t\trule.is[type] = true;\n\t\trule.init(self);\n\t\tvar matchIndex = rule.findNextMatch(startPos);\n\t\tif(matchIndex !== undefined) {\n\t\t\trulesInfo.push({\n\t\t\t\trule: rule,\n\t\t\t\tmatchIndex: matchIndex\n\t\t\t});\n\t\t}\n\t});\n\treturn rulesInfo;\n};\n\n/*\nSkip any whitespace at the current position. Options are:\n\ttreatNewlinesAsNonWhitespace: true if newlines are NOT to be treated as whitespace\n*/\nWikiParser.prototype.skipWhitespace = function(options) {\n\toptions = options || {};\n\tvar whitespaceRegExp = options.treatNewlinesAsNonWhitespace ? /([^\\S\\n]+)/mg : /(\\s+)/mg;\n\twhitespaceRegExp.lastIndex = this.pos;\n\tvar whitespaceMatch = whitespaceRegExp.exec(this.source);\n\tif(whitespaceMatch && whitespaceMatch.index === this.pos) {\n\t\tthis.pos = whitespaceRegExp.lastIndex;\n\t}\n};\n\n/*\nGet the next match out of an array of parse rule instances\n*/\nWikiParser.prototype.findNextMatch = function(rules,startPos) {\n\t// Find the best matching rule by finding the closest match position\n\tvar matchingRule,\n\t\tmatchingRulePos = this.sourceLength;\n\t// Step through each rule\n\tfor(var t=0; t<rules.length; t++) {\n\t\tvar ruleInfo = rules[t];\n\t\t// Ask the rule to get the next match if we've moved past the current one\n\t\tif(ruleInfo.matchIndex !== undefined  && ruleInfo.matchIndex < startPos) {\n\t\t\truleInfo.matchIndex = ruleInfo.rule.findNextMatch(startPos);\n\t\t}\n\t\t// Adopt this match if it's closer than the current best match\n\t\tif(ruleInfo.matchIndex !== undefined && ruleInfo.matchIndex <= matchingRulePos) {\n\t\t\tmatchingRule = ruleInfo;\n\t\t\tmatchingRulePos = ruleInfo.matchIndex;\n\t\t}\n\t}\n\treturn matchingRule;\n};\n\n/*\nParse any pragmas at the beginning of a block of parse text\n*/\nWikiParser.prototype.parsePragmas = function() {\n\tvar currentTreeBranch = this.tree;\n\twhile(true) {\n\t\t// Skip whitespace\n\t\tthis.skipWhitespace();\n\t\t// Check for the end of the text\n\t\tif(this.pos >= this.sourceLength) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check if we've arrived at a pragma rule match\n\t\tvar nextMatch = this.findNextMatch(this.pragmaRules,this.pos);\n\t\t// If not, just exit\n\t\tif(!nextMatch || nextMatch.matchIndex !== this.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the pragma rule\n\t\tvar subTree = nextMatch.rule.parse();\n\t\tif(subTree.length > 0) {\n\t\t\t// Quick hack; we only cope with a single parse tree node being returned, which is true at the moment\n\t\t\tcurrentTreeBranch.push.apply(currentTreeBranch,subTree);\n\t\t\tsubTree[0].children = [];\n\t\t\tcurrentTreeBranch = subTree[0].children;\n\t\t}\n\t}\n\treturn currentTreeBranch;\n};\n\n/*\nParse a block from the current position\n\tterminatorRegExpString: optional regular expression string that identifies the end of plain paragraphs. Must not include capturing parenthesis\n*/\nWikiParser.prototype.parseBlock = function(terminatorRegExpString) {\n\tvar terminatorRegExp = terminatorRegExpString ? new RegExp(\"(\" + terminatorRegExpString + \"|\\\\r?\\\\n\\\\r?\\\\n)\",\"mg\") : /(\\r?\\n\\r?\\n)/mg;\n\tthis.skipWhitespace();\n\tif(this.pos >= this.sourceLength) {\n\t\treturn [];\n\t}\n\t// Look for a block rule that applies at the current position\n\tvar nextMatch = this.findNextMatch(this.blockRules,this.pos);\n\tif(nextMatch && nextMatch.matchIndex === this.pos) {\n\t\treturn nextMatch.rule.parse();\n\t}\n\t// Treat it as a paragraph if we didn't find a block rule\n\treturn [{type: \"element\", tag: \"p\", children: this.parseInlineRun(terminatorRegExp)}];\n};\n\n/*\nParse a series of blocks of text until a terminating regexp is encountered or the end of the text\n\tterminatorRegExpString: terminating regular expression\n*/\nWikiParser.prototype.parseBlocks = function(terminatorRegExpString) {\n\tif(terminatorRegExpString) {\n\t\treturn this.parseBlocksTerminated(terminatorRegExpString);\n\t} else {\n\t\treturn this.parseBlocksUnterminated();\n\t}\n};\n\n/*\nParse a block from the current position to the end of the text\n*/\nWikiParser.prototype.parseBlocksUnterminated = function() {\n\tvar tree = [];\n\twhile(this.pos < this.sourceLength) {\n\t\ttree.push.apply(tree,this.parseBlock());\n\t}\n\treturn tree;\n};\n\n/*\nParse blocks of text until a terminating regexp is encountered\n*/\nWikiParser.prototype.parseBlocksTerminated = function(terminatorRegExpString) {\n\tvar terminatorRegExp = new RegExp(\"(\" + terminatorRegExpString + \")\",\"mg\"),\n\t\ttree = [];\n\t// Skip any whitespace\n\tthis.skipWhitespace();\n\t//  Check if we've got the end marker\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar match = terminatorRegExp.exec(this.source);\n\t// Parse the text into blocks\n\twhile(this.pos < this.sourceLength && !(match && match.index === this.pos)) {\n\t\tvar blocks = this.parseBlock(terminatorRegExpString);\n\t\ttree.push.apply(tree,blocks);\n\t\t// Skip any whitespace\n\t\tthis.skipWhitespace();\n\t\t//  Check if we've got the end marker\n\t\tterminatorRegExp.lastIndex = this.pos;\n\t\tmatch = terminatorRegExp.exec(this.source);\n\t}\n\tif(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t}\n\treturn tree;\n};\n\n/*\nParse a run of text at the current position\n\tterminatorRegExp: a regexp at which to stop the run\n\toptions: see below\nOptions available:\n\teatTerminator: move the parse position past any encountered terminator (default false)\n*/\nWikiParser.prototype.parseInlineRun = function(terminatorRegExp,options) {\n\tif(terminatorRegExp) {\n\t\treturn this.parseInlineRunTerminated(terminatorRegExp,options);\n\t} else {\n\t\treturn this.parseInlineRunUnterminated(options);\n\t}\n};\n\nWikiParser.prototype.parseInlineRunUnterminated = function(options) {\n\tvar tree = [];\n\t// Find the next occurrence of an inline rule\n\tvar nextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around the matches until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && nextMatch) {\n\t\t// Process the text preceding the run rule\n\t\tif(nextMatch.matchIndex > this.pos) {\n\t\t\ttree.push({type: \"text\", text: this.source.substring(this.pos,nextMatch.matchIndex)});\n\t\t\tthis.pos = nextMatch.matchIndex;\n\t\t}\n\t\t// Process the run rule\n\t\ttree.push.apply(tree,nextMatch.rule.parse());\n\t\t// Look for the next run rule\n\t\tnextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\ttree.push({type: \"text\", text: this.source.substr(this.pos)});\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\nWikiParser.prototype.parseInlineRunTerminated = function(terminatorRegExp,options) {\n\toptions = options || {};\n\tvar tree = [];\n\t// Find the next occurrence of the terminator\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar terminatorMatch = terminatorRegExp.exec(this.source);\n\t// Find the next occurrence of a inlinerule\n\tvar inlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && (terminatorMatch || inlineRuleMatch)) {\n\t\t// Return if we've found the terminator, and it precedes any inline rule match\n\t\tif(terminatorMatch) {\n\t\t\tif(!inlineRuleMatch || inlineRuleMatch.matchIndex >= terminatorMatch.index) {\n\t\t\t\tif(terminatorMatch.index > this.pos) {\n\t\t\t\t\ttree.push({type: \"text\", text: this.source.substring(this.pos,terminatorMatch.index)});\n\t\t\t\t}\n\t\t\t\tthis.pos = terminatorMatch.index;\n\t\t\t\tif(options.eatTerminator) {\n\t\t\t\t\tthis.pos += terminatorMatch[0].length;\n\t\t\t\t}\n\t\t\t\treturn tree;\n\t\t\t}\n\t\t}\n\t\t// Process any inline rule, along with the text preceding it\n\t\tif(inlineRuleMatch) {\n\t\t\t// Preceding text\n\t\t\tif(inlineRuleMatch.matchIndex > this.pos) {\n\t\t\t\ttree.push({type: \"text\", text: this.source.substring(this.pos,inlineRuleMatch.matchIndex)});\n\t\t\t\tthis.pos = inlineRuleMatch.matchIndex;\n\t\t\t}\n\t\t\t// Process the inline rule\n\t\t\ttree.push.apply(tree,inlineRuleMatch.rule.parse());\n\t\t\t// Look for the next inline rule\n\t\t\tinlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t\t\t// Look for the next terminator match\n\t\t\tterminatorRegExp.lastIndex = this.pos;\n\t\t\tterminatorMatch = terminatorRegExp.exec(this.source);\n\t\t}\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\ttree.push({type: \"text\", text: this.source.substr(this.pos)});\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\n/*\nParse zero or more class specifiers `.classname`\n*/\nWikiParser.prototype.parseClasses = function() {\n\tvar classRegExp = /\\.([^\\s\\.]+)/mg,\n\t\tclassNames = [];\n\tclassRegExp.lastIndex = this.pos;\n\tvar match = classRegExp.exec(this.source);\n\twhile(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t\tclassNames.push(match[1]);\n\t\tmatch = classRegExp.exec(this.source);\n\t}\n\treturn classNames;\n};\n\n/*\nAmend the rules used by this instance of the parser\n\ttype: `only` keeps just the named rules, `except` keeps all but the named rules\n\tnames: array of rule names\n*/\nWikiParser.prototype.amendRules = function(type,names) {\n\tnames = names || [];\n\t// Define the filter function\n\tvar keepFilter;\n\tif(type === \"only\") {\n\t\tkeepFilter = function(name) {\n\t\t\treturn names.indexOf(name) !== -1;\n\t\t};\n\t} else if(type === \"except\") {\n\t\tkeepFilter = function(name) {\n\t\t\treturn names.indexOf(name) === -1;\n\t\t};\n\t} else {\n\t\treturn;\n\t}\n\t// Define a function to process each of our rule arrays\n\tvar processRuleArray = function(ruleArray) {\n\t\tfor(var t=ruleArray.length-1; t>=0; t--) {\n\t\t\tif(!keepFilter(ruleArray[t].rule.name)) {\n\t\t\t\truleArray.splice(t,1);\n\t\t\t}\n\t\t}\n\t};\n\t// Process each rule array\n\tprocessRuleArray(this.pragmaRules);\n\tprocessRuleArray(this.blockRules);\n\tprocessRuleArray(this.inlineRules);\n};\n\nexports[\"text/vnd.tiddlywiki\"] = WikiParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/wikiparser/wikiparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/wikiparser/rules/wikirulebase.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikirulebase.js\ntype: application/javascript\nmodule-type: global\n\nBase class for wiki parser rules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nThis constructor is always overridden with a blank constructor, and so shouldn't be used\n*/\nvar WikiRuleBase = function() {\n};\n\n/*\nTo be overridden by individual rules\n*/\nWikiRuleBase.prototype.init = function(parser) {\n\tthis.parser = parser;\n};\n\n/*\nDefault implementation of findNextMatch uses RegExp matching\n*/\nWikiRuleBase.prototype.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\treturn this.match ? this.match.index : undefined;\n};\n\nexports.WikiRuleBase = WikiRuleBase;\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/wikirulebase.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/pluginswitcher.js": {
            "text": "/*\\\ntitle: $:/core/modules/pluginswitcher.js\ntype: application/javascript\nmodule-type: global\n\nManages switching plugins for themes and languages.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\noptions:\nwiki: wiki store to be used\npluginType: type of plugin to be switched\ncontrollerTitle: title of tiddler used to control switching of this resource\ndefaultPlugins: array of default plugins to be used if nominated plugin isn't found\nonSwitch: callback when plugin is switched (single parameter is array of plugin titles)\n*/\nfunction PluginSwitcher(options) {\n\tthis.wiki = options.wiki;\n\tthis.pluginType = options.pluginType;\n\tthis.controllerTitle = options.controllerTitle;\n\tthis.defaultPlugins = options.defaultPlugins || [];\n\tthis.onSwitch = options.onSwitch;\n\t// Switch to the current plugin\n\tthis.switchPlugins();\n\t// Listen for changes to the selected plugin\n\tvar self = this;\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,self.controllerTitle)) {\n\t\t\tself.switchPlugins();\n\t\t}\n\t});\n}\n\nPluginSwitcher.prototype.switchPlugins = function() {\n\t// Get the name of the current theme\n\tvar selectedPluginTitle = this.wiki.getTiddlerText(this.controllerTitle);\n\t// If it doesn't exist, then fallback to one of the default themes\n\tvar index = 0;\n\twhile(!this.wiki.getTiddler(selectedPluginTitle) && index < this.defaultPlugins.length) {\n\t\tselectedPluginTitle = this.defaultPlugins[index++];\n\t}\n\t// Accumulate the titles of the plugins that we need to load\n\tvar plugins = [],\n\t\tself = this,\n\t\taccumulatePlugin = function(title) {\n\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\tif(tiddler && tiddler.isPlugin() && plugins.indexOf(title) === -1) {\n\t\t\t\tplugins.push(title);\n\t\t\t\tvar pluginInfo = JSON.parse(self.wiki.getTiddlerText(title)),\n\t\t\t\t\tdependents = $tw.utils.parseStringArray(tiddler.fields.dependents || \"\");\n\t\t\t\t$tw.utils.each(dependents,function(title) {\n\t\t\t\t\taccumulatePlugin(title);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\taccumulatePlugin(selectedPluginTitle);\n\t// Unregister any existing theme tiddlers\n\tvar unregisteredTiddlers = $tw.wiki.unregisterPluginTiddlers(this.pluginType);\n\t// Register any new theme tiddlers\n\tvar registeredTiddlers = $tw.wiki.registerPluginTiddlers(this.pluginType,plugins);\n\t// Unpack the current theme tiddlers\n\t$tw.wiki.unpackPluginTiddlers();\n\t// Call the switch handler\n\tif(this.onSwitch) {\n\t\tthis.onSwitch(plugins);\n\t}\n};\n\nexports.PluginSwitcher = PluginSwitcher;\n\n})();\n",
            "title": "$:/core/modules/pluginswitcher.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/saver-handler.js": {
            "text": "/*\\\ntitle: $:/core/modules/saver-handler.js\ntype: application/javascript\nmodule-type: global\n\nThe saver handler tracks changes to the store and handles saving the entire wiki via saver modules.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInstantiate the saver handler with the following options:\nwiki: wiki to be synced\ndirtyTracking: true if dirty tracking should be performed\n*/\nfunction SaverHandler(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\tthis.dirtyTracking = options.dirtyTracking;\n\tthis.pendingAutoSave = false;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"saver-handler\");\n\t// Initialise our savers\n\tif($tw.browser) {\n\t\tthis.initSavers();\n\t}\n\t// Only do dirty tracking if required\n\tif($tw.browser && this.dirtyTracking) {\n\t\t// Compile the dirty tiddler filter\n\t\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t\t// Count of changes that have not yet been saved\n\t\tthis.numChanges = 0;\n\t\t// Listen out for changes to tiddlers\n\t\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t\t// Filter the changes so that we only count changes to tiddlers that we care about\n\t\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\titerator(tiddler,title);\n\t\t\t\t});\n\t\t\t});\n\t\t\t// Adjust the number of changes\n\t\t\tself.numChanges += filteredChanges.length;\n\t\t\tself.updateDirtyStatus();\n\t\t\t// Do any autosave if one is pending and there's no more change events\n\t\t\tif(self.pendingAutoSave && self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tself.pendingAutoSave = false;\n\t\t\t}\n\t\t});\n\t\t// Listen for the autosave event\n\t\t$tw.rootWidget.addEventListener(\"tm-auto-save-wiki\",function(event) {\n\t\t\t// Do the autosave unless there are outstanding tiddler change events\n\t\t\tif(self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise put ourselves in the \"pending autosave\" state and wait for the change event before we do the autosave\n\t\t\t\tself.pendingAutoSave = true;\n\t\t\t}\n\t\t});\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t}\n\t// Install the save action handlers\n\tif($tw.browser) {\n\t\t$tw.rootWidget.addEventListener(\"tm-save-wiki\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-download-file\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\tmethod: \"download\",\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t}\n}\n\nSaverHandler.prototype.titleSyncFilter = \"$:/config/SaverFilter\";\nSaverHandler.prototype.titleAutoSave = \"$:/config/AutoSave\";\nSaverHandler.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\n\n/*\nSelect the appropriate saver modules and set them up\n*/\nSaverHandler.prototype.initSavers = function(moduleType) {\n\tmoduleType = moduleType || \"saver\";\n\t// Instantiate the available savers\n\tthis.savers = [];\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tif(module.canSave(self)) {\n\t\t\tself.savers.push(module.create(self.wiki));\n\t\t}\n\t});\n\t// Sort the savers into priority order\n\tthis.savers.sort(function(a,b) {\n\t\tif(a.info.priority < b.info.priority) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(a.info.priority > b.info.priority) {\n\t\t\t\treturn +1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nSave the wiki contents. Options are:\n\tmethod: \"save\", \"autosave\" or \"download\"\n\ttemplate: the tiddler containing the template to save\n\tdownloadType: the content type for the saved file\n*/\nSaverHandler.prototype.saveWiki = function(options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tmethod = options.method || \"save\",\n\t\tvariables = options.variables || {},\n\t\ttemplate = options.template || \"$:/core/save/all\",\n\t\tdownloadType = options.downloadType || \"text/plain\",\n\t\ttext = this.wiki.renderTiddler(downloadType,template,options),\n\t\tcallback = function(err) {\n\t\t\tif(err) {\n\t\t\t\talert($tw.language.getString(\"Error/WhileSaving\") + \":\\n\\n\" + err);\n\t\t\t} else {\n\t\t\t\t// Clear the task queue if we're saving (rather than downloading)\n\t\t\t\tif(method !== \"download\") {\n\t\t\t\t\tself.numChanges = 0;\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t}\n\t\t\t\t$tw.notifier.display(self.titleSavedNotification);\n\t\t\t\tif(options.callback) {\n\t\t\t\t\toptions.callback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t// Ignore autosave if disabled\n\tif(method === \"autosave\" && this.wiki.getTiddlerText(this.titleAutoSave,\"yes\") !== \"yes\") {\n\t\treturn false;\n\t}\n\t// Call the highest priority saver that supports this method\n\tfor(var t=this.savers.length-1; t>=0; t--) {\n\t\tvar saver = this.savers[t];\n\t\tif(saver.info.capabilities.indexOf(method) !== -1 && saver.save(text,method,callback,{variables: {filename: variables.filename}})) {\n\t\t\tthis.logger.log(\"Saving wiki with method\",method,\"through saver\",saver.info.name);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSaverHandler.prototype.isDirty = function() {\n\treturn this.numChanges > 0;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSaverHandler.prototype.updateDirtyStatus = function() {\n\tif($tw.browser) {\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",this.isDirty());\n\t}\n};\n\nexports.SaverHandler = SaverHandler;\n\n})();\n",
            "title": "$:/core/modules/saver-handler.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/savers/andtidwiki.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/andtidwiki.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the AndTidWiki Android app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar AndTidWiki = function(wiki) {\n};\n\nAndTidWiki.prototype.save = function(text,method,callback) {\n\t// Get the pathname of this document\n\tvar pathname = decodeURIComponent(document.location.toString().split(\"#\")[0]);\n\t// Strip the file://\n\tif(pathname.indexOf(\"file://\") === 0) {\n\t\tpathname = pathname.substr(7);\n\t}\n\t// Strip any query or location part\n\tvar p = pathname.indexOf(\"?\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\tp = pathname.indexOf(\"#\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\t// Save the file\n\twindow.twi.saveFile(pathname,text);\n\t// Call the callback\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nAndTidWiki.prototype.info = {\n\tname: \"andtidwiki\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.twi && !!window.twi.saveFile;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new AndTidWiki(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/andtidwiki.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/beaker.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/beaker.js\ntype: application/javascript\nmodule-type: saver\n\nSaves files using the Beaker browser's (https://beakerbrowser.com) Dat protocol (https://datproject.org/)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet up the saver\n*/\nvar BeakerSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nBeakerSaver.prototype.save = function(text,method,callback) {\n\tvar url = (location.toString()).split(\"#\")[0];\n\tdat.stat(url).then(function(value) {\n\t\tif(value.type === \"directory\") {\n\t\t\turl = url + \"/index.html\";\n\t\t}\n\t\tdat.writeFile(url,text,\"utf8\").then(function(value) {\n\t\t\tcallback(null);\n\t\t},function(reason) {\n\t\t\tcallback(\"Beaker Saver Write Error: \" + reason);\n\t\t});\t\t\n\t},function(reason) {\n\t\tcallback(\"Beaker Saver Stat Error: \" + reason);\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nBeakerSaver.prototype.info = {\n\tname: \"beaker\",\n\tpriority: 3000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.dat;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new BeakerSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/beaker.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/download.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/download.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar DownloadSaver = function(wiki) {\n};\n\nDownloadSaver.prototype.save = function(text,method,callback,options) {\n\toptions = options || {};\n\t// Get the current filename\n\tvar filename = options.variables.filename;\n\tif(!filename) {\n\t\tvar p = document.location.pathname.lastIndexOf(\"/\");\n\t\tif(p !== -1) {\n\t\t\tfilename = document.location.pathname.substr(p+1);\n\t\t}\n\t}\n\tif(!filename) {\n\t\tfilename = \"tiddlywiki.html\";\n\t}\n\t// Set up the link\n\tvar link = document.createElement(\"a\");\n\tif(Blob !== undefined) {\n\t\tvar blob = new Blob([text], {type: \"text/html\"});\n\t\tlink.setAttribute(\"href\", URL.createObjectURL(blob));\n\t} else {\n\t\tlink.setAttribute(\"href\",\"data:text/html,\" + encodeURIComponent(text));\n\t}\n\tlink.setAttribute(\"download\",filename);\n\tdocument.body.appendChild(link);\n\tlink.click();\n\tdocument.body.removeChild(link);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nDownloadSaver.prototype.info = {\n\tname: \"download\",\n\tpriority: 100\n};\n\nObject.defineProperty(DownloadSaver.prototype.info, \"capabilities\", {\n\tget: function() {\n\t\tvar capabilities = [\"save\", \"download\"];\n\t\tif(($tw.wiki.getTextReference(\"$:/config/DownloadSaver/AutoSave\") || \"\").toLowerCase() === \"yes\") {\n\t\t\tcapabilities.push(\"autosave\");\n\t\t}\n\t\treturn capabilities;\n\t}\n});\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn document.createElement(\"a\").download !== undefined;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new DownloadSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/download.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/fsosaver.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/fsosaver.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via MS FileSystemObject ActiveXObject\n\nNote: Since TiddlyWiki's markup contains the MOTW, the FileSystemObject normally won't be available. \nHowever, if the wiki is loaded as an .HTA file (Windows HTML Applications) then the FSO can be used.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar FSOSaver = function(wiki) {\n};\n\nFSOSaver.prototype.save = function(text,method,callback) {\n\t// Get the pathname of this document\n\tvar pathname = unescape(document.location.pathname);\n\t// Test for a Windows path of the form /x:\\blah...\n\tif(/^\\/[A-Z]\\:\\\\[^\\\\]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t} else if(document.location.hostname !== \"\" && /^\\/\\\\[^\\\\]+\\\\[^\\\\]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t\t// reconstruct UNC path\n\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t} else {\n\t\treturn false;\n\t}\n\t// Save the file (as UTF-16)\n\tvar fso = new ActiveXObject(\"Scripting.FileSystemObject\");\n\tvar file = fso.OpenTextFile(pathname,2,-1,-1);\n\tfile.Write(text);\n\tfile.Close();\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nFSOSaver.prototype.info = {\n\tname: \"FSOSaver\",\n\tpriority: 120,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\ttry {\n\t\treturn (window.location.protocol === \"file:\") && !!(new ActiveXObject(\"Scripting.FileSystemObject\"));\n\t} catch(e) { return false; }\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new FSOSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/fsosaver.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/manualdownload.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/manualdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Title of the tiddler containing the download message\nvar downloadInstructionsTitle = \"$:/language/Modals/Download\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar ManualDownloadSaver = function(wiki) {\n};\n\nManualDownloadSaver.prototype.save = function(text,method,callback) {\n\t$tw.modal.display(downloadInstructionsTitle,{\n\t\tdownloadLink: \"data:text/html,\" + encodeURIComponent(text)\n\t});\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nManualDownloadSaver.prototype.info = {\n\tname: \"manualdownload\",\n\tpriority: 0,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new ManualDownloadSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/manualdownload.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/msdownload.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/msdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via window.navigator.msSaveBlob()\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar MsDownloadSaver = function(wiki) {\n};\n\nMsDownloadSaver.prototype.save = function(text,method,callback) {\n\t// Get the current filename\n\tvar filename = \"tiddlywiki.html\",\n\t\tp = document.location.pathname.lastIndexOf(\"/\");\n\tif(p !== -1) {\n\t\tfilename = document.location.pathname.substr(p+1);\n\t}\n\t// Set up the link\n\tvar blob = new Blob([text], {type: \"text/html\"});\n\twindow.navigator.msSaveBlob(blob,filename);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nMsDownloadSaver.prototype.info = {\n\tname: \"msdownload\",\n\tpriority: 110,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.navigator.msSaveBlob;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new MsDownloadSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/msdownload.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/put.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/put.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by performing a PUT request to the server\n\nWorks with any server which accepts a PUT request\nto the current URL, such as a WebDAV server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar PutSaver = function(wiki) {\n\tthis.wiki = wiki;\n\tvar self = this;\n\tvar uri = this.uri();\n\t// Async server probe. Until probe finishes, save will fail fast\n\t// See also https://github.com/Jermolene/TiddlyWiki5/issues/2276\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"OPTIONS\",\n\t\tcallback: function(err, data, xhr) {\n\t\t\t// Check DAV header http://www.webdav.org/specs/rfc2518.html#rfc.section.9.1\n\t\t\tif(!err) {\n\t\t\t\tself.serverAcceptsPuts = xhr.status === 200 && !!xhr.getResponseHeader(\"dav\");\n\t\t\t}\n\t\t}\n\t});\n\t// Retrieve ETag if available\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"HEAD\",\n\t\tcallback: function(err, data, xhr) {\n\t\t\tif(!err) {\n\t\t\t\tself.etag = xhr.getResponseHeader(\"ETag\");\n\t\t\t}\n\t\t}\n\t});\n};\n\nPutSaver.prototype.uri = function() {\n\treturn encodeURI(document.location.toString().split(\"#\")[0]);\n};\n\n// TODO: in case of edit conflict\n// Prompt: Do you want to save over this? Y/N\n// Merging would be ideal, and may be possible using future generic merge flow\nPutSaver.prototype.save = function(text, method, callback) {\n\tif(!this.serverAcceptsPuts) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tvar headers = { \"Content-Type\": \"text/html;charset=UTF-8\" };\n\tif(this.etag) {\n\t\theaders[\"If-Match\"] = this.etag;\n\t}\n\t$tw.utils.httpRequest({\n\t\turl: this.uri(),\n\t\ttype: \"PUT\",\n\t\theaders: headers,\n\t\tdata: text,\n\t\tcallback: function(err, data, xhr) {\n\t\t\tif(err) {\n\t\t\t\tcallback(err);\n\t\t\t} if(xhr.status === 200 || xhr.status === 201) {\n\t\t\t\tself.etag = xhr.getResponseHeader(\"ETag\");\n\t\t\t\tcallback(null); // success\n\t\t\t} else if(xhr.status === 412) { // edit conflict\n\t\t\t\tvar message = $tw.language.getString(\"Error/EditConflict\");\n\t\t\t\tcallback(message);\n\t\t\t} else {\n\t\t\t\tcallback(xhr.responseText); // fail\n\t\t\t}\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nPutSaver.prototype.info = {\n\tname: \"put\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn /^https?:/.test(location.protocol);\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new PutSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/put.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/tiddlyfox.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/tiddlyfox.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TiddlyFox file extension\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TiddlyFoxSaver = function(wiki) {\n};\n\nTiddlyFoxSaver.prototype.save = function(text,method,callback) {\n\tvar messageBox = document.getElementById(\"tiddlyfox-message-box\");\n\tif(messageBox) {\n\t\t// Get the pathname of this document\n\t\tvar pathname = document.location.toString().split(\"#\")[0];\n\t\t// Replace file://localhost/ with file:///\n\t\tif(pathname.indexOf(\"file://localhost/\") === 0) {\n\t\t\tpathname = \"file://\" + pathname.substr(16);\n\t\t}\n\t\t// Windows path file:///x:/blah/blah --> x:\\blah\\blah\n\t\tif(/^file\\:\\/\\/\\/[A-Z]\\:\\//i.test(pathname)) {\n\t\t\t// Remove the leading slash and convert slashes to backslashes\n\t\t\tpathname = pathname.substr(8).replace(/\\//g,\"\\\\\");\n\t\t// Firefox Windows network path file://///server/share/blah/blah --> //server/share/blah/blah\n\t\t} else if(pathname.indexOf(\"file://///\") === 0) {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(10)).replace(/\\//g,\"\\\\\");\n\t\t// Mac/Unix local path file:///path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:///\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(7));\n\t\t// Mac/Unix local path file:/path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:/\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(5));\n\t\t// Otherwise Windows networth path file://server/share/path/path --> \\\\server\\share\\path\\path\n\t\t} else {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(7)).replace(new RegExp(\"/\",\"g\"),\"\\\\\");\n\t\t}\n\t\t// Create the message element and put it in the message box\n\t\tvar message = document.createElement(\"div\");\n\t\tmessage.setAttribute(\"data-tiddlyfox-path\",decodeURIComponent(pathname));\n\t\tmessage.setAttribute(\"data-tiddlyfox-content\",text);\n\t\tmessageBox.appendChild(message);\n\t\t// Add an event handler for when the file has been saved\n\t\tmessage.addEventListener(\"tiddlyfox-have-saved-file\",function(event) {\n\t\t\tcallback(null);\n\t\t}, false);\n\t\t// Create and dispatch the custom event to the extension\n\t\tvar event = document.createEvent(\"Events\");\n\t\tevent.initEvent(\"tiddlyfox-save-file\",true,false);\n\t\tmessage.dispatchEvent(event);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyFoxSaver.prototype.info = {\n\tname: \"tiddlyfox\",\n\tpriority: 1500,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyFoxSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/tiddlyfox.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/tiddlyie.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/tiddlyie.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via Internet Explorer BHO extenion (TiddlyIE)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar TiddlyIESaver = function(wiki) {\n};\n\nTiddlyIESaver.prototype.save = function(text,method,callback) {\n\t// Check existence of TiddlyIE BHO extension (note: only works after document is complete)\n\tif(typeof(window.TiddlyIE) != \"undefined\") {\n\t\t// Get the pathname of this document\n\t\tvar pathname = unescape(document.location.pathname);\n\t\t// Test for a Windows path of the form /x:/blah...\n\t\tif(/^\\/[A-Z]\\:\\/[^\\/]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+ (is this better?: ^/[a-z]:/[^/]+(/[^/]+)*\\.[^/]+ )\n\t\t\t// Remove the leading slash\n\t\t\tpathname = pathname.substr(1);\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t} else if(document.hostname !== \"\" && /^\\/[^\\/]+\\/[^\\/]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t\t// reconstruct UNC path\n\t\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t\t} else return false;\n\t\t// Prompt the user to save the file\n\t\twindow.TiddlyIE.save(pathname, text);\n\t\t// Callback that we succeeded\n\t\tcallback(null);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyIESaver.prototype.info = {\n\tname: \"tiddlyiesaver\",\n\tpriority: 1500,\n\tcapabilities: [\"save\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn (window.location.protocol === \"file:\");\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyIESaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/tiddlyie.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/twedit.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/twedit.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TWEdit iOS app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TWEditSaver = function(wiki) {\n};\n\nTWEditSaver.prototype.save = function(text,method,callback) {\n\t// Bail if we're not running under TWEdit\n\tif(typeof DeviceInfo !== \"object\") {\n\t\treturn false;\n\t}\n\t// Get the pathname of this document\n\tvar pathname = decodeURIComponent(document.location.pathname);\n\t// Strip any query or location part\n\tvar p = pathname.indexOf(\"?\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\tp = pathname.indexOf(\"#\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\t// Remove the leading \"/Documents\" from path\n\tvar prefix = \"/Documents\";\n\tif(pathname.indexOf(prefix) === 0) {\n\t\tpathname = pathname.substr(prefix.length);\n\t}\n\t// Error handler\n\tvar errorHandler = function(event) {\n\t\t// Error\n\t\tcallback($tw.language.getString(\"Error/SavingToTWEdit\") + \": \" + event.target.error.code);\n\t};\n\t// Get the file system\n\twindow.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem) {\n\t\t// Now we've got the filesystem, get the fileEntry\n\t\tfileSystem.root.getFile(pathname, {create: true}, function(fileEntry) {\n\t\t\t// Now we've got the fileEntry, create the writer\n\t\t\tfileEntry.createWriter(function(writer) {\n\t\t\t\twriter.onerror = errorHandler;\n\t\t\t\twriter.onwrite = function() {\n\t\t\t\t\tcallback(null);\n\t\t\t\t};\n\t\t\t\twriter.position = 0;\n\t\t\t\twriter.write(text);\n\t\t\t},errorHandler);\n\t\t}, errorHandler);\n\t}, errorHandler);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nTWEditSaver.prototype.info = {\n\tname: \"twedit\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TWEditSaver(wiki);\n};\n\n/////////////////////////// Hack\n// HACK: This ensures that TWEdit recognises us as a TiddlyWiki document\nif($tw.browser) {\n\twindow.version = {title: \"TiddlyWiki\"};\n}\n\n})();\n",
            "title": "$:/core/modules/savers/twedit.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/upload.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/upload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via upload to a server.\n\nDesigned to be compatible with BidiX's UploadPlugin at http://tiddlywiki.bidix.info/#UploadPlugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar UploadSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nUploadSaver.prototype.save = function(text,method,callback) {\n\t// Get the various parameters we need\n\tvar backupDir = this.wiki.getTextReference(\"$:/UploadBackupDir\") || \".\",\n\t\tusername = this.wiki.getTextReference(\"$:/UploadName\"),\n\t\tpassword = $tw.utils.getPassword(\"upload\"),\n\t\tuploadDir = this.wiki.getTextReference(\"$:/UploadDir\") || \".\",\n\t\tuploadFilename = this.wiki.getTextReference(\"$:/UploadFilename\") || \"index.html\",\n\t\turl = this.wiki.getTextReference(\"$:/UploadURL\");\n\t// Bail out if we don't have the bits we need\n\tif(!username || username.toString().trim() === \"\" || !password || password.toString().trim() === \"\") {\n\t\treturn false;\n\t}\n\t// Construct the url if not provided\n\tif(!url) {\n\t\turl = \"http://\" + username + \".tiddlyspot.com/store.cgi\";\n\t}\n\t// Assemble the header\n\tvar boundary = \"---------------------------\" + \"AaB03x\";\t\n\tvar uploadFormName = \"UploadPlugin\";\n\tvar head = [];\n\thead.push(\"--\" + boundary + \"\\r\\nContent-disposition: form-data; name=\\\"UploadPlugin\\\"\\r\\n\");\n\thead.push(\"backupDir=\" + backupDir + \";user=\" + username + \";password=\" + password + \";uploaddir=\" + uploadDir + \";;\"); \n\thead.push(\"\\r\\n\" + \"--\" + boundary);\n\thead.push(\"Content-disposition: form-data; name=\\\"userfile\\\"; filename=\\\"\" + uploadFilename + \"\\\"\");\n\thead.push(\"Content-Type: text/html;charset=UTF-8\");\n\thead.push(\"Content-Length: \" + text.length + \"\\r\\n\");\n\thead.push(\"\");\n\t// Assemble the tail and the data itself\n\tvar tail = \"\\r\\n--\" + boundary + \"--\\r\\n\",\n\t\tdata = head.join(\"\\r\\n\") + text + tail;\n\t// Do the HTTP post\n\tvar http = new XMLHttpRequest();\n\thttp.open(\"POST\",url,true,username,password);\n\thttp.setRequestHeader(\"Content-Type\",\"multipart/form-data; charset=UTF-8; boundary=\" + boundary);\n\thttp.onreadystatechange = function() {\n\t\tif(http.readyState == 4 && http.status == 200) {\n\t\t\tif(http.responseText.substr(0,4) === \"0 - \") {\n\t\t\t\tcallback(null);\n\t\t\t} else {\n\t\t\t\tcallback(http.responseText);\n\t\t\t}\n\t\t}\n\t};\n\ttry {\n\t\thttp.send(data);\n\t} catch(ex) {\n\t\treturn callback($tw.language.getString(\"Error/Caption\") + \":\" + ex);\n\t}\n\t$tw.notifier.display(\"$:/language/Notifications/Save/Starting\");\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nUploadSaver.prototype.info = {\n\tname: \"upload\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new UploadSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/upload.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/browser-messaging.js": {
            "text": "/*\\\ntitle: $:/core/modules/browser-messaging.js\ntype: application/javascript\nmodule-type: startup\n\nBrowser message handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"browser-messaging\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*\nLoad a specified url as an iframe and call the callback when it is loaded. If the url is already loaded then the existing iframe instance is used\n*/\nfunction loadIFrame(url,callback) {\n\t// Check if iframe already exists\n\tvar iframeInfo = $tw.browserMessaging.iframeInfoMap[url];\n\tif(iframeInfo) {\n\t\t// We've already got the iframe\n\t\tcallback(null,iframeInfo);\n\t} else {\n\t\t// Create the iframe and save it in the list\n\t\tvar iframe = document.createElement(\"iframe\");\n\t\tiframeInfo = {\n\t\t\turl: url,\n\t\t\tstatus: \"loading\",\n\t\t\tdomNode: iframe\n\t\t};\n\t\t$tw.browserMessaging.iframeInfoMap[url] = iframeInfo;\n\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t// Add the iframe to the DOM and hide it\n\t\tiframe.style.display = \"none\";\n\t\tiframe.setAttribute(\"library\",\"true\");\n\t\tdocument.body.appendChild(iframe);\n\t\t// Set up onload\n\t\tiframe.onload = function() {\n\t\t\tiframeInfo.status = \"loaded\";\n\t\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t\tcallback(null,iframeInfo);\n\t\t};\n\t\tiframe.onerror = function() {\n\t\t\tcallback(\"Cannot load iframe\");\n\t\t};\n\t\ttry {\n\t\t\tiframe.src = url;\n\t\t} catch(ex) {\n\t\t\tcallback(ex);\n\t\t}\n\t}\n}\n\n/*\nUnload library iframe for given url\n*/\nfunction unloadIFrame(url){\n\t$tw.utils.each(document.getElementsByTagName('iframe'), function(iframe) {\n\t\tif(iframe.getAttribute(\"library\") === \"true\" &&\n\t\t  iframe.getAttribute(\"src\") === url) {\n\t\t\tiframe.parentNode.removeChild(iframe);\n\t\t}\n\t});\n}\n\nfunction saveIFrameInfoTiddler(iframeInfo) {\n\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),{\n\t\ttitle: \"$:/temp/ServerConnection/\" + iframeInfo.url,\n\t\ttext: iframeInfo.status,\n\t\ttags: [\"$:/tags/ServerConnection\"],\n\t\turl: iframeInfo.url\n\t},$tw.wiki.getModificationFields()));\n}\n\nexports.startup = function() {\n\t// Initialise the store of iframes we've created\n\t$tw.browserMessaging = {\n\t\tiframeInfoMap: {} // Hashmap by URL of {url:,status:\"loading/loaded\",domNode:}\n\t};\n\t// Listen for widget messages to control loading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\tif(url) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers.json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-info\",\n\t\t\t\t\t\t\tinfoTitlePrefix: paramObject.infoTitlePrefix || \"$:/temp/RemoteAssetInfo/\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for widget messages to control unloading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-unload-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\t$tw.browserMessaging.iframeInfoMap[url] = undefined;\n\t\tif(url) {\n\t\t\tunloadIFrame(url);\n\t\t\t$tw.utils.each(\n\t\t\t\t$tw.wiki.filterTiddlers(\"[[$:/temp/ServerConnection/\" + url + \"]] [prefix[$:/temp/RemoteAssetInfo/\" + url + \"/]]\"),\n\t\t\t\tfunction(title) {\n\t\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-from-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url,\n\t\t\ttitle = paramObject.title;\n\t\tif(url && title) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers/\" + encodeURIComponent(title) + \".json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-tiddler\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for window messages from other windows\n\twindow.addEventListener(\"message\",function listener(event){\n\t\tconsole.log(\"browser-messaging: \",document.location.toString())\n\t\tconsole.log(\"browser-messaging: Received message from\",event.origin);\n\t\tconsole.log(\"browser-messaging: Message content\",event.data);\n\t\tswitch(event.data.verb) {\n\t\t\tcase \"GET-RESPONSE\":\n\t\t\t\tif(event.data.status.charAt(0) === \"2\") {\n\t\t\t\t\tif(event.data.cookies) {\n\t\t\t\t\t\tif(event.data.cookies.type === \"save-info\") {\n\t\t\t\t\t\t\tvar tiddlers = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\t\t\t\t\ttitle: event.data.cookies.infoTitlePrefix + event.data.cookies.url + \"/\" + tiddler.title,\n\t\t\t\t\t\t\t\t\t\"original-title\": tiddler.title,\n\t\t\t\t\t\t\t\t\ttext: \"\",\n\t\t\t\t\t\t\t\t\ttype: \"text/vnd.tiddlywiki\",\n\t\t\t\t\t\t\t\t\t\"original-type\": tiddler.type,\n\t\t\t\t\t\t\t\t\t\"plugin-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-plugin-type\": tiddler[\"plugin-type\"],\n\t\t\t\t\t\t\t\t\t\"module-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-module-type\": tiddler[\"module-type\"],\n\t\t\t\t\t\t\t\t\ttags: [\"$:/tags/RemoteAssetInfo\"],\n\t\t\t\t\t\t\t\t\t\"original-tags\": $tw.utils.stringifyList(tiddler.tags || []),\n\t\t\t\t\t\t\t\t\t\"server-url\": event.data.cookies.url\n\t\t\t\t\t\t\t\t},$tw.wiki.getModificationFields()));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else if(event.data.cookies.type === \"save-tiddler\") {\n\t\t\t\t\t\t\tvar tiddler = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t},false);\n};\n\n})();\n",
            "title": "$:/core/modules/browser-messaging.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/commands.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/commands.js\ntype: application/javascript\nmodule-type: startup\n\nCommand processing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"commands\";\nexports.platforms = [\"node\"];\nexports.after = [\"story\"];\nexports.synchronous = false;\n\nexports.startup = function(callback) {\n\t// On the server, start a commander with the command line arguments\n\tvar commander = new $tw.Commander(\n\t\t$tw.boot.argv,\n\t\tfunction(err) {\n\t\t\tif(err) {\n\t\t\t\treturn $tw.utils.error(\"Error: \" + err);\n\t\t\t}\n\t\t\tcallback();\n\t\t},\n\t\t$tw.wiki,\n\t\t{output: process.stdout, error: process.stderr}\n\t);\n\tcommander.execute();\n};\n\n})();\n",
            "title": "$:/core/modules/startup/commands.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/favicon.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/favicon.js\ntype: application/javascript\nmodule-type: startup\n\nFavicon handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"favicon\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\t\t\n// Favicon tiddler\nvar FAVICON_TITLE = \"$:/favicon.ico\";\n\nexports.startup = function() {\n\t// Set up the favicon\n\tsetFavicon();\n\t// Reset the favicon when the tiddler changes\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,FAVICON_TITLE)) {\n\t\t\tsetFavicon();\n\t\t}\n\t});\n};\n\nfunction setFavicon() {\n\tvar tiddler = $tw.wiki.getTiddler(FAVICON_TITLE);\n\tif(tiddler) {\n\t\tvar faviconLink = document.getElementById(\"faviconLink\");\n\t\tfaviconLink.setAttribute(\"href\",\"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text);\n\t}\n}\n\n})();\n",
            "title": "$:/core/modules/startup/favicon.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/info.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/info.js\ntype: application/javascript\nmodule-type: startup\n\nInitialise $:/info tiddlers via $:/temp/info-plugin pseudo-plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"info\";\nexports.before = [\"startup\"];\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Collect up the info tiddlers\n\tvar infoTiddlerFields = {};\n\t// Give each info module a chance to fill in as many info tiddlers as they want\n\t$tw.modules.forEachModuleOfType(\"info\",function(title,moduleExports) {\n\t\tif(moduleExports && moduleExports.getInfoTiddlerFields) {\n\t\t\tvar tiddlerFieldsArray = moduleExports.getInfoTiddlerFields(infoTiddlerFields);\n\t\t\t$tw.utils.each(tiddlerFieldsArray,function(fields) {\n\t\t\t\tif(fields) {\n\t\t\t\t\tinfoTiddlerFields[fields.title] = fields;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Bake the info tiddlers into a plugin\n\tvar fields = {\n\t\ttitle: \"$:/temp/info-plugin\",\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"info\",\n\t\ttext: JSON.stringify({tiddlers: infoTiddlerFields},null,$tw.config.preferences.jsonSpaces)\n\t};\n\t$tw.wiki.addTiddler(new $tw.Tiddler(fields));\n\t$tw.wiki.readPluginInfo();\n\t$tw.wiki.registerPluginTiddlers(\"info\");\n\t$tw.wiki.unpackPluginTiddlers();\n};\n\n})();\n",
            "title": "$:/core/modules/startup/info.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/load-modules.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/load-modules.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"load-modules\";\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Load modules\n\t$tw.modules.applyMethods(\"utils\",$tw.utils);\n\tif($tw.node) {\n\t\t$tw.modules.applyMethods(\"utils-node\",$tw.utils);\n\t}\n\t$tw.modules.applyMethods(\"global\",$tw);\n\t$tw.modules.applyMethods(\"config\",$tw.config);\n\t$tw.Tiddler.fieldModules = $tw.modules.getModulesByTypeAsHashmap(\"tiddlerfield\");\n\t$tw.modules.applyMethods(\"tiddlermethod\",$tw.Tiddler.prototype);\n\t$tw.modules.applyMethods(\"wikimethod\",$tw.Wiki.prototype);\n\t$tw.modules.applyMethods(\"tiddlerdeserializer\",$tw.Wiki.tiddlerDeserializerModules);\n\t$tw.macros = $tw.modules.getModulesByTypeAsHashmap(\"macro\");\n\t$tw.wiki.initParsers();\n\t$tw.Commander.initCommands();\n};\n\n})();\n",
            "title": "$:/core/modules/startup/load-modules.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/password.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/password.js\ntype: application/javascript\nmodule-type: startup\n\nPassword handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"password\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t$tw.rootWidget.addEventListener(\"tm-set-password\",function(event) {\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: $tw.language.getString(\"Encryption/PromptSetPassword\"),\n\t\t\tnoUserName: true,\n\t\t\tsubmitText: $tw.language.getString(\"Encryption/SetPassword\"),\n\t\t\tcanCancel: true,\n\t\t\trepeatPassword: true,\n\t\t\tcallback: function(data) {\n\t\t\t\tif(data) {\n\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t}\n\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t}\n\t\t});\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-clear-password\",function(event) {\n\t\tif($tw.browser) {\n\t\t\tif(!confirm($tw.language.getString(\"Encryption/ConfirmClearPassword\"))) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t$tw.crypto.setPassword(null);\n\t});\n\t// Ensure that $:/isEncrypted is maintained properly\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,\"$:/isEncrypted\")) {\n\t\t\t$tw.crypto.updateCryptoStateTiddler();\n\t\t}\n\t});\n};\n\n})();\n",
            "title": "$:/core/modules/startup/password.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/render.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/render.js\ntype: application/javascript\nmodule-type: startup\n\nTitle, stylesheet and page rendering\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"render\";\nexports.platforms = [\"browser\"];\nexports.after = [\"story\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar PAGE_TITLE_TITLE = \"$:/core/wiki/title\";\nvar PAGE_STYLESHEET_TITLE = \"$:/core/ui/PageStylesheet\";\nvar PAGE_TEMPLATE_TITLE = \"$:/core/ui/PageTemplate\";\n\n// Time (in ms) that we defer refreshing changes to draft tiddlers\nvar DRAFT_TIDDLER_TIMEOUT_TITLE = \"$:/config/Drafts/TypingTimeout\";\nvar DRAFT_TIDDLER_TIMEOUT = 400;\n\nexports.startup = function() {\n\t// Set up the title\n\t$tw.titleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TITLE_TITLE,{document: $tw.fakeDocument, parseAsInline: true});\n\t$tw.titleContainer = $tw.fakeDocument.createElement(\"div\");\n\t$tw.titleWidgetNode.render($tw.titleContainer,null);\n\tdocument.title = $tw.titleContainer.textContent;\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.titleWidgetNode.refresh(changes,$tw.titleContainer,null)) {\n\t\t\tdocument.title = $tw.titleContainer.textContent;\n\t\t}\n\t});\n\t// Set up the styles\n\t$tw.styleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_STYLESHEET_TITLE,{document: $tw.fakeDocument});\n\t$tw.styleContainer = $tw.fakeDocument.createElement(\"style\");\n\t$tw.styleWidgetNode.render($tw.styleContainer,null);\n\t$tw.styleElement = document.createElement(\"style\");\n\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\tdocument.head.insertBefore($tw.styleElement,document.head.firstChild);\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"styleRefresh\",function(changes) {\n\t\tif($tw.styleWidgetNode.refresh(changes,$tw.styleContainer,null)) {\n\t\t\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\t\t}\n\t}));\n\t// Display the $:/core/ui/PageTemplate tiddler to kick off the display\n\t$tw.perf.report(\"mainRender\",function() {\n\t\t$tw.pageWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TEMPLATE_TITLE,{document: document, parentWidget: $tw.rootWidget});\n\t\t$tw.pageContainer = document.createElement(\"div\");\n\t\t$tw.utils.addClass($tw.pageContainer,\"tc-page-container-wrapper\");\n\t\tdocument.body.insertBefore($tw.pageContainer,document.body.firstChild);\n\t\t$tw.pageWidgetNode.render($tw.pageContainer,null);\n\t})();\n\t// Prepare refresh mechanism\n\tvar deferredChanges = Object.create(null),\n\t\ttimerId;\n\tfunction refresh() {\n\t\t// Process the refresh\n\t\t$tw.pageWidgetNode.refresh(deferredChanges);\n\t\tdeferredChanges = Object.create(null);\n\t}\n\t// Add the change event handler\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"mainRefresh\",function(changes) {\n\t\t// Check if only drafts have changed\n\t\tvar onlyDraftsHaveChanged = true;\n\t\tfor(var title in changes) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(!tiddler || !tiddler.hasField(\"draft.of\")) {\n\t\t\t\tonlyDraftsHaveChanged = false;\n\t\t\t}\n\t\t}\n\t\t// Defer the change if only drafts have changed\n\t\tif(timerId) {\n\t\t\tclearTimeout(timerId);\n\t\t}\n\t\ttimerId = null;\n\t\tif(onlyDraftsHaveChanged) {\n\t\t\tvar timeout = parseInt($tw.wiki.getTiddlerText(DRAFT_TIDDLER_TIMEOUT_TITLE,\"\"),10);\n\t\t\tif(isNaN(timeout)) {\n\t\t\t\ttimeout = DRAFT_TIDDLER_TIMEOUT;\n\t\t\t}\n\t\t\ttimerId = setTimeout(refresh,timeout);\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t} else {\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t\trefresh();\n\t\t}\n\t}));\n\t// Fix up the link between the root widget and the page container\n\t$tw.rootWidget.domNodes = [$tw.pageContainer];\n\t$tw.rootWidget.children = [$tw.pageWidgetNode];\n};\n\n})();\n",
            "title": "$:/core/modules/startup/render.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/rootwidget.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/rootwidget.js\ntype: application/javascript\nmodule-type: startup\n\nSetup the root widget and the core root widget handlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"rootwidget\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.before = [\"story\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Install the modal message mechanism\n\t$tw.modal = new $tw.utils.Modal($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-modal\",function(event) {\n\t\t$tw.modal.display(event.param,{variables: event.paramObject});\n\t});\n\t// Install the notification  mechanism\n\t$tw.notifier = new $tw.utils.Notifier($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-notify\",function(event) {\n\t\t$tw.notifier.display(event.param,{variables: event.paramObject});\n\t});\n\t// Install the scroller\n\t$tw.pageScroller = new $tw.utils.PageScroller();\n\t$tw.rootWidget.addEventListener(\"tm-scroll\",function(event) {\n\t\t$tw.pageScroller.handleEvent(event);\n\t});\n\tvar fullscreen = $tw.utils.getFullScreenApis();\n\tif(fullscreen) {\n\t\t$tw.rootWidget.addEventListener(\"tm-full-screen\",function(event) {\n\t\t\tif(document[fullscreen._fullscreenElement]) {\n\t\t\t\tdocument[fullscreen._exitFullscreen]();\n\t\t\t} else {\n\t\t\t\tdocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t}\n\t\t});\n\t}\n\t// If we're being viewed on a data: URI then give instructions for how to save\n\tif(document.location.protocol === \"data:\") {\n\t\t$tw.rootWidget.dispatchEvent({\n\t\t\ttype: \"tm-modal\",\n\t\t\tparam: \"$:/language/Modals/SaveInstructions\"\n\t\t});\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/startup/rootwidget.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup.js\ntype: application/javascript\nmodule-type: startup\n\nMiscellaneous startup logic for both the client and server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"startup\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\n// Set to `true` to enable performance instrumentation\nvar PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE = \"$:/config/Performance/Instrumentation\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.startup = function() {\n\tvar modules,n,m,f;\n\t// Minimal browser detection\n\tif($tw.browser) {\n\t\t$tw.browser.isIE = (/msie|trident/i.test(navigator.userAgent));\n\t\t$tw.browser.isFirefox = !!document.mozFullScreenEnabled;\n\t}\n\t// Platform detection\n\t$tw.platform = {};\n\tif($tw.browser) {\n\t\t$tw.platform.isMac = /Mac/.test(navigator.platform);\n\t\t$tw.platform.isWindows = /win/i.test(navigator.platform);\n\t\t$tw.platform.isLinux = /Linux/i.test(navigator.appVersion);\n\t} else {\n\t\tswitch(require(\"os\").platform()) {\n\t\t\tcase \"darwin\":\n\t\t\t\t$tw.platform.isMac = true;\n\t\t\t\tbreak;\n\t\t\tcase \"win32\":\n\t\t\t\t$tw.platform.isWindows = true;\n\t\t\t\tbreak;\n\t\t\tcase \"freebsd\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t\tcase \"linux\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\t// Initialise version\n\t$tw.version = $tw.utils.extractVersionInfo();\n\t// Set up the performance framework\n\t$tw.perf = new $tw.Performance($tw.wiki.getTiddlerText(PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE,\"no\") === \"yes\");\n\t// Kick off the language manager and switcher\n\t$tw.language = new $tw.Language();\n\t$tw.languageSwitcher = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"language\",\n\t\tcontrollerTitle: \"$:/language\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/languages/en-US\"\n\t\t],\n\t\tonSwitch: function(plugins) {\n\t\t\tif($tw.browser) {\n\t\t\t\tvar pluginTiddler = $tw.wiki.getTiddler(plugins[0]);\n\t\t\t\tif(pluginTiddler) {\n\t\t\t\t\tdocument.documentElement.setAttribute(\"dir\",pluginTiddler.getFieldString(\"text-direction\") || \"auto\");\n\t\t\t\t} else {\n\t\t\t\t\tdocument.documentElement.removeAttribute(\"dir\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Kick off the theme manager\n\t$tw.themeManager = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"theme\",\n\t\tcontrollerTitle: \"$:/theme\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/themes/tiddlywiki/snowwhite\",\n\t\t\t\"$:/themes/tiddlywiki/vanilla\"\n\t\t]\n\t});\n\t// Kick off the keyboard manager\n\t$tw.keyboardManager = new $tw.KeyboardManager();\n\t// Clear outstanding tiddler store change events to avoid an unnecessary refresh cycle at startup\n\t$tw.wiki.clearTiddlerEventQueue();\n\t// Create a root widget for attaching event handlers. By using it as the parentWidget for another widget tree, one can reuse the event handlers\n\tif($tw.browser) {\n\t\t$tw.rootWidget = new widget.widget({\n\t\t\ttype: \"widget\",\n\t\t\tchildren: []\n\t\t},{\n\t\t\twiki: $tw.wiki,\n\t\t\tdocument: document\n\t\t});\n\t}\n\t// Find a working syncadaptor\n\t$tw.syncadaptor = undefined;\n\t$tw.modules.forEachModuleOfType(\"syncadaptor\",function(title,module) {\n\t\tif(!$tw.syncadaptor && module.adaptorClass) {\n\t\t\t$tw.syncadaptor = new module.adaptorClass({wiki: $tw.wiki});\n\t\t}\n\t});\n\t// Set up the syncer object if we've got a syncadaptor\n\tif($tw.syncadaptor) {\n\t\t$tw.syncer = new $tw.Syncer({wiki: $tw.wiki, syncadaptor: $tw.syncadaptor});\n\t} \n\t// Setup the saver handler\n\t$tw.saverHandler = new $tw.SaverHandler({wiki: $tw.wiki, dirtyTracking: !$tw.syncadaptor});\n\t// Host-specific startup\n\tif($tw.browser) {\n\t\t// Install the popup manager\n\t\t$tw.popup = new $tw.utils.Popup();\n\t\t// Install the animator\n\t\t$tw.anim = new $tw.utils.Animator();\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/startup.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/story.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/story.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"story\";\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar DEFAULT_STORY_TITLE = \"$:/StoryList\";\nvar DEFAULT_HISTORY_TITLE = \"$:/HistoryList\";\n\n// Default tiddlers\nvar DEFAULT_TIDDLERS_TITLE = \"$:/DefaultTiddlers\";\n\n// Config\nvar CONFIG_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/UpdateAddressBar\"; // Can be \"no\", \"permalink\", \"permaview\"\nvar CONFIG_UPDATE_HISTORY = \"$:/config/Navigation/UpdateHistory\"; // Can be \"yes\" or \"no\"\n\nexports.startup = function() {\n\t// Open startup tiddlers\n\topenStartupTiddlers();\n\tif($tw.browser) {\n\t\t// Set up location hash update\n\t\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\t\tif($tw.utils.hop(changes,DEFAULT_STORY_TITLE) || $tw.utils.hop(changes,DEFAULT_HISTORY_TITLE)) {\n\t\t\t\tupdateLocationHash({\n\t\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_UPDATE_ADDRESS_BAR,\"permaview\").trim(),\n\t\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim()\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\t// Listen for changes to the browser location hash\n\t\twindow.addEventListener(\"hashchange\",function() {\n\t\t\tvar hash = $tw.utils.getLocationHash();\n\t\t\tif(hash !== $tw.locationHash) {\n\t\t\t\t$tw.locationHash = hash;\n\t\t\t\topenStartupTiddlers({defaultToCurrentStory: true});\n\t\t\t}\n\t\t},false);\n\t\t// Listen for the tm-browser-refresh message\n\t\t$tw.rootWidget.addEventListener(\"tm-browser-refresh\",function(event) {\n\t\t\twindow.location.reload(true);\n\t\t});\n\t\t// Listen for the tm-print message\n\t\t$tw.rootWidget.addEventListener(\"tm-print\",function(event) {\n\t\t\t(event.event.view || window).print();\n\t\t});\n\t\t// Listen for the tm-home message\n\t\t$tw.rootWidget.addEventListener(\"tm-home\",function(event) {\n\t\t\twindow.location.hash = \"\";\n\t\t\tvar storyFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE),\n\t\t\t\tstoryList = $tw.wiki.filterTiddlers(storyFilter);\n\t\t\t//invoke any hooks that might change the default story list\n\t\t\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t\t\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t\t\tif(storyList[0]) {\n\t\t\t\t$tw.wiki.addToHistory(storyList[0]);\t\t\t\t\n\t\t\t}\n\t\t});\n\t\t// Listen for the tm-permalink message\n\t\t$tw.rootWidget.addEventListener(\"tm-permalink\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: \"permalink\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle\n\t\t\t});\n\t\t});\n\t\t// Listen for the tm-permaview message\n\t\t$tw.rootWidget.addEventListener(\"tm-permaview\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: \"permaview\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle\n\t\t\t});\n\t\t});\n\t}\n};\n\n/*\nProcess the location hash to open the specified tiddlers. Options:\ndefaultToCurrentStory: If true, the current story is retained as the default, instead of opening the default tiddlers\n*/\nfunction openStartupTiddlers(options) {\n\toptions = options || {};\n\t// Work out the target tiddler and the story filter. \"null\" means \"unspecified\"\n\tvar target = null,\n\t\tstoryFilter = null;\n\tif($tw.locationHash.length > 1) {\n\t\tvar hash = $tw.locationHash.substr(1),\n\t\t\tsplit = hash.indexOf(\":\");\n\t\tif(split === -1) {\n\t\t\ttarget = decodeURIComponent(hash.trim());\n\t\t} else {\n\t\t\ttarget = decodeURIComponent(hash.substr(0,split).trim());\n\t\t\tstoryFilter = decodeURIComponent(hash.substr(split + 1).trim());\n\t\t}\n\t}\n\t// If the story wasn't specified use the current tiddlers or a blank story\n\tif(storyFilter === null) {\n\t\tif(options.defaultToCurrentStory) {\n\t\t\tvar currStoryList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE);\n\t\t\tstoryFilter = $tw.utils.stringifyList(currStoryList);\n\t\t} else {\n\t\t\tif(target && target !== \"\") {\n\t\t\t\tstoryFilter = \"\";\n\t\t\t} else {\n\t\t\t\tstoryFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE);\n\t\t\t}\n\t\t}\n\t}\n\t// Process the story filter to get the story list\n\tvar storyList = $tw.wiki.filterTiddlers(storyFilter);\n\t// Invoke any hooks that want to change the default story list\n\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t// If the target tiddler isn't included then splice it in at the top\n\tif(target && storyList.indexOf(target) === -1) {\n\t\tstoryList.unshift(target);\n\t}\n\t// Save the story list\n\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t// If a target tiddler was specified add it to the history stack\n\tif(target && target !== \"\") {\n\t\t// The target tiddler doesn't need double square brackets, but we'll silently remove them if they're present\n\t\tif(target.indexOf(\"[[\") === 0 && target.substr(-2) === \"]]\") {\n\t\t\ttarget = target.substr(2,target.length - 4);\n\t\t}\n\t\t$tw.wiki.addToHistory(target);\n\t} else if(storyList.length > 0) {\n\t\t$tw.wiki.addToHistory(storyList[0]);\n\t}\n}\n\n/*\noptions: See below\noptions.updateAddressBar: \"permalink\", \"permaview\" or \"no\" (defaults to \"permaview\")\noptions.updateHistory: \"yes\" or \"no\" (defaults to \"no\")\noptions.targetTiddler: optional title of target tiddler for permalink\n*/\nfunction updateLocationHash(options) {\n\tif(options.updateAddressBar !== \"no\") {\n\t\t// Get the story and the history stack\n\t\tvar storyList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE),\n\t\t\thistoryList = $tw.wiki.getTiddlerData(DEFAULT_HISTORY_TITLE,[]),\n\t\t\ttargetTiddler = \"\";\n\t\tif(options.targetTiddler) {\n\t\t\ttargetTiddler = options.targetTiddler;\n\t\t} else {\n\t\t\t// The target tiddler is the one at the top of the stack\n\t\t\tif(historyList.length > 0) {\n\t\t\t\ttargetTiddler = historyList[historyList.length-1].title;\n\t\t\t}\n\t\t\t// Blank the target tiddler if it isn't present in the story\n\t\t\tif(storyList.indexOf(targetTiddler) === -1) {\n\t\t\t\ttargetTiddler = \"\";\n\t\t\t}\n\t\t}\n\t\t// Assemble the location hash\n\t\tif(options.updateAddressBar === \"permalink\") {\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler);\n\t\t} else {\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList));\n\t\t}\n\t\t// Only change the location hash if we must, thus avoiding unnecessary onhashchange events\n\t\tif($tw.utils.getLocationHash() !== $tw.locationHash) {\n\t\t\tif(options.updateHistory === \"yes\") {\n\t\t\t\t// Assign the location hash so that history is updated\n\t\t\t\twindow.location.hash = $tw.locationHash;\n\t\t\t} else {\n\t\t\t\t// We use replace so that browser history isn't affected\n\t\t\t\twindow.location.replace(window.location.toString().split(\"#\")[0] + $tw.locationHash);\n\t\t\t}\n\t\t}\n\t}\n}\n\n})();\n",
            "title": "$:/core/modules/startup/story.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/windows.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/windows.js\ntype: application/javascript\nmodule-type: startup\n\nSetup root widget handlers for the messages concerned with opening external browser windows\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"windows\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Global to keep track of open windows (hashmap by title)\nvar windows = {};\n\nexports.startup = function() {\n\t// Handle open window message\n\t$tw.rootWidget.addEventListener(\"tm-open-window\",function(event) {\n\t\t// Get the parameters\n\t\tvar refreshHandler,\n\t\t\ttitle = event.param || event.tiddlerTitle,\n\t\t\tparamObject = event.paramObject || {},\n\t\t\ttemplate = paramObject.template || \"$:/core/templates/single.tiddler.window\",\n\t\t\twidth = paramObject.width || \"700\",\n\t\t\theight = paramObject.height || \"600\",\n\t\t\tvariables = $tw.utils.extend({},paramObject,{currentTiddler: title});\n\t\t// Open the window\n\t\tvar srcWindow = window.open(\"\",\"external-\" + title,\"scrollbars,width=\" + width + \",height=\" + height),\n\t\t\tsrcDocument = srcWindow.document;\n\t\twindows[title] = srcWindow;\n\t\t// Check for reopening the same window\n\t\tif(srcWindow.haveInitialisedWindow) {\n\t\t\treturn;\n\t\t}\n\t\t// Initialise the document\n\t\tsrcDocument.write(\"<html><head></head><body class='tc-body tc-single-tiddler-window'></body></html>\");\n\t\tsrcDocument.close();\n\t\tsrcDocument.title = title;\n\t\tsrcWindow.addEventListener(\"beforeunload\",function(event) {\n\t\t\tdelete windows[title];\n\t\t\t$tw.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t},false);\n\t\t// Set up the styles\n\t\tvar styleWidgetNode = $tw.wiki.makeTranscludeWidget(\"$:/core/ui/PageStylesheet\",{\n\t\t\t\tdocument: $tw.fakeDocument,\n\t\t\t\tvariables: variables,\n\t\t\t\timportPageMacros: true}),\n\t\t\tstyleContainer = $tw.fakeDocument.createElement(\"style\");\n\t\tstyleWidgetNode.render(styleContainer,null);\n\t\tvar styleElement = srcDocument.createElement(\"style\");\n\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\tsrcDocument.head.insertBefore(styleElement,srcDocument.head.firstChild);\n\t\t// Render the text of the tiddler\n\t\tvar parser = $tw.wiki.parseTiddler(template),\n\t\t\twidgetNode = $tw.wiki.makeWidget(parser,{document: srcDocument, parentWidget: $tw.rootWidget, variables: variables});\n\t\twidgetNode.render(srcDocument.body,srcDocument.body.firstChild);\n\t\t// Function to handle refreshes\n\t\trefreshHandler = function(changes) {\n\t\t\tif(styleWidgetNode.refresh(changes,styleContainer,null)) {\n\t\t\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\t\t}\n\t\t\twidgetNode.refresh(changes);\n\t\t};\n\t\t$tw.wiki.addEventListener(\"change\",refreshHandler);\n\t\tsrcWindow.haveInitialisedWindow = true;\n\t});\n\t// Close open windows when unloading main window\n\t$tw.addUnloadTask(function() {\n\t\t$tw.utils.each(windows,function(win) {\n\t\t\twin.close();\n\t\t});\n\t});\n\n};\n\n})();\n",
            "title": "$:/core/modules/startup/windows.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/story.js": {
            "text": "/*\\\ntitle: $:/core/modules/story.js\ntype: application/javascript\nmodule-type: global\n\nLightweight object for managing interactions with the story and history lists.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nConstruct Story object with options:\nwiki: reference to wiki object to use to resolve tiddler titles\nstoryTitle: title of story list tiddler\nhistoryTitle: title of history list tiddler\n*/\nfunction Story(options) {\n\toptions = options || {};\n\tthis.wiki = options.wiki || $tw.wiki;\n\tthis.storyTitle = options.storyTitle || \"$:/StoryList\";\n\tthis.historyTitle = options.historyTitle || \"$:/HistoryList\";\n};\n\nStory.prototype.navigateTiddler = function(navigateTo,navigateFromTitle,navigateFromClientRect) {\n\tthis.addToStory(navigateTo,navigateFromTitle);\n\tthis.addToHistory(navigateTo,navigateFromClientRect);\n};\n\nStory.prototype.getStoryList = function() {\n\treturn this.wiki.getTiddlerList(this.storyTitle) || [];\n};\n\nStory.prototype.addToStory = function(navigateTo,navigateFromTitle,options) {\n\toptions = options || {};\n\tvar storyList = this.getStoryList();\n\t// See if the tiddler is already there\n\tvar slot = storyList.indexOf(navigateTo);\n\t// Quit if it already exists in the story river\n\tif(slot >= 0) {\n\t\treturn;\n\t}\n\t// First we try to find the position of the story element we navigated from\n\tvar fromIndex = storyList.indexOf(navigateFromTitle);\n\tif(fromIndex >= 0) {\n\t\t// The tiddler is added from inside the river\n\t\t// Determine where to insert the tiddler; Fallback is \"below\"\n\t\tswitch(options.openLinkFromInsideRiver) {\n\t\t\tcase \"top\":\n\t\t\t\tslot = 0;\n\t\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tslot = storyList.length;\n\t\t\t\tbreak;\n\t\t\tcase \"above\":\n\t\t\t\tslot = fromIndex;\n\t\t\t\tbreak;\n\t\t\tcase \"below\": // Intentional fall-through\n\t\t\tdefault:\n\t\t\t\tslot = fromIndex + 1;\n\t\t\t\tbreak;\n\t\t}\n\t} else {\n\t\t// The tiddler is opened from outside the river. Determine where to insert the tiddler; default is \"top\"\n\t\tif(options.openLinkFromOutsideRiver === \"bottom\") {\n\t\t\t// Insert at bottom\n\t\t\tslot = storyList.length;\n\t\t} else {\n\t\t\t// Insert at top\n\t\t\tslot = 0;\n\t\t}\n\t}\n\t// Add the tiddler\n\tstoryList.splice(slot,0,navigateTo);\n\t// Save the story\n\tthis.saveStoryList(storyList);\n};\n\nStory.prototype.saveStoryList = function(storyList) {\n\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\t{title: this.storyTitle},\n\t\tstoryTiddler,\n\t\t{list: storyList},\n\t\tthis.wiki.getModificationFields()\n\t));\n};\n\nStory.prototype.addToHistory = function(navigateTo,navigateFromClientRect) {\n\tvar titles = $tw.utils.isArray(navigateTo) ? navigateTo : [navigateTo];\n\t// Add a new record to the top of the history stack\n\tvar historyList = this.wiki.getTiddlerData(this.historyTitle,[]);\n\t$tw.utils.each(titles,function(title) {\n\t\thistoryList.push({title: title, fromPageRect: navigateFromClientRect});\n\t});\n\tthis.wiki.setTiddlerData(this.historyTitle,historyList,{\"current-tiddler\": titles[titles.length-1]});\n};\n\nStory.prototype.storyCloseTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCloseAllTiddlers = function() {\n// TBD\n};\n\nStory.prototype.storyCloseOtherTiddlers = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyEditTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyDeleteTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storySaveTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCancelTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyNewTiddler = function(targetTitle) {\n// TBD\n};\n\nexports.Story = Story;\n\n\n})();\n",
            "title": "$:/core/modules/story.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/storyviews/classic.js": {
            "text": "/*\\\ntitle: $:/core/modules/storyviews/classic.js\ntype: application/javascript\nmodule-type: storyview\n\nViews the story as a linear sequence\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ClassicStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nClassicStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Scroll the node into view\n\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\n};\n\nClassicStoryView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Get the current height of the tiddler\n\tvar computedStyle = window.getComputedStyle(targetElement),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t// Reset the margin once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"}\n\t\t]);\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t// Transition to the final position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n};\n\nClassicStoryView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\twidget.removeChildDomNodes();\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Get the current height of the tiddler\n\tvar currWidth = targetElement.offsetWidth,\n\t\tcomputedStyle = window.getComputedStyle(targetElement),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t// Remove the dom nodes of the widget at the end of the transition\n\tsetTimeout(removeElement,duration);\n\t// Animate the closure\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"translateX(0px)\"},\n\t\t{marginBottom:  currMarginBottom + \"px\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t{transform: \"translateX(-\" + currWidth + \"px)\"},\n\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n};\n\nexports.classic = ClassicStoryView;\n\n})();",
            "title": "$:/core/modules/storyviews/classic.js",
            "type": "application/javascript",
            "module-type": "storyview"
        },
        "$:/core/modules/storyviews/pop.js": {
            "text": "/*\\\ntitle: $:/core/modules/storyviews/pop.js\ntype: application/javascript\nmodule-type: storyview\n\nAnimates list insertions and removals\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar PopStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nPopStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Scroll the node into view\n\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\n};\n\nPopStoryView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Reset once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"none\"}\n\t\t]);\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(2)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t// Transition to the final position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n};\n\nPopStoryView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\tif(targetElement.parentNode) {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t}\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Remove the element at the end of the transition\n\tsetTimeout(removeElement,duration);\n\t// Animate the closure\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(0.1)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n};\n\nexports.pop = PopStoryView;\n\n})();\n",
            "title": "$:/core/modules/storyviews/pop.js",
            "type": "application/javascript",
            "module-type": "storyview"
        },
        "$:/core/modules/storyviews/zoomin.js": {
            "text": "/*\\\ntitle: $:/core/modules/storyviews/zoomin.js\ntype: application/javascript\nmodule-type: storyview\n\nZooms between individual tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ZoominListView = function(listWidget) {\n\tvar self = this;\n\tthis.listWidget = listWidget;\n\t// Get the index of the tiddler that is at the top of the history\n\tvar history = this.listWidget.wiki.getTiddlerDataCached(this.listWidget.historyTitle,[]),\n\t\ttargetTiddler;\n\tif(history.length > 0) {\n\t\ttargetTiddler = history[history.length-1].title;\n\t}\n\t// Make all the tiddlers position absolute, and hide all but the top (or first) one\n\t$tw.utils.each(this.listWidget.children,function(itemWidget,index) {\n\t\tvar domNode = itemWidget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(domNode instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\tif((targetTiddler && targetTiddler !== itemWidget.parseTreeNode.itemTitle) || (!targetTiddler && index)) {\n\t\t\tdomNode.style.display = \"none\";\n\t\t} else {\n\t\t\tself.currentTiddlerDomNode = domNode;\n\t\t}\n\t\t$tw.utils.addClass(domNode,\"tc-storyview-zoomin-tiddler\");\n\t});\n};\n\nZoominListView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration(),\n\t\tlistElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the new tiddler be position absolute and visible so that we can measure it\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"0 0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t// Get the position of the source node, or use the centre of the window as the source position\n\tvar sourceBounds = historyInfo.fromPageRect || {\n\t\t\tleft: window.innerWidth/2 - 2,\n\t\t\ttop: window.innerHeight/2 - 2,\n\t\t\twidth: window.innerWidth/8,\n\t\t\theight: window.innerHeight/8\n\t\t};\n\t// Try to find the title node in the target tiddler\n\tvar titleDomNode = findTitleDomNode(listItemWidget) || listItemWidget.findFirstDomNode(),\n\t\tzoomBounds = titleDomNode.getBoundingClientRect();\n\t// Compute the transform for the target tiddler to make the title lie over the source rectange\n\tvar targetBounds = targetElement.getBoundingClientRect(),\n\t\tscale = sourceBounds.width / zoomBounds.width,\n\t\tx = sourceBounds.left - targetBounds.left - (zoomBounds.left - targetBounds.left) * scale,\n\t\ty = sourceBounds.top - targetBounds.top - (zoomBounds.top - targetBounds.top) * scale;\n\t// Transform the target tiddler to its starting position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(targetElement);\n\t// Apply the ending transitions with a timeout to ensure that the previously applied transformations are applied first\n\tvar self = this,\n\t\tprevCurrentTiddler = this.currentTiddlerDomNode;\n\tthis.currentTiddlerDomNode = targetElement;\n\t// Transform the target tiddler to its natural size\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{zIndex: \"500\"},\n\t]);\n\t// Transform the previous tiddler out of the way and then hide it\n\tif(prevCurrentTiddler && prevCurrentTiddler !== targetElement) {\n\t\tscale = zoomBounds.width / sourceBounds.width;\n\t\tx =  zoomBounds.left - targetBounds.left - (sourceBounds.left - targetBounds.left) * scale;\n\t\ty =  zoomBounds.top - targetBounds.top - (sourceBounds.top - targetBounds.top) * scale;\n\t\t$tw.utils.setStyle(prevCurrentTiddler,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transformOrigin: \"0 0\"},\n\t\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"},\n\t\t\t{zIndex: \"0\"}\n\t\t]);\n\t\t// Hide the tiddler when the transition has finished\n\t\tsetTimeout(function() {\n\t\t\tif(self.currentTiddlerDomNode !== prevCurrentTiddler) {\n\t\t\t\tprevCurrentTiddler.style.display = \"none\";\n\t\t\t}\n\t\t},duration);\n\t}\n\t// Scroll the target into view\n//\t$tw.pageScroller.scrollIntoView(targetElement);\n};\n\n/*\nFind the first child DOM node of a widget that has the class \"tc-title\"\n*/\nfunction findTitleDomNode(widget,targetClass) {\n\ttargetClass = targetClass || \"tc-title\";\n\tvar domNode = widget.findFirstDomNode();\n\tif(domNode && domNode.querySelector) {\n\t\treturn domNode.querySelector(\".\" + targetClass);\n\t}\n\treturn null;\n}\n\nZoominListView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the newly inserted node position absolute and hidden\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"none\"}\n\t]);\n};\n\nZoominListView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\twidget.removeChildDomNodes();\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Abandon if hidden\n\tif(targetElement.style.display != \"block\" ) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Set up the tiddler that is being closed\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\t// We'll move back to the previous or next element in the story\n\tvar toWidget = widget.previousSibling();\n\tif(!toWidget) {\n\t\ttoWidget = widget.nextSibling();\n\t}\n\tvar toWidgetDomNode = toWidget && toWidget.findFirstDomNode();\n\t// Set up the tiddler we're moving back in\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.addClass(toWidgetDomNode,\"tc-storyview-zoomin-tiddler\");\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{display: \"block\"},\n\t\t\t{transformOrigin: \"50% 50%\"},\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(10)\"},\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0\"},\n\t\t\t{zIndex: \"500\"}\n\t\t]);\n\t\tthis.currentTiddlerDomNode = toWidgetDomNode;\n\t}\n\t// Animate them both\n\t// Force layout\n\t$tw.utils.forceLayout(this.listWidget.parentDomNode);\n\t// First, the tiddler we're closing\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(0.1)\"},\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"0\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\tsetTimeout(removeElement,duration);\n\t// Now the tiddler we're going back to\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t\t{opacity: \"1\"}\n\t\t]);\n\t}\n\treturn true; // Indicate that we'll delete the DOM node\n};\n\nexports.zoomin = ZoominListView;\n\n})();\n",
            "title": "$:/core/modules/storyviews/zoomin.js",
            "type": "application/javascript",
            "module-type": "storyview"
        },
        "$:/core/modules/syncer.js": {
            "text": "/*\\\ntitle: $:/core/modules/syncer.js\ntype: application/javascript\nmodule-type: global\n\nThe syncer tracks changes to the store. If a syncadaptor is used then individual tiddlers are synchronised through it. If there is no syncadaptor then the entire wiki is saved via saver modules.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDefaults\n*/\nSyncer.prototype.titleIsLoggedIn = \"$:/status/IsLoggedIn\";\nSyncer.prototype.titleUserName = \"$:/status/UserName\";\nSyncer.prototype.titleSyncFilter = \"$:/config/SyncFilter\";\nSyncer.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\nSyncer.prototype.taskTimerInterval = 1 * 1000; // Interval for sync timer\nSyncer.prototype.throttleInterval = 1 * 1000; // Defer saving tiddlers if they've changed in the last 1s...\nSyncer.prototype.fallbackInterval = 10 * 1000; // Unless the task is older than 10s\nSyncer.prototype.pollTimerInterval = 60 * 1000; // Interval for polling for changes from the adaptor\n\n/*\nInstantiate the syncer with the following options:\nsyncadaptor: reference to syncadaptor to be used\nwiki: wiki to be synced\n*/\nfunction Syncer(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\tthis.syncadaptor = options.syncadaptor;\n\tthis.titleIsLoggedIn = options.titleIsLoggedIn || this.titleIsLoggedIn;\n\tthis.titleUserName = options.titleUserName || this.titleUserName;\n\tthis.titleSyncFilter = options.titleSyncFilter || this.titleSyncFilter;\n\tthis.titleSavedNotification = options.titleSavedNotification || this.titleSavedNotification;\n\tthis.taskTimerInterval = options.taskTimerInterval || this.taskTimerInterval;\n\tthis.throttleInterval = options.throttleInterval || this.throttleInterval;\n\tthis.fallbackInterval = options.fallbackInterval || this.fallbackInterval;\n\tthis.pollTimerInterval = options.pollTimerInterval || this.pollTimerInterval;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\")  + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\"));\n\t// Compile the dirty tiddler filter\n\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t// Record information for known tiddlers\n\tthis.readTiddlerInfo();\n\t// Tasks are {type: \"load\"/\"save\"/\"delete\", title:, queueTime:, lastModificationTime:}\n\tthis.taskQueue = {}; // Hashmap of tasks yet to be performed\n\tthis.taskInProgress = {}; // Hash of tasks in progress\n\tthis.taskTimerId = null; // Timer for task dispatch\n\tthis.pollTimerId = null; // Timer for polling server\n\t// Listen out for changes to tiddlers\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\tself.syncToServer(changes);\n\t});\n\t// Browser event handlers\n\tif($tw.browser) {\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t\t// Listen out for login/logout/refresh events in the browser\n\t\t$tw.rootWidget.addEventListener(\"tm-login\",function() {\n\t\t\tself.handleLoginEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-logout\",function() {\n\t\t\tself.handleLogoutEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-server-refresh\",function() {\n\t\t\tself.handleRefreshEvent();\n\t\t});\n\t}\n\t// Listen out for lazyLoad events\n\tthis.wiki.addEventListener(\"lazyLoad\",function(title) {\n\t\tself.handleLazyLoadEvent(title);\n\t});\n\t// Get the login status\n\tthis.getStatus(function(err,isLoggedIn) {\n\t\t// Do a sync from the server\n\t\tself.syncFromServer();\n\t});\n}\n\n/*\nRead (or re-read) the latest tiddler info from the store\n*/\nSyncer.prototype.readTiddlerInfo = function() {\n\t// Hashmap by title of {revision:,changeCount:,adaptorInfo:}\n\tthis.tiddlerInfo = {};\n\t// Record information for known tiddlers\n\tvar self = this,\n\t\ttiddlers = this.filterFn.call(this.wiki);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\tself.tiddlerInfo[title] = {\n\t\t\trevision: tiddler.fields.revision,\n\t\t\tadaptorInfo: self.syncadaptor && self.syncadaptor.getTiddlerInfo(tiddler),\n\t\t\tchangeCount: self.wiki.getChangeCount(title),\n\t\t\thasBeenLazyLoaded: false\n\t\t};\n\t});\n};\n\n/*\nCreate an tiddlerInfo structure if it doesn't already exist\n*/\nSyncer.prototype.createTiddlerInfo = function(title) {\n\tif(!$tw.utils.hop(this.tiddlerInfo,title)) {\n\t\tthis.tiddlerInfo[title] = {\n\t\t\trevision: null,\n\t\t\tadaptorInfo: {},\n\t\t\tchangeCount: -1,\n\t\t\thasBeenLazyLoaded: false\n\t\t};\n\t}\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSyncer.prototype.isDirty = function() {\n\treturn (this.numTasksInQueue() > 0) || (this.numTasksInProgress() > 0);\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSyncer.prototype.updateDirtyStatus = function() {\n\tif($tw.browser) {\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",this.isDirty());\n\t}\n};\n\n/*\nSave an incoming tiddler in the store, and updates the associated tiddlerInfo\n*/\nSyncer.prototype.storeTiddler = function(tiddlerFields,hasBeenLazyLoaded) {\n\t// Save the tiddler\n\tvar tiddler = new $tw.Tiddler(this.wiki.getTiddler(tiddlerFields.title),tiddlerFields);\n\tthis.wiki.addTiddler(tiddler);\n\t// Save the tiddler revision and changeCount details\n\tthis.tiddlerInfo[tiddlerFields.title] = {\n\t\trevision: tiddlerFields.revision,\n\t\tadaptorInfo: this.syncadaptor.getTiddlerInfo(tiddler),\n\t\tchangeCount: this.wiki.getChangeCount(tiddlerFields.title),\n\t\thasBeenLazyLoaded: hasBeenLazyLoaded !== undefined ? hasBeenLazyLoaded : true\n\t};\n};\n\nSyncer.prototype.getStatus = function(callback) {\n\tvar self = this;\n\t// Check if the adaptor supports getStatus()\n\tif(this.syncadaptor && this.syncadaptor.getStatus) {\n\t\t// Mark us as not logged in\n\t\tthis.wiki.addTiddler({title: this.titleIsLoggedIn,text: \"no\"});\n\t\t// Get login status\n\t\tthis.syncadaptor.getStatus(function(err,isLoggedIn,username) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Set the various status tiddlers\n\t\t\tself.wiki.addTiddler({title: self.titleIsLoggedIn,text: isLoggedIn ? \"yes\" : \"no\"});\n\t\t\tif(isLoggedIn) {\n\t\t\t\tself.wiki.addTiddler({title: self.titleUserName,text: username || \"\"});\n\t\t\t} else {\n\t\t\t\tself.wiki.deleteTiddler(self.titleUserName);\n\t\t\t}\n\t\t\t// Invoke the callback\n\t\t\tif(callback) {\n\t\t\t\tcallback(err,isLoggedIn,username);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tcallback(null,true,\"UNAUTHENTICATED\");\n\t}\n};\n\n/*\nSynchronise from the server by reading the skinny tiddler list and queuing up loads for any tiddlers that we don't already have up to date\n*/\nSyncer.prototype.syncFromServer = function() {\n\tif(this.syncadaptor && this.syncadaptor.getSkinnyTiddlers) {\n\t\tthis.logger.log(\"Retrieving skinny tiddler list\");\n\t\tvar self = this;\n\t\tif(this.pollTimerId) {\n\t\t\tclearTimeout(this.pollTimerId);\n\t\t\tthis.pollTimerId = null;\n\t\t}\n\t\tthis.syncadaptor.getSkinnyTiddlers(function(err,tiddlers) {\n\t\t\t// Trigger the next sync\n\t\t\tself.pollTimerId = setTimeout(function() {\n\t\t\t\tself.pollTimerId = null;\n\t\t\t\tself.syncFromServer.call(self);\n\t\t\t},self.pollTimerInterval);\n\t\t\t// Check for errors\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert($tw.language.getString(\"Error/RetrievingSkinny\") + \":\",err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Process each incoming tiddler\n\t\t\tfor(var t=0; t<tiddlers.length; t++) {\n\t\t\t\t// Get the incoming tiddler fields, and the existing tiddler\n\t\t\t\tvar tiddlerFields = tiddlers[t],\n\t\t\t\t\tincomingRevision = tiddlerFields.revision + \"\",\n\t\t\t\t\ttiddler = self.wiki.getTiddler(tiddlerFields.title),\n\t\t\t\t\ttiddlerInfo = self.tiddlerInfo[tiddlerFields.title],\n\t\t\t\t\tcurrRevision = tiddlerInfo ? tiddlerInfo.revision : null;\n\t\t\t\t// Ignore the incoming tiddler if it's the same as the revision we've already got\n\t\t\t\tif(currRevision !== incomingRevision) {\n\t\t\t\t\t// Do a full load if we've already got a fat version of the tiddler\n\t\t\t\t\tif(tiddler && tiddler.fields.text !== undefined) {\n\t\t\t\t\t\t// Do a full load of this tiddler\n\t\t\t\t\t\tself.enqueueSyncTask({\n\t\t\t\t\t\t\ttype: \"load\",\n\t\t\t\t\t\t\ttitle: tiddlerFields.title\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Load the skinny version of the tiddler\n\t\t\t\t\t\tself.storeTiddler(tiddlerFields,false);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nSynchronise a set of changes to the server\n*/\nSyncer.prototype.syncToServer = function(changes) {\n\tvar self = this,\n\t\tnow = Date.now(),\n\t\tfilteredChanges = this.filterFn.call(this.wiki,function(callback) {\n\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\tcallback(tiddler,title);\n\t\t\t});\n\t\t});\n\t$tw.utils.each(changes,function(change,title,object) {\n\t\t// Process the change if it is a deletion of a tiddler we're already syncing, or is on the filtered change list\n\t\tif((change.deleted && $tw.utils.hop(self.tiddlerInfo,title)) || filteredChanges.indexOf(title) !== -1) {\n\t\t\t// Queue a task to sync this tiddler\n\t\t\tself.enqueueSyncTask({\n\t\t\t\ttype: change.deleted ? \"delete\" : \"save\",\n\t\t\t\ttitle: title\n\t\t\t});\n\t\t}\n\t});\n};\n\n/*\nLazily load a skinny tiddler if we can\n*/\nSyncer.prototype.handleLazyLoadEvent = function(title) {\n\t// Don't lazy load the same tiddler twice\n\tvar info = this.tiddlerInfo[title];\n\tif(!info || !info.hasBeenLazyLoaded) {\n\t\tthis.createTiddlerInfo(title);\n\t\tthis.tiddlerInfo[title].hasBeenLazyLoaded = true;\n\t\t// Queue up a sync task to load this tiddler\n\t\tthis.enqueueSyncTask({\n\t\t\ttype: \"load\",\n\t\t\ttitle: title\n\t\t});\t\t\n\t}\n};\n\n/*\nDispay a password prompt and allow the user to login\n*/\nSyncer.prototype.handleLoginEvent = function() {\n\tvar self = this;\n\tthis.getStatus(function(err,isLoggedIn,username) {\n\t\tif(!isLoggedIn) {\n\t\t\t$tw.passwordPrompt.createPrompt({\n\t\t\t\tserviceName: $tw.language.getString(\"LoginToTiddlySpace\"),\n\t\t\t\tcallback: function(data) {\n\t\t\t\t\tself.login(data.username,data.password,function(err,isLoggedIn) {\n\t\t\t\t\t\tself.syncFromServer();\n\t\t\t\t\t});\n\t\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n};\n\n/*\nAttempt to login to TiddlyWeb.\n\tusername: username\n\tpassword: password\n\tcallback: invoked with arguments (err,isLoggedIn)\n*/\nSyncer.prototype.login = function(username,password,callback) {\n\tthis.logger.log(\"Attempting to login as\",username);\n\tvar self = this;\n\tif(this.syncadaptor.login) {\n\t\tthis.syncadaptor.login(username,password,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.getStatus(function(err,isLoggedIn,username) {\n\t\t\t\tif(callback) {\n\t\t\t\t\tcallback(null,isLoggedIn);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t} else {\n\t\tcallback(null,true);\n\t}\n};\n\n/*\nAttempt to log out of TiddlyWeb\n*/\nSyncer.prototype.handleLogoutEvent = function() {\n\tthis.logger.log(\"Attempting to logout\");\n\tvar self = this;\n\tif(this.syncadaptor.logout) {\n\t\tthis.syncadaptor.logout(function(err) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\tself.getStatus();\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nImmediately refresh from the server\n*/\nSyncer.prototype.handleRefreshEvent = function() {\n\tthis.syncFromServer();\n};\n\n/*\nQueue up a sync task. If there is already a pending task for the tiddler, just update the last modification time\n*/\nSyncer.prototype.enqueueSyncTask = function(task) {\n\tvar self = this,\n\t\tnow = Date.now();\n\t// Set the timestamps on this task\n\ttask.queueTime = now;\n\ttask.lastModificationTime = now;\n\t// Fill in some tiddlerInfo if the tiddler is one we haven't seen before\n\tthis.createTiddlerInfo(task.title);\n\t// Bail if this is a save and the tiddler is already at the changeCount that the server has\n\tif(task.type === \"save\" && this.wiki.getChangeCount(task.title) <= this.tiddlerInfo[task.title].changeCount) {\n\t\treturn;\n\t}\n\t// Check if this tiddler is already in the queue\n\tif($tw.utils.hop(this.taskQueue,task.title)) {\n\t\t// this.logger.log(\"Re-queueing up sync task with type:\",task.type,\"title:\",task.title);\n\t\tvar existingTask = this.taskQueue[task.title];\n\t\t// If so, just update the last modification time\n\t\texistingTask.lastModificationTime = task.lastModificationTime;\n\t\t// If the new task is a save then we upgrade the existing task to a save. Thus a pending load is turned into a save if the tiddler changes locally in the meantime. But a pending save is not modified to become a load\n\t\tif(task.type === \"save\" || task.type === \"delete\") {\n\t\t\texistingTask.type = task.type;\n\t\t}\n\t} else {\n\t\t// this.logger.log(\"Queuing up sync task with type:\",task.type,\"title:\",task.title);\n\t\t// If it is not in the queue, insert it\n\t\tthis.taskQueue[task.title] = task;\n\t\tthis.updateDirtyStatus();\n\t}\n\t// Process the queue\n\t$tw.utils.nextTick(function() {self.processTaskQueue.call(self);});\n};\n\n/*\nReturn the number of tasks in progress\n*/\nSyncer.prototype.numTasksInProgress = function() {\n\treturn $tw.utils.count(this.taskInProgress);\n};\n\n/*\nReturn the number of tasks in the queue\n*/\nSyncer.prototype.numTasksInQueue = function() {\n\treturn $tw.utils.count(this.taskQueue);\n};\n\n/*\nTrigger a timeout if one isn't already outstanding\n*/\nSyncer.prototype.triggerTimeout = function() {\n\tvar self = this;\n\tif(!this.taskTimerId) {\n\t\tthis.taskTimerId = setTimeout(function() {\n\t\t\tself.taskTimerId = null;\n\t\t\tself.processTaskQueue.call(self);\n\t\t},self.taskTimerInterval);\n\t}\n};\n\n/*\nProcess the task queue, performing the next task if appropriate\n*/\nSyncer.prototype.processTaskQueue = function() {\n\tvar self = this;\n\t// Only process a task if the sync adaptor is fully initialised and we're not already performing a task. If we are already performing a task then we'll dispatch the next one when it completes\n\tif((!this.syncadaptor.isReady || this.syncadaptor.isReady()) && this.numTasksInProgress() === 0) {\n\t\t// Choose the next task to perform\n\t\tvar task = this.chooseNextTask();\n\t\t// Perform the task if we had one\n\t\tif(task) {\n\t\t\t// Remove the task from the queue and add it to the in progress list\n\t\t\tdelete this.taskQueue[task.title];\n\t\t\tthis.taskInProgress[task.title] = task;\n\t\t\tthis.updateDirtyStatus();\n\t\t\t// Dispatch the task\n\t\t\tthis.dispatchTask(task,function(err) {\n\t\t\t\tif(err) {\n\t\t\t\t\tself.logger.alert(\"Sync error while processing '\" + task.title + \"':\\n\" + err);\n\t\t\t\t}\n\t\t\t\t// Mark that this task is no longer in progress\n\t\t\t\tdelete self.taskInProgress[task.title];\n\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t// Process the next task\n\t\t\t\tself.processTaskQueue.call(self);\n\t\t\t});\n\t\t} else {\n\t\t\t// Make sure we've set a time if there wasn't a task to perform, but we've still got tasks in the queue\n\t\t\tif(this.numTasksInQueue() > 0) {\n\t\t\t\tthis.triggerTimeout();\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nChoose the next applicable task\n*/\nSyncer.prototype.chooseNextTask = function() {\n\tvar self = this,\n\t\tcandidateTask = null,\n\t\tnow = Date.now();\n\t// Select the best candidate task\n\t$tw.utils.each(this.taskQueue,function(task,title) {\n\t\t// Exclude the task if there's one of the same name in progress\n\t\tif($tw.utils.hop(self.taskInProgress,title)) {\n\t\t\treturn;\n\t\t}\n\t\t// Exclude the task if it is a save and the tiddler has been modified recently, but not hit the fallback time\n\t\tif(task.type === \"save\" && (now - task.lastModificationTime) < self.throttleInterval &&\n\t\t\t(now - task.queueTime) < self.fallbackInterval) {\n\t\t\treturn;\n\t\t}\n\t\t// Exclude the task if it is newer than the current best candidate\n\t\tif(candidateTask && candidateTask.queueTime < task.queueTime) {\n\t\t\treturn;\n\t\t}\n\t\t// Now this is our best candidate\n\t\tcandidateTask = task;\n\t});\n\treturn candidateTask;\n};\n\n/*\nDispatch a task and invoke the callback\n*/\nSyncer.prototype.dispatchTask = function(task,callback) {\n\tvar self = this;\n\tif(task.type === \"save\") {\n\t\tvar changeCount = this.wiki.getChangeCount(task.title),\n\t\t\ttiddler = this.wiki.getTiddler(task.title);\n\t\tthis.logger.log(\"Dispatching 'save' task:\",task.title);\n\t\tif(tiddler) {\n\t\t\tthis.syncadaptor.saveTiddler(tiddler,function(err,adaptorInfo,revision) {\n\t\t\t\tif(err) {\n\t\t\t\t\treturn callback(err);\n\t\t\t\t}\n\t\t\t\t// Adjust the info stored about this tiddler\n\t\t\t\tself.tiddlerInfo[task.title] = {\n\t\t\t\t\tchangeCount: changeCount,\n\t\t\t\t\tadaptorInfo: adaptorInfo,\n\t\t\t\t\trevision: revision\n\t\t\t\t};\n\t\t\t\t// Invoke the callback\n\t\t\t\tcallback(null);\n\t\t\t},{\n\t\t\t\ttiddlerInfo: self.tiddlerInfo[task.title]\n\t\t\t});\n\t\t} else {\n\t\t\tthis.logger.log(\" Not Dispatching 'save' task:\",task.title,\"tiddler does not exist\");\n\t\t\treturn callback(null);\n\t\t}\n\t} else if(task.type === \"load\") {\n\t\t// Load the tiddler\n\t\tthis.logger.log(\"Dispatching 'load' task:\",task.title);\n\t\tthis.syncadaptor.loadTiddler(task.title,function(err,tiddlerFields) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\t// Store the tiddler\n\t\t\tif(tiddlerFields) {\n\t\t\t\tself.storeTiddler(tiddlerFields,true);\n\t\t\t}\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t});\n\t} else if(task.type === \"delete\") {\n\t\t// Delete the tiddler\n\t\tthis.logger.log(\"Dispatching 'delete' task:\",task.title);\n\t\tthis.syncadaptor.deleteTiddler(task.title,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tdelete self.tiddlerInfo[task.title];\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t},{\n\t\t\ttiddlerInfo: self.tiddlerInfo[task.title]\n\t\t});\n\t}\n};\n\nexports.Syncer = Syncer;\n\n})();\n",
            "title": "$:/core/modules/syncer.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/tiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/tiddler.js\ntype: application/javascript\nmodule-type: tiddlermethod\n\nExtension methods for the $tw.Tiddler object (constructor and methods required at boot time are in boot/boot.js)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.hasTag = function(tag) {\n\treturn this.fields.tags && this.fields.tags.indexOf(tag) !== -1;\n};\n\nexports.isPlugin = function() {\n\treturn this.fields.type === \"application/json\" && this.hasField(\"plugin-type\");\n};\n\nexports.isDraft = function() {\n\treturn this.hasField(\"draft.of\");\n};\n\nexports.getFieldString = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn \"\";\n\t}\n\t// Parse the field with the associated module (if any)\n\tvar fieldModule = $tw.Tiddler.fieldModules[field];\n\tif(fieldModule && fieldModule.stringify) {\n\t\treturn fieldModule.stringify.call(this,value);\n\t} else {\n\t\treturn value.toString();\n\t}\n};\n\n/*\nGet all the fields as a hashmap of strings. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStrings = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [];\n\tvar fields = {};\n\tfor(var field in this.fields) {\n\t\tif($tw.utils.hop(this.fields,field)) {\n\t\t\tif(exclude.indexOf(field) === -1) {\n\t\t\t\tfields[field] = this.getFieldString(field);\n\t\t\t}\n\t\t}\n\t}\n\treturn fields;\n};\n\n/*\nGet all the fields as a name:value block. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStringBlock = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [];\n\tvar fields = [];\n\tfor(var field in this.fields) {\n\t\tif($tw.utils.hop(this.fields,field)) {\n\t\t\tif(exclude.indexOf(field) === -1) {\n\t\t\t\tfields.push(field + \": \" + this.getFieldString(field));\n\t\t\t}\n\t\t}\n\t}\n\treturn fields.join(\"\\n\");\n};\n\n/*\nCompare two tiddlers for equality\ntiddler: the tiddler to compare\nexcludeFields: array of field names to exclude from the comparison\n*/\nexports.isEqual = function(tiddler,excludeFields) {\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\treturn false;\n\t}\n\texcludeFields = excludeFields || [];\n\tvar self = this,\n\t\tdifferences = []; // Fields that have differences\n\t// Add to the differences array\n\tfunction addDifference(fieldName) {\n\t\t// Check for this field being excluded\n\t\tif(excludeFields.indexOf(fieldName) === -1) {\n\t\t\t// Save the field as a difference\n\t\t\t$tw.utils.pushTop(differences,fieldName);\n\t\t}\n\t}\n\t// Returns true if the two values of this field are equal\n\tfunction isFieldValueEqual(fieldName) {\n\t\tvar valueA = self.fields[fieldName],\n\t\t\tvalueB = tiddler.fields[fieldName];\n\t\t// Check for identical string values\n\t\tif(typeof(valueA) === \"string\" && typeof(valueB) === \"string\" && valueA === valueB) {\n\t\t\treturn true;\n\t\t}\n\t\t// Check for identical array values\n\t\tif($tw.utils.isArray(valueA) && $tw.utils.isArray(valueB) && $tw.utils.isArrayEqual(valueA,valueB)) {\n\t\t\treturn true;\n\t\t}\n\t\t// Otherwise the fields must be different\n\t\treturn false;\n\t}\n\t// Compare our fields\n\tfor(var fieldName in this.fields) {\n\t\tif(!isFieldValueEqual(fieldName)) {\n\t\t\taddDifference(fieldName);\n\t\t}\n\t}\n\t// There's a difference for every field in the other tiddler that we don't have\n\tfor(fieldName in tiddler.fields) {\n\t\tif(!(fieldName in this.fields)) {\n\t\t\taddDifference(fieldName);\n\t\t}\n\t}\n\t// Return whether there were any differences\n\treturn differences.length === 0;\n};\n\nexports.getFieldDay = function(field) {\n\tif(this.cache && this.cache.day && $tw.utils.hop(this.cache.day,field) ) {\n\t\treturn this.cache.day[field];\n\t}\n\tvar day = \"\";\n\tif(this.fields[field]) {\n\t\tday = (new Date($tw.utils.parseDate(this.fields[field]))).setHours(0,0,0,0);\n\t}\n\tthis.cache.day = this.cache.day || {};\n\tthis.cache.day[field] = day;\n\treturn day;\n};\n\n})();\n",
            "title": "$:/core/modules/tiddler.js",
            "type": "application/javascript",
            "module-type": "tiddlermethod"
        },
        "$:/core/modules/upgraders/plugins.js": {
            "text": "/*\\\ntitle: $:/core/modules/upgraders/plugins.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that checks that plugins are newer than any already installed version\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar BLOCKED_PLUGINS = {\n\t\"$:/themes/tiddlywiki/stickytitles\": {\n\t\tversions: [\"*\"]\n\t},\n\t\"$:/plugins/tiddlywiki/fullscreen\": {\n\t\tversions: [\"*\"]\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tupgradeLibrary,\n\t\tgetLibraryTiddler = function(title) {\n\t\t\tif(!upgradeLibrary) {\n\t\t\t\tupgradeLibrary = wiki.getTiddlerData(UPGRADE_LIBRARY_TITLE,{});\n\t\t\t\tupgradeLibrary.tiddlers = upgradeLibrary.tiddlers || {};\n\t\t\t}\n\t\t\treturn upgradeLibrary.tiddlers[title];\n\t\t};\n\n\t// Go through all the incoming tiddlers\n\t$tw.utils.each(titles,function(title) {\n\t\tvar incomingTiddler = tiddlers[title];\n\t\t// Check if we're dealing with a plugin\n\t\tif(incomingTiddler && incomingTiddler[\"plugin-type\"] && incomingTiddler.version) {\n\t\t\t// Upgrade the incoming plugin if it is in the upgrade library\n\t\t\tvar libraryTiddler = getLibraryTiddler(title);\n\t\t\tif(libraryTiddler && libraryTiddler[\"plugin-type\"] && libraryTiddler.version) {\n\t\t\t\ttiddlers[title] = libraryTiddler;\n\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Upgraded\",{variables: {incoming: incomingTiddler.version, upgraded: libraryTiddler.version}});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Suppress the incoming plugin if it is older than the currently installed one\n\t\t\tvar existingTiddler = wiki.getTiddler(title);\n\t\t\tif(existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t\t\t// Reject the incoming plugin by blanking all its fields\n\t\t\t\tif($tw.utils.checkVersions(existingTiddler.fields.version,incomingTiddler.version)) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Version\",{variables: {incoming: incomingTiddler.version, existing: existingTiddler.fields.version}});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(incomingTiddler && incomingTiddler[\"plugin-type\"]) {\n\t\t\t// Check whether the plugin is on the blocked list\n\t\t\tvar blockInfo = BLOCKED_PLUGINS[title];\n\t\t\tif(blockInfo) {\n\t\t\t\tif(blockInfo.versions.indexOf(\"*\") !== -1 || (incomingTiddler.version && blockInfo.versions.indexOf(incomingTiddler.version) !== -1)) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Incompatible\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
            "title": "$:/core/modules/upgraders/plugins.js",
            "type": "application/javascript",
            "module-type": "upgrader"
        },
        "$:/core/modules/upgraders/system.js": {
            "text": "/*\\\ntitle: $:/core/modules/upgraders/system.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that suppresses certain system tiddlers that shouldn't be imported\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DONT_IMPORT_LIST = [\"$:/StoryList\",\"$:/HistoryList\"],\n\tDONT_IMPORT_PREFIX_LIST = [\"$:/temp/\",\"$:/state/\"];\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {};\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tif(DONT_IMPORT_LIST.indexOf(title) !== -1) {\n\t\t\ttiddlers[title] = Object.create(null);\n\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Suppressed\");\n\t\t} else {\n\t\t\tfor(var t=0; t<DONT_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = DONT_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/State/Suppressed\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
            "title": "$:/core/modules/upgraders/system.js",
            "type": "application/javascript",
            "module-type": "upgrader"
        },
        "$:/core/modules/upgraders/themetweaks.js": {
            "text": "/*\\\ntitle: $:/core/modules/upgraders/themetweaks.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that handles the change in theme tweak storage introduced in 5.0.14-beta.\n\nPreviously, theme tweaks were stored in two data tiddlers:\n\n* $:/themes/tiddlywiki/vanilla/metrics\n* $:/themes/tiddlywiki/vanilla/settings\n\nNow, each tweak is stored in its own separate tiddler.\n\nThis upgrader copies any values from the old format to the new. The old data tiddlers are not deleted in case they have been used to store additional indexes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar MAPPINGS = {\n\t\"$:/themes/tiddlywiki/vanilla/metrics\": {\n\t\t\"fontsize\": \"$:/themes/tiddlywiki/vanilla/metrics/fontsize\",\n\t\t\"lineheight\": \"$:/themes/tiddlywiki/vanilla/metrics/lineheight\",\n\t\t\"storyleft\": \"$:/themes/tiddlywiki/vanilla/metrics/storyleft\",\n\t\t\"storytop\": \"$:/themes/tiddlywiki/vanilla/metrics/storytop\",\n\t\t\"storyright\": \"$:/themes/tiddlywiki/vanilla/metrics/storyright\",\n\t\t\"storywidth\": \"$:/themes/tiddlywiki/vanilla/metrics/storywidth\",\n\t\t\"tiddlerwidth\": \"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"\n\t},\n\t\"$:/themes/tiddlywiki/vanilla/settings\": {\n\t\t\"fontfamily\": \"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {};\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tvar mapping = MAPPINGS[title];\n\t\tif(mapping) {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlers[title]),\n\t\t\t\ttiddlerData = wiki.getTiddlerDataCached(tiddler,{});\n\t\t\tfor(var index in mapping) {\n\t\t\t\tvar mappedTitle = mapping[index];\n\t\t\t\tif(!tiddlers[mappedTitle] || tiddlers[mappedTitle].title !== mappedTitle) {\n\t\t\t\t\ttiddlers[mappedTitle] = {\n\t\t\t\t\t\ttitle: mappedTitle,\n\t\t\t\t\t\ttext: tiddlerData[index]\n\t\t\t\t\t};\n\t\t\t\t\tmessages[mappedTitle] = $tw.language.getString(\"Import/Upgrader/ThemeTweaks/Created\",{variables: {\n\t\t\t\t\t\tfrom: title + \"##\" + index\n\t\t\t\t\t}});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
            "title": "$:/core/modules/upgraders/themetweaks.js",
            "type": "application/javascript",
            "module-type": "upgrader"
        },
        "$:/core/modules/utils/crypto.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/crypto.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions related to crypto.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for an encrypted store area in the text of a TiddlyWiki file\n*/\nexports.extractEncryptedStoreArea = function(text) {\n\tvar encryptedStoreAreaStartMarker = \"<pre id=\\\"encryptedStoreArea\\\" type=\\\"text/plain\\\" style=\\\"display:none;\\\">\",\n\t\tencryptedStoreAreaStart = text.indexOf(encryptedStoreAreaStartMarker);\n\tif(encryptedStoreAreaStart !== -1) {\n\t\tvar encryptedStoreAreaEnd = text.indexOf(\"</pre>\",encryptedStoreAreaStart);\n\t\tif(encryptedStoreAreaEnd !== -1) {\n\t\t\treturn $tw.utils.htmlDecode(text.substring(encryptedStoreAreaStart + encryptedStoreAreaStartMarker.length,encryptedStoreAreaEnd-1));\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If the password is not provided then the password in the password store will be used\n*/\nexports.decryptStoreArea = function(encryptedStoreArea,password) {\n\tvar decryptedText = $tw.crypto.decrypt(encryptedStoreArea,password);\n\tif(decryptedText) {\n\t\tvar json = JSON.parse(decryptedText),\n\t\t\ttiddlers = [];\n\t\tfor(var title in json) {\n\t\t\tif(title !== \"$:/isEncrypted\") {\n\t\t\t\ttiddlers.push(json[title]);\n\t\t\t}\n\t\t}\n\t\treturn tiddlers;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If that fails, the user is prompted for a password.\nencryptedStoreArea: text of the TiddlyWiki encrypted store area\ncallback: function(tiddlers) called with the array of decrypted tiddlers\n\nThe following configuration settings are supported:\n\n$tw.config.usePasswordVault: causes any password entered by the user to also be put into the system password vault\n*/\nexports.decryptStoreAreaInteractive = function(encryptedStoreArea,callback,options) {\n\t// Try to decrypt with the current password\n\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea);\n\tif(tiddlers) {\n\t\tcallback(tiddlers);\n\t} else {\n\t\t// Prompt for a new password and keep trying\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: \"Enter a password to decrypt the imported TiddlyWiki\",\n\t\t\tnoUserName: true,\n\t\t\tcanCancel: true,\n\t\t\tsubmitText: \"Decrypt\",\n\t\t\tcallback: function(data) {\n\t\t\t\t// Exit if the user cancelled\n\t\t\t\tif(!data) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t// Attempt to decrypt the tiddlers\n\t\t\t\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea,data.password);\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tif($tw.config.usePasswordVault) {\n\t\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t\t}\n\t\t\t\t\tcallback(tiddlers);\n\t\t\t\t\t// Exit and remove the password prompt\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\t// We didn't decrypt everything, so continue to prompt for password\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/utils/crypto.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/animations/slide.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/animations/slide.js\ntype: application/javascript\nmodule-type: animation\n\nA simple slide animation that varies the height of the element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction slideOpen(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration();\n\t// Get the current height of the domNode\n\tvar computedStyle = window.getComputedStyle(domNode),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrPaddingBottom = parseInt(computedStyle.paddingBottom,10),\n\t\tcurrPaddingTop = parseInt(computedStyle.paddingTop,10),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Reset the margin once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"none\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{marginTop: currMarginTop + \"px\"},\n\t\t{paddingBottom: currPaddingBottom + \"px\"},\n\t\t{paddingTop: currPaddingTop + \"px\"},\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n}\n\nfunction slideClosed(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration(),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Clear the properties we've set when the animation is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n}\n\nexports.slide = {\n\topen: slideOpen,\n\tclose: slideClosed\n};\n\n})();\n",
            "title": "$:/core/modules/utils/dom/animations/slide.js",
            "type": "application/javascript",
            "module-type": "animation"
        },
        "$:/core/modules/utils/dom/animator.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/animator.js\ntype: application/javascript\nmodule-type: utils\n\nOrchestrates animations and transitions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Animator() {\n\t// Get the registered animation modules\n\tthis.animations = {};\n\t$tw.modules.applyMethods(\"animation\",this.animations);\n}\n\nAnimator.prototype.perform = function(type,domNode,options) {\n\toptions = options || {};\n\t// Find an animation that can handle this type\n\tvar chosenAnimation;\n\t$tw.utils.each(this.animations,function(animation,name) {\n\t\tif($tw.utils.hop(animation,type)) {\n\t\t\tchosenAnimation = animation[type];\n\t\t}\n\t});\n\tif(!chosenAnimation) {\n\t\tchosenAnimation = function(domNode,options) {\n\t\t\tif(options.callback) {\n\t\t\t\toptions.callback();\n\t\t\t}\n\t\t};\n\t}\n\t// Call the animation\n\tchosenAnimation(domNode,options);\n};\n\nexports.Animator = Animator;\n\n})();\n",
            "title": "$:/core/modules/utils/dom/animator.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/browser.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/browser.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser feature detection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet style properties of an element\n\telement: dom node\n\tstyles: ordered array of {name: value} pairs\n*/\nexports.setStyle = function(element,styles) {\n\tif(element.nodeType === 1) { // Element.ELEMENT_NODE\n\t\tfor(var t=0; t<styles.length; t++) {\n\t\t\tfor(var styleName in styles[t]) {\n\t\t\t\telement.style[$tw.utils.convertStyleNameToPropertyName(styleName)] = styles[t][styleName];\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nConverts a standard CSS property name into the local browser-specific equivalent. For example:\n\t\"background-color\" --> \"backgroundColor\"\n\t\"transition\" --> \"webkitTransition\"\n*/\n\nvar styleNameCache = {}; // We'll cache the style name conversions\n\nexports.convertStyleNameToPropertyName = function(styleName) {\n\t// Return from the cache if we can\n\tif(styleNameCache[styleName]) {\n\t\treturn styleNameCache[styleName];\n\t}\n\t// Convert it by first removing any hyphens\n\tvar propertyName = $tw.utils.unHyphenateCss(styleName);\n\t// Then check if it needs a prefix\n\tif($tw.browser && document.body.style[propertyName] === undefined) {\n\t\tvar prefixes = [\"O\",\"MS\",\"Moz\",\"webkit\"];\n\t\tfor(var t=0; t<prefixes.length; t++) {\n\t\t\tvar prefixedName = prefixes[t] + propertyName.substr(0,1).toUpperCase() + propertyName.substr(1);\n\t\t\tif(document.body.style[prefixedName] !== undefined) {\n\t\t\t\tpropertyName = prefixedName;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t// Put it in the cache too\n\tstyleNameCache[styleName] = propertyName;\n\treturn propertyName;\n};\n\n/*\nConverts a JS format CSS property name back into the dashed form used in CSS declarations. For example:\n\t\"backgroundColor\" --> \"background-color\"\n\t\"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.convertPropertyNameToStyleName = function(propertyName) {\n\t// Rehyphenate the name\n\tvar styleName = $tw.utils.hyphenateCss(propertyName);\n\t// If there's a webkit prefix, add a dash (other browsers have uppercase prefixes, and so get the dash automatically)\n\tif(styleName.indexOf(\"webkit\") === 0) {\n\t\tstyleName = \"-\" + styleName;\n\t} else if(styleName.indexOf(\"-m-s\") === 0) {\n\t\tstyleName = \"-ms\" + styleName.substr(4);\n\t}\n\treturn styleName;\n};\n\n/*\nRound trip a stylename to a property name and back again. For example:\n\t\"transform\" --> \"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.roundTripPropertyName = function(propertyName) {\n\treturn $tw.utils.convertPropertyNameToStyleName($tw.utils.convertStyleNameToPropertyName(propertyName));\n};\n\n/*\nConverts a standard event name into the local browser specific equivalent. For example:\n\t\"animationEnd\" --> \"webkitAnimationEnd\"\n*/\n\nvar eventNameCache = {}; // We'll cache the conversions\n\nvar eventNameMappings = {\n\t\"transitionEnd\": {\n\t\tcorrespondingCssProperty: \"transition\",\n\t\tmappings: {\n\t\t\ttransition: \"transitionend\",\n\t\t\tOTransition: \"oTransitionEnd\",\n\t\t\tMSTransition: \"msTransitionEnd\",\n\t\t\tMozTransition: \"transitionend\",\n\t\t\twebkitTransition: \"webkitTransitionEnd\"\n\t\t}\n\t},\n\t\"animationEnd\": {\n\t\tcorrespondingCssProperty: \"animation\",\n\t\tmappings: {\n\t\t\tanimation: \"animationend\",\n\t\t\tOAnimation: \"oAnimationEnd\",\n\t\t\tMSAnimation: \"msAnimationEnd\",\n\t\t\tMozAnimation: \"animationend\",\n\t\t\twebkitAnimation: \"webkitAnimationEnd\"\n\t\t}\n\t}\n};\n\nexports.convertEventName = function(eventName) {\n\tif(eventNameCache[eventName]) {\n\t\treturn eventNameCache[eventName];\n\t}\n\tvar newEventName = eventName,\n\t\tmappings = eventNameMappings[eventName];\n\tif(mappings) {\n\t\tvar convertedProperty = $tw.utils.convertStyleNameToPropertyName(mappings.correspondingCssProperty);\n\t\tif(mappings.mappings[convertedProperty]) {\n\t\t\tnewEventName = mappings.mappings[convertedProperty];\n\t\t}\n\t}\n\t// Put it in the cache too\n\teventNameCache[eventName] = newEventName;\n\treturn newEventName;\n};\n\n/*\nReturn the names of the fullscreen APIs\n*/\nexports.getFullScreenApis = function() {\n\tvar d = document,\n\t\tdb = d.body,\n\t\tresult = {\n\t\t\"_requestFullscreen\": db.webkitRequestFullscreen !== undefined ? \"webkitRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.mozRequestFullScreen !== undefined ? \"mozRequestFullScreen\" :\n\t\t\t\t\t\t\tdb.msRequestFullscreen !== undefined ? \"msRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.requestFullscreen !== undefined ? \"requestFullscreen\" : \"\",\n\t\t\"_exitFullscreen\": d.webkitExitFullscreen !== undefined ? \"webkitExitFullscreen\" :\n\t\t\t\t\t\t\td.mozCancelFullScreen !== undefined ? \"mozCancelFullScreen\" :\n\t\t\t\t\t\t\td.msExitFullscreen !== undefined ? \"msExitFullscreen\" :\n\t\t\t\t\t\t\td.exitFullscreen !== undefined ? \"exitFullscreen\" : \"\",\n\t\t\"_fullscreenElement\": d.webkitFullscreenElement !== undefined ? \"webkitFullscreenElement\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozFullScreenElement\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"msFullscreenElement\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenElement\" : \"\",\n\t\t\"_fullscreenChange\": d.webkitFullscreenElement !== undefined ? \"webkitfullscreenchange\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozfullscreenchange\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"MSFullscreenChange\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenchange\" : \"\"\n\t};\n\tif(!result._requestFullscreen || !result._exitFullscreen || !result._fullscreenElement || !result._fullscreenChange) {\n\t\treturn null;\n\t} else {\n\t\treturn result;\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/utils/dom/browser.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/csscolorparser.js": {
            "text": "// (c) Dean McNamee <dean@gmail.com>, 2012.\n//\n// https://github.com/deanm/css-color-parser-js\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n// IN THE SOFTWARE.\n\n// http://www.w3.org/TR/css3-color/\nvar kCSSColorTable = {\n  \"transparent\": [0,0,0,0], \"aliceblue\": [240,248,255,1],\n  \"antiquewhite\": [250,235,215,1], \"aqua\": [0,255,255,1],\n  \"aquamarine\": [127,255,212,1], \"azure\": [240,255,255,1],\n  \"beige\": [245,245,220,1], \"bisque\": [255,228,196,1],\n  \"black\": [0,0,0,1], \"blanchedalmond\": [255,235,205,1],\n  \"blue\": [0,0,255,1], \"blueviolet\": [138,43,226,1],\n  \"brown\": [165,42,42,1], \"burlywood\": [222,184,135,1],\n  \"cadetblue\": [95,158,160,1], \"chartreuse\": [127,255,0,1],\n  \"chocolate\": [210,105,30,1], \"coral\": [255,127,80,1],\n  \"cornflowerblue\": [100,149,237,1], \"cornsilk\": [255,248,220,1],\n  \"crimson\": [220,20,60,1], \"cyan\": [0,255,255,1],\n  \"darkblue\": [0,0,139,1], \"darkcyan\": [0,139,139,1],\n  \"darkgoldenrod\": [184,134,11,1], \"darkgray\": [169,169,169,1],\n  \"darkgreen\": [0,100,0,1], \"darkgrey\": [169,169,169,1],\n  \"darkkhaki\": [189,183,107,1], \"darkmagenta\": [139,0,139,1],\n  \"darkolivegreen\": [85,107,47,1], \"darkorange\": [255,140,0,1],\n  \"darkorchid\": [153,50,204,1], \"darkred\": [139,0,0,1],\n  \"darksalmon\": [233,150,122,1], \"darkseagreen\": [143,188,143,1],\n  \"darkslateblue\": [72,61,139,1], \"darkslategray\": [47,79,79,1],\n  \"darkslategrey\": [47,79,79,1], \"darkturquoise\": [0,206,209,1],\n  \"darkviolet\": [148,0,211,1], \"deeppink\": [255,20,147,1],\n  \"deepskyblue\": [0,191,255,1], \"dimgray\": [105,105,105,1],\n  \"dimgrey\": [105,105,105,1], \"dodgerblue\": [30,144,255,1],\n  \"firebrick\": [178,34,34,1], \"floralwhite\": [255,250,240,1],\n  \"forestgreen\": [34,139,34,1], \"fuchsia\": [255,0,255,1],\n  \"gainsboro\": [220,220,220,1], \"ghostwhite\": [248,248,255,1],\n  \"gold\": [255,215,0,1], \"goldenrod\": [218,165,32,1],\n  \"gray\": [128,128,128,1], \"green\": [0,128,0,1],\n  \"greenyellow\": [173,255,47,1], \"grey\": [128,128,128,1],\n  \"honeydew\": [240,255,240,1], \"hotpink\": [255,105,180,1],\n  \"indianred\": [205,92,92,1], \"indigo\": [75,0,130,1],\n  \"ivory\": [255,255,240,1], \"khaki\": [240,230,140,1],\n  \"lavender\": [230,230,250,1], \"lavenderblush\": [255,240,245,1],\n  \"lawngreen\": [124,252,0,1], \"lemonchiffon\": [255,250,205,1],\n  \"lightblue\": [173,216,230,1], \"lightcoral\": [240,128,128,1],\n  \"lightcyan\": [224,255,255,1], \"lightgoldenrodyellow\": [250,250,210,1],\n  \"lightgray\": [211,211,211,1], \"lightgreen\": [144,238,144,1],\n  \"lightgrey\": [211,211,211,1], \"lightpink\": [255,182,193,1],\n  \"lightsalmon\": [255,160,122,1], \"lightseagreen\": [32,178,170,1],\n  \"lightskyblue\": [135,206,250,1], \"lightslategray\": [119,136,153,1],\n  \"lightslategrey\": [119,136,153,1], \"lightsteelblue\": [176,196,222,1],\n  \"lightyellow\": [255,255,224,1], \"lime\": [0,255,0,1],\n  \"limegreen\": [50,205,50,1], \"linen\": [250,240,230,1],\n  \"magenta\": [255,0,255,1], \"maroon\": [128,0,0,1],\n  \"mediumaquamarine\": [102,205,170,1], \"mediumblue\": [0,0,205,1],\n  \"mediumorchid\": [186,85,211,1], \"mediumpurple\": [147,112,219,1],\n  \"mediumseagreen\": [60,179,113,1], \"mediumslateblue\": [123,104,238,1],\n  \"mediumspringgreen\": [0,250,154,1], \"mediumturquoise\": [72,209,204,1],\n  \"mediumvioletred\": [199,21,133,1], \"midnightblue\": [25,25,112,1],\n  \"mintcream\": [245,255,250,1], \"mistyrose\": [255,228,225,1],\n  \"moccasin\": [255,228,181,1], \"navajowhite\": [255,222,173,1],\n  \"navy\": [0,0,128,1], \"oldlace\": [253,245,230,1],\n  \"olive\": [128,128,0,1], \"olivedrab\": [107,142,35,1],\n  \"orange\": [255,165,0,1], \"orangered\": [255,69,0,1],\n  \"orchid\": [218,112,214,1], \"palegoldenrod\": [238,232,170,1],\n  \"palegreen\": [152,251,152,1], \"paleturquoise\": [175,238,238,1],\n  \"palevioletred\": [219,112,147,1], \"papayawhip\": [255,239,213,1],\n  \"peachpuff\": [255,218,185,1], \"peru\": [205,133,63,1],\n  \"pink\": [255,192,203,1], \"plum\": [221,160,221,1],\n  \"powderblue\": [176,224,230,1], \"purple\": [128,0,128,1],\n  \"red\": [255,0,0,1], \"rosybrown\": [188,143,143,1],\n  \"royalblue\": [65,105,225,1], \"saddlebrown\": [139,69,19,1],\n  \"salmon\": [250,128,114,1], \"sandybrown\": [244,164,96,1],\n  \"seagreen\": [46,139,87,1], \"seashell\": [255,245,238,1],\n  \"sienna\": [160,82,45,1], \"silver\": [192,192,192,1],\n  \"skyblue\": [135,206,235,1], \"slateblue\": [106,90,205,1],\n  \"slategray\": [112,128,144,1], \"slategrey\": [112,128,144,1],\n  \"snow\": [255,250,250,1], \"springgreen\": [0,255,127,1],\n  \"steelblue\": [70,130,180,1], \"tan\": [210,180,140,1],\n  \"teal\": [0,128,128,1], \"thistle\": [216,191,216,1],\n  \"tomato\": [255,99,71,1], \"turquoise\": [64,224,208,1],\n  \"violet\": [238,130,238,1], \"wheat\": [245,222,179,1],\n  \"white\": [255,255,255,1], \"whitesmoke\": [245,245,245,1],\n  \"yellow\": [255,255,0,1], \"yellowgreen\": [154,205,50,1]}\n\nfunction clamp_css_byte(i) {  // Clamp to integer 0 .. 255.\n  i = Math.round(i);  // Seems to be what Chrome does (vs truncation).\n  return i < 0 ? 0 : i > 255 ? 255 : i;\n}\n\nfunction clamp_css_float(f) {  // Clamp to float 0.0 .. 1.0.\n  return f < 0 ? 0 : f > 1 ? 1 : f;\n}\n\nfunction parse_css_int(str) {  // int or percentage.\n  if (str[str.length - 1] === '%')\n    return clamp_css_byte(parseFloat(str) / 100 * 255);\n  return clamp_css_byte(parseInt(str));\n}\n\nfunction parse_css_float(str) {  // float or percentage.\n  if (str[str.length - 1] === '%')\n    return clamp_css_float(parseFloat(str) / 100);\n  return clamp_css_float(parseFloat(str));\n}\n\nfunction css_hue_to_rgb(m1, m2, h) {\n  if (h < 0) h += 1;\n  else if (h > 1) h -= 1;\n\n  if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;\n  if (h * 2 < 1) return m2;\n  if (h * 3 < 2) return m1 + (m2 - m1) * (2/3 - h) * 6;\n  return m1;\n}\n\nfunction parseCSSColor(css_str) {\n  // Remove all whitespace, not compliant, but should just be more accepting.\n  var str = css_str.replace(/ /g, '').toLowerCase();\n\n  // Color keywords (and transparent) lookup.\n  if (str in kCSSColorTable) return kCSSColorTable[str].slice();  // dup.\n\n  // #abc and #abc123 syntax.\n  if (str[0] === '#') {\n    if (str.length === 4) {\n      var iv = parseInt(str.substr(1), 16);  // TODO(deanm): Stricter parsing.\n      if (!(iv >= 0 && iv <= 0xfff)) return null;  // Covers NaN.\n      return [((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8),\n              (iv & 0xf0) | ((iv & 0xf0) >> 4),\n              (iv & 0xf) | ((iv & 0xf) << 4),\n              1];\n    } else if (str.length === 7) {\n      var iv = parseInt(str.substr(1), 16);  // TODO(deanm): Stricter parsing.\n      if (!(iv >= 0 && iv <= 0xffffff)) return null;  // Covers NaN.\n      return [(iv & 0xff0000) >> 16,\n              (iv & 0xff00) >> 8,\n              iv & 0xff,\n              1];\n    }\n\n    return null;\n  }\n\n  var op = str.indexOf('('), ep = str.indexOf(')');\n  if (op !== -1 && ep + 1 === str.length) {\n    var fname = str.substr(0, op);\n    var params = str.substr(op+1, ep-(op+1)).split(',');\n    var alpha = 1;  // To allow case fallthrough.\n    switch (fname) {\n      case 'rgba':\n        if (params.length !== 4) return null;\n        alpha = parse_css_float(params.pop());\n        // Fall through.\n      case 'rgb':\n        if (params.length !== 3) return null;\n        return [parse_css_int(params[0]),\n                parse_css_int(params[1]),\n                parse_css_int(params[2]),\n                alpha];\n      case 'hsla':\n        if (params.length !== 4) return null;\n        alpha = parse_css_float(params.pop());\n        // Fall through.\n      case 'hsl':\n        if (params.length !== 3) return null;\n        var h = (((parseFloat(params[0]) % 360) + 360) % 360) / 360;  // 0 .. 1\n        // NOTE(deanm): According to the CSS spec s/l should only be\n        // percentages, but we don't bother and let float or percentage.\n        var s = parse_css_float(params[1]);\n        var l = parse_css_float(params[2]);\n        var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n        var m1 = l * 2 - m2;\n        return [clamp_css_byte(css_hue_to_rgb(m1, m2, h+1/3) * 255),\n                clamp_css_byte(css_hue_to_rgb(m1, m2, h) * 255),\n                clamp_css_byte(css_hue_to_rgb(m1, m2, h-1/3) * 255),\n                alpha];\n      default:\n        return null;\n    }\n  }\n\n  return null;\n}\n\ntry { exports.parseCSSColor = parseCSSColor } catch(e) { }\n",
            "title": "$:/core/modules/utils/dom/csscolorparser.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static DOM-related utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDetermines whether element 'a' contains element 'b'\nCode thanks to John Resig, http://ejohn.org/blog/comparing-document-position/\n*/\nexports.domContains = function(a,b) {\n\treturn a.contains ?\n\t\ta !== b && a.contains(b) :\n\t\t!!(a.compareDocumentPosition(b) & 16);\n};\n\nexports.removeChildren = function(node) {\n\twhile(node.hasChildNodes()) {\n\t\tnode.removeChild(node.firstChild);\n\t}\n};\n\nexports.hasClass = function(el,className) {\n\treturn el && el.className && el.className.toString().split(\" \").indexOf(className) !== -1;\n};\n\nexports.addClass = function(el,className) {\n\tvar c = el.className.split(\" \");\n\tif(c.indexOf(className) === -1) {\n\t\tc.push(className);\n\t}\n\tel.className = c.join(\" \");\n};\n\nexports.removeClass = function(el,className) {\n\tvar c = el.className.split(\" \"),\n\t\tp = c.indexOf(className);\n\tif(p !== -1) {\n\t\tc.splice(p,1);\n\t\tel.className = c.join(\" \");\n\t}\n};\n\nexports.toggleClass = function(el,className,status) {\n\tif(status === undefined) {\n\t\tstatus = !exports.hasClass(el,className);\n\t}\n\tif(status) {\n\t\texports.addClass(el,className);\n\t} else {\n\t\texports.removeClass(el,className);\n\t}\n};\n\n/*\nGet the first parent element that has scrollbars or use the body as fallback.\n*/\nexports.getScrollContainer = function(el) {\n\tvar doc = el.ownerDocument;\n\twhile(el.parentNode) {\t\n\t\tel = el.parentNode;\n\t\tif(el.scrollTop) {\n\t\t\treturn el;\n\t\t}\n\t}\n\treturn doc.body;\n};\n\n/*\nGet the scroll position of the viewport\nReturns:\n\t{\n\t\tx: horizontal scroll position in pixels,\n\t\ty: vertical scroll position in pixels\n\t}\n*/\nexports.getScrollPosition = function() {\n\tif(\"scrollX\" in window) {\n\t\treturn {x: window.scrollX, y: window.scrollY};\n\t} else {\n\t\treturn {x: document.documentElement.scrollLeft, y: document.documentElement.scrollTop};\n\t}\n};\n\n/*\nAdjust the height of a textarea to fit its content, preserving scroll position, and return the height\n*/\nexports.resizeTextAreaToFit = function(domNode,minHeight) {\n\t// Get the scroll container and register the current scroll position\n\tvar container = $tw.utils.getScrollContainer(domNode),\n\t\tscrollTop = container.scrollTop;\n    // Measure the specified minimum height\n\tdomNode.style.height = minHeight;\n\tvar measuredHeight = domNode.offsetHeight;\n\t// Set its height to auto so that it snaps to the correct height\n\tdomNode.style.height = \"auto\";\n\t// Calculate the revised height\n\tvar newHeight = Math.max(domNode.scrollHeight + domNode.offsetHeight - domNode.clientHeight,measuredHeight);\n\t// Only try to change the height if it has changed\n\tif(newHeight !== domNode.offsetHeight) {\n\t\tdomNode.style.height = newHeight + \"px\";\n\t\t// Make sure that the dimensions of the textarea are recalculated\n\t\t$tw.utils.forceLayout(domNode);\n\t\t// Set the container to the position we registered at the beginning\n\t\tcontainer.scrollTop = scrollTop;\n\t}\n\treturn newHeight;\n};\n\n/*\nGets the bounding rectangle of an element in absolute page coordinates\n*/\nexports.getBoundingPageRect = function(element) {\n\tvar scrollPos = $tw.utils.getScrollPosition(),\n\t\tclientRect = element.getBoundingClientRect();\n\treturn {\n\t\tleft: clientRect.left + scrollPos.x,\n\t\twidth: clientRect.width,\n\t\tright: clientRect.right + scrollPos.x,\n\t\ttop: clientRect.top + scrollPos.y,\n\t\theight: clientRect.height,\n\t\tbottom: clientRect.bottom + scrollPos.y\n\t};\n};\n\n/*\nSaves a named password in the browser\n*/\nexports.savePassword = function(name,password) {\n\ttry {\n\t\tif(window.localStorage) {\n\t\t\tlocalStorage.setItem(\"tw5-password-\" + name,password);\n\t\t}\n\t} catch(e) {\n\t}\n};\n\n/*\nRetrieve a named password from the browser\n*/\nexports.getPassword = function(name) {\n\ttry {\n\t\treturn window.localStorage ? localStorage.getItem(\"tw5-password-\" + name) : \"\";\n\t} catch(e) {\n\t\treturn \"\";\n\t}\n};\n\n/*\nForce layout of a dom node and its descendents\n*/\nexports.forceLayout = function(element) {\n\tvar dummy = element.offsetWidth;\n};\n\n/*\nPulse an element for debugging purposes\n*/\nexports.pulseElement = function(element) {\n\t// Event handler to remove the class at the end\n\telement.addEventListener($tw.browser.animationEnd,function handler(event) {\n\t\telement.removeEventListener($tw.browser.animationEnd,handler,false);\n\t\t$tw.utils.removeClass(element,\"pulse\");\n\t},false);\n\t// Apply the pulse class\n\t$tw.utils.removeClass(element,\"pulse\");\n\t$tw.utils.forceLayout(element);\n\t$tw.utils.addClass(element,\"pulse\");\n};\n\n/*\nAttach specified event handlers to a DOM node\ndomNode: where to attach the event handlers\nevents: array of event handlers to be added (see below)\nEach entry in the events array is an object with these properties:\nhandlerFunction: optional event handler function\nhandlerObject: optional event handler object\nhandlerMethod: optionally specifies object handler method name (defaults to `handleEvent`)\n*/\nexports.addEventListeners = function(domNode,events) {\n\t$tw.utils.each(events,function(eventInfo) {\n\t\tvar handler;\n\t\tif(eventInfo.handlerFunction) {\n\t\t\thandler = eventInfo.handlerFunction;\n\t\t} else if(eventInfo.handlerObject) {\n\t\t\tif(eventInfo.handlerMethod) {\n\t\t\t\thandler = function(event) {\n\t\t\t\t\teventInfo.handlerObject[eventInfo.handlerMethod].call(eventInfo.handlerObject,event);\n\t\t\t\t};\t\n\t\t\t} else {\n\t\t\t\thandler = eventInfo.handlerObject;\n\t\t\t}\n\t\t}\n\t\tdomNode.addEventListener(eventInfo.name,handler,false);\n\t});\n};\n\n/*\nGet the computed styles applied to an element as an array of strings of individual CSS properties\n*/\nexports.getComputedStyles = function(domNode) {\n\tvar textAreaStyles = window.getComputedStyle(domNode,null),\n\t\tstyleDefs = [],\n\t\tname;\n\tfor(var t=0; t<textAreaStyles.length; t++) {\n\t\tname = textAreaStyles[t];\n\t\tstyleDefs.push(name + \": \" + textAreaStyles.getPropertyValue(name) + \";\");\n\t}\n\treturn styleDefs;\n};\n\n/*\nApply a set of styles passed as an array of strings of individual CSS properties\n*/\nexports.setStyles = function(domNode,styleDefs) {\n\tdomNode.style.cssText = styleDefs.join(\"\");\n};\n\n/*\nCopy the computed styles from a source element to a destination element\n*/\nexports.copyStyles = function(srcDomNode,dstDomNode) {\n\t$tw.utils.setStyles(dstDomNode,$tw.utils.getComputedStyles(srcDomNode));\n};\n\n})();\n",
            "title": "$:/core/modules/utils/dom.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/dragndrop.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/dragndrop.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser data transfer utilities, used with the clipboard and drag and drop\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOptions:\n\ndomNode: dom node to make draggable\ndragImageType: \"pill\" or \"dom\"\ndragTiddlerFn: optional function to retrieve the title of tiddler to drag\ndragFilterFn: optional function to retreive the filter defining a list of tiddlers to drag\nwidget: widget to use as the contect for the filter\n*/\nexports.makeDraggable = function(options) {\n\tvar dragImageType = options.dragImageType || \"dom\",\n\t\tdragImage,\n\t\tdomNode = options.domNode;\n\t// Make the dom node draggable (not necessary for anchor tags)\n\tif((domNode.tagName || \"\").toLowerCase() !== \"a\") {\n\t\tdomNode.setAttribute(\"draggable\",\"true\");\t\t\n\t}\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragstart\", handlerFunction: function(event) {\n\t\t\t// Collect the tiddlers being dragged\n\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [];\n\t\t\tif(dragFilter) {\n\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t}\n\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t// Check that we've something to drag\n\t\t\tif(titles.length > 0 && event.target === domNode) {\n\t\t\t\t// Mark the drag in progress\n\t\t\t\t$tw.dragInProgress = domNode;\n\t\t\t\t// Set the dragging class on the element being dragged\n\t\t\t\t$tw.utils.addClass(event.target,\"tc-dragging\");\n\t\t\t\t// Create the drag image elements\n\t\t\t\tdragImage = options.widget.document.createElement(\"div\");\n\t\t\t\tdragImage.className = \"tc-tiddler-dragger\";\n\t\t\t\tvar inner = options.widget.document.createElement(\"div\");\n\t\t\t\tinner.className = \"tc-tiddler-dragger-inner\";\n\t\t\t\tinner.appendChild(options.widget.document.createTextNode(\n\t\t\t\t\ttitles.length === 1 ? \n\t\t\t\t\t\ttitles[0] :\n\t\t\t\t\t\ttitles.length + \" tiddlers\"\n\t\t\t\t));\n\t\t\t\tdragImage.appendChild(inner);\n\t\t\t\toptions.widget.document.body.appendChild(dragImage);\n\t\t\t\t// Set the data transfer properties\n\t\t\t\tvar dataTransfer = event.dataTransfer;\n\t\t\t\t// Set up the image\n\t\t\t\tdataTransfer.effectAllowed = \"all\";\n\t\t\t\tif(dataTransfer.setDragImage) {\n\t\t\t\t\tif(dragImageType === \"pill\") {\n\t\t\t\t\t\tdataTransfer.setDragImage(dragImage.firstChild,-16,-16);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar r = domNode.getBoundingClientRect();\n\t\t\t\t\t\tdataTransfer.setDragImage(domNode,event.clientX-r.left,event.clientY-r.top);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Set up the data transfer\n\t\t\t\tif(dataTransfer.clearData) {\n\t\t\t\t\tdataTransfer.clearData();\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tvar jsonData = [];\n\t\t\t\tif(titles.length > 1) {\n\t\t\t\t\ttitles.forEach(function(title) {\n\t\t\t\t\t\tjsonData.push(options.widget.wiki.getTiddlerAsJson(title));\n\t\t\t\t\t});\n\t\t\t\t\tjsonData = \"[\" + jsonData.join(\",\") + \"]\";\n\t\t\t\t} else {\n\t\t\t\t\tjsonData = options.widget.wiki.getTiddlerAsJson(titles[0]);\n\t\t\t\t}\n\t\t\t\t// IE doesn't like these content types\n\t\t\t\tif(!$tw.browser.isIE) {\n\t\t\t\t\tdataTransfer.setData(\"text/vnd.tiddler\",jsonData);\n\t\t\t\t\tdataTransfer.setData(\"text/plain\",titleString);\n\t\t\t\t\tdataTransfer.setData(\"text/x-moz-url\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\t}\n\t\t\t\tdataTransfer.setData(\"URL\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\tdataTransfer.setData(\"Text\",titleString);\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t\treturn false;\n\t\t}},\n\t\t{name: \"dragend\", handlerFunction: function(event) {\n\t\t\tif(event.target === domNode) {\n\t\t\t\t$tw.dragInProgress = null;\n\t\t\t\t// Remove the dragging class on the element being dragged\n\t\t\t\t$tw.utils.removeClass(event.target,\"tc-dragging\");\n\t\t\t\t// Delete the drag image element\n\t\t\t\tif(dragImage) {\n\t\t\t\t\tdragImage.parentNode.removeChild(dragImage);\n\t\t\t\t\tdragImage = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}}\n\t]);\n};\n\nexports.importDataTransfer = function(dataTransfer,fallbackTitle,callback) {\n\t// Try each provided data type in turn\n\tfor(var t=0; t<importDataTypes.length; t++) {\n\t\tif(!$tw.browser.isIE || importDataTypes[t].IECompatible) {\n\t\t\t// Get the data\n\t\t\tvar dataType = importDataTypes[t];\n\t\t\t\tvar data = dataTransfer.getData(dataType.type);\n\t\t\t// Import the tiddlers in the data\n\t\t\tif(data !== \"\" && data !== null) {\n\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\tconsole.log(\"Importing data type '\" + dataType.type + \"', data: '\" + data + \"'\")\n\t\t\t\t}\n\t\t\t\tvar tiddlerFields = dataType.toTiddlerFieldsArray(data,fallbackTitle);\n\t\t\t\tcallback(tiddlerFields);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar importDataTypes = [\n\t{type: \"text/vnd.tiddler\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn parseJSONTiddlers(data,fallbackTitle);\n\t}},\n\t{type: \"URL\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/x-moz-url\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/html\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/plain\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"Text\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/uri-list\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}}\n];\n\nfunction parseJSONTiddlers(json,fallbackTitle) {\n\tvar data = JSON.parse(json);\n\tif(!$tw.utils.isArray(data)) {\n\t\tdata = [data];\n\t}\n\tdata.forEach(function(fields) {\n\t\tfields.title = fields.title || fallbackTitle;\n\t});\n\treturn data;\n};\n\n})();\n",
            "title": "$:/core/modules/utils/dom/dragndrop.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/http.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/http.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser HTTP support\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nA quick and dirty HTTP function; to be refactored later. Options are:\n\turl: URL to retrieve\n\ttype: GET, PUT, POST etc\n\tcallback: function invoked with (err,data)\n\treturnProp: string name of the property to return as first argument of callback\n*/\nexports.httpRequest = function(options) {\n\tvar type = options.type || \"GET\",\n\t\theaders = options.headers || {accept: \"application/json\"},\n\t\treturnProp = options.returnProp || \"responseText\",\n\t\trequest = new XMLHttpRequest(),\n\t\tdata = \"\",\n\t\tf,results;\n\t// Massage the data hashmap into a string\n\tif(options.data) {\n\t\tif(typeof options.data === \"string\") { // Already a string\n\t\t\tdata = options.data;\n\t\t} else { // A hashmap of strings\n\t\t\tresults = [];\n\t\t\t$tw.utils.each(options.data,function(dataItem,dataItemTitle) {\n\t\t\t\tresults.push(dataItemTitle + \"=\" + encodeURIComponent(dataItem));\n\t\t\t});\n\t\t\tdata = results.join(\"&\");\n\t\t}\n\t}\n\t// Set up the state change handler\n\trequest.onreadystatechange = function() {\n\t\tif(this.readyState === 4) {\n\t\t\tif(this.status === 200 || this.status === 201 || this.status === 204) {\n\t\t\t\t// Success!\n\t\t\t\toptions.callback(null,this[returnProp],this);\n\t\t\t\treturn;\n\t\t\t}\n\t\t// Something went wrong\n\t\toptions.callback($tw.language.getString(\"Error/XMLHttpRequest\") + \": \" + this.status);\n\t\t}\n\t};\n\t// Make the request\n\trequest.open(type,options.url,true);\n\tif(headers) {\n\t\t$tw.utils.each(headers,function(header,headerTitle,object) {\n\t\t\trequest.setRequestHeader(headerTitle,header);\n\t\t});\n\t}\n\tif(data && !$tw.utils.hop(headers,\"Content-type\")) {\n\t\trequest.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded; charset=UTF-8\");\n\t}\n\ttry {\n\t\trequest.send(data);\n\t} catch(e) {\n\t\toptions.callback(e);\n\t}\n\treturn request;\n};\n\n})();\n",
            "title": "$:/core/modules/utils/dom/http.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/keyboard.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/keyboard.js\ntype: application/javascript\nmodule-type: utils\n\nKeyboard utilities; now deprecated. Instead, use $tw.keyboardManager\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n[\"parseKeyDescriptor\",\"checkKeyDescriptor\"].forEach(function(method) {\n\texports[method] = function() {\n\t\tif($tw.keyboardManager) {\n\t\t\treturn $tw.keyboardManager[method].apply($tw.keyboardManager,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t};\n});\n\n})();\n",
            "title": "$:/core/modules/utils/dom/keyboard.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/modal.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/modal.js\ntype: application/javascript\nmodule-type: utils\n\nModal message mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Modal = function(wiki) {\n\tthis.wiki = wiki;\n\tthis.modalCount = 0;\n};\n\n/*\nDisplay a modal dialogue\n\ttitle: Title of tiddler to display\n\toptions: see below\nOptions include:\n\tdownloadLink: Text of a big download link to include\n*/\nModal.prototype.display = function(title,options) {\n\toptions = options || {};\n\tvar self = this,\n\t\trefreshHandler,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\ttiddler = this.wiki.getTiddler(title);\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Create the wrapper divs\n\tvar wrapper = document.createElement(\"div\"),\n\t\tmodalBackdrop = document.createElement(\"div\"),\n\t\tmodalWrapper = document.createElement(\"div\"),\n\t\tmodalHeader = document.createElement(\"div\"),\n\t\theaderTitle = document.createElement(\"h3\"),\n\t\tmodalBody = document.createElement(\"div\"),\n\t\tmodalLink = document.createElement(\"a\"),\n\t\tmodalFooter = document.createElement(\"div\"),\n\t\tmodalFooterHelp = document.createElement(\"span\"),\n\t\tmodalFooterButtons = document.createElement(\"span\");\n\t// Up the modal count and adjust the body class\n\tthis.modalCount++;\n\tthis.adjustPageClass();\n\t// Add classes\n\t$tw.utils.addClass(wrapper,\"tc-modal-wrapper\");\n\t$tw.utils.addClass(modalBackdrop,\"tc-modal-backdrop\");\n\t$tw.utils.addClass(modalWrapper,\"tc-modal\");\n\t$tw.utils.addClass(modalHeader,\"tc-modal-header\");\n\t$tw.utils.addClass(modalBody,\"tc-modal-body\");\n\t$tw.utils.addClass(modalFooter,\"tc-modal-footer\");\n\t// Join them together\n\twrapper.appendChild(modalBackdrop);\n\twrapper.appendChild(modalWrapper);\n\tmodalHeader.appendChild(headerTitle);\n\tmodalWrapper.appendChild(modalHeader);\n\tmodalWrapper.appendChild(modalBody);\n\tmodalFooter.appendChild(modalFooterHelp);\n\tmodalFooter.appendChild(modalFooterButtons);\n\tmodalWrapper.appendChild(modalFooter);\n\t// Render the title of the message\n\tvar headerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"subtitle\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\tattributes: {\n\t\t\t\ttext: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title\n\t\t}}}],\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\theaderWidgetNode.render(headerTitle,null);\n\t// Render the body of the message\n\tvar bodyWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\tbodyWidgetNode.render(modalBody,null);\n\t// Setup the link if present\n\tif(options.downloadLink) {\n\t\tmodalLink.href = options.downloadLink;\n\t\tmodalLink.appendChild(document.createTextNode(\"Right-click to save changes\"));\n\t\tmodalBody.appendChild(modalLink);\n\t}\n\t// Render the footer of the message\n\tif(tiddler && tiddler.fields && tiddler.fields.help) {\n\t\tvar link = document.createElement(\"a\");\n\t\tlink.setAttribute(\"href\",tiddler.fields.help);\n\t\tlink.setAttribute(\"target\",\"_blank\");\n\t\tlink.setAttribute(\"rel\",\"noopener noreferrer\");\n\t\tlink.appendChild(document.createTextNode(\"Help\"));\n\t\tmodalFooterHelp.appendChild(link);\n\t\tmodalFooterHelp.style.float = \"left\";\n\t}\n\tvar footerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"footer\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"button\",\n\t\t\tattributes: {\n\t\t\t\tmessage: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: \"tm-close-tiddler\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\tattributes: {\n\t\t\t\t\ttext: {\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\tvalue: $tw.language.getString(\"Buttons/Close/Caption\")\n\t\t\t}}}\n\t\t]}],\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\tfooterWidgetNode.render(modalFooterButtons,null);\n\t// Set up the refresh handler\n\trefreshHandler = function(changes) {\n\t\theaderWidgetNode.refresh(changes,modalHeader,null);\n\t\tbodyWidgetNode.refresh(changes,modalBody,null);\n\t\tfooterWidgetNode.refresh(changes,modalFooterButtons,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Add the close event handler\n\tvar closeHandler = function(event) {\n\t\t// Remove our refresh handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Decrease the modal count and adjust the body class\n\t\tself.modalCount--;\n\t\tself.adjustPageClass();\n\t\t// Force layout and animate the modal message away\n\t\t$tw.utils.forceLayout(modalBackdrop);\n\t\t$tw.utils.forceLayout(modalWrapper);\n\t\t$tw.utils.setStyle(modalBackdrop,[\n\t\t\t{opacity: \"0\"}\n\t\t]);\n\t\t$tw.utils.setStyle(modalWrapper,[\n\t\t\t{transform: \"translateY(\" + window.innerHeight + \"px)\"}\n\t\t]);\n\t\t// Set up an event for the transition end\n\t\twindow.setTimeout(function() {\n\t\t\tif(wrapper.parentNode) {\n\t\t\t\t// Remove the modal message from the DOM\n\t\t\t\tdocument.body.removeChild(wrapper);\n\t\t\t}\n\t\t},duration);\n\t\t// Don't let anyone else handle the tm-close-tiddler message\n\t\treturn false;\n\t};\n\theaderWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tbodyWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tfooterWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\t// Set the initial styles for the message\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-window.innerHeight) + \"px)\"}\n\t]);\n\t// Put the message into the document\n\tdocument.body.appendChild(wrapper);\n\t// Set up animation for the styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{transition: \"opacity \" + duration + \"ms ease-out\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(modalBackdrop);\n\t$tw.utils.forceLayout(modalWrapper);\n\t// Set final animated styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0.7\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n};\n\nModal.prototype.adjustPageClass = function() {\n\tif($tw.pageContainer) {\n\t\t$tw.utils.toggleClass($tw.pageContainer,\"tc-modal-displayed\",this.modalCount > 0);\n\t}\n};\n\nexports.Modal = Modal;\n\n})();\n",
            "title": "$:/core/modules/utils/dom/modal.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/notifier.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/notifier.js\ntype: application/javascript\nmodule-type: utils\n\nNotifier mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Notifier = function(wiki) {\n\tthis.wiki = wiki;\n};\n\n/*\nDisplay a notification\n\ttitle: Title of tiddler containing the notification text\n\toptions: see below\nOptions include:\n*/\nNotifier.prototype.display = function(title,options) {\n\toptions = options || {};\n\t// Create the wrapper divs\n\tvar self = this,\n\t\tnotification = document.createElement(\"div\"),\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\trefreshHandler;\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Add classes\n\t$tw.utils.addClass(notification,\"tc-notification\");\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Render the body of the notification\n\tvar widgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true});\n\twidgetNode.render(notification,null);\n\trefreshHandler = function(changes) {\n\t\twidgetNode.refresh(changes,notification,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Set the initial styles for the notification\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"0\"},\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-window.innerHeight) + \"px)\"},\n\t\t{transition: \"opacity \" + duration + \"ms ease-out, \" + $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Add the notification to the DOM\n\tdocument.body.appendChild(notification);\n\t// Force layout\n\t$tw.utils.forceLayout(notification);\n\t// Set final animated styles\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n\t// Set a timer to remove the notification\n\twindow.setTimeout(function() {\n\t\t// Remove our change event handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Force layout and animate the notification away\n\t\t$tw.utils.forceLayout(notification);\n\t\t$tw.utils.setStyle(notification,[\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transform: \"translateX(\" + (notification.offsetWidth) + \"px)\"}\n\t\t]);\n\t\t// Remove the modal message from the DOM once the transition ends\n\t\tsetTimeout(function() {\n\t\t\tif(notification.parentNode) {\n\t\t\t\tdocument.body.removeChild(notification);\n\t\t\t}\n\t\t},duration);\n\t},$tw.config.preferences.notificationDuration);\n};\n\nexports.Notifier = Notifier;\n\n})();\n",
            "title": "$:/core/modules/utils/dom/notifier.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/popup.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/popup.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Popup object prototype that manages popups in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreates a Popup object with these options:\n\trootElement: the DOM element to which the popup zapper should be attached\n*/\nvar Popup = function(options) {\n\toptions = options || {};\n\tthis.rootElement = options.rootElement || document.documentElement;\n\tthis.popups = []; // Array of {title:,wiki:,domNode:} objects\n};\n\n/*\nTrigger a popup open or closed. Parameters are in a hashmap:\n\ttitle: title of the tiddler where the popup details are stored\n\tdomNode: dom node to which the popup will be positioned\n\twiki: wiki\n\tforce: if specified, forces the popup state to true or false (instead of toggling it)\n*/\nPopup.prototype.triggerPopup = function(options) {\n\t// Check if this popup is already active\n\tvar index = this.findPopup(options.title);\n\t// Compute the new state\n\tvar state = index === -1;\n\tif(options.force !== undefined) {\n\t\tstate = options.force;\n\t}\n\t// Show or cancel the popup according to the new state\n\tif(state) {\n\t\tthis.show(options);\n\t} else {\n\t\tthis.cancel(index);\n\t}\n};\n\nPopup.prototype.findPopup = function(title) {\n\tvar index = -1;\n\tfor(var t=0; t<this.popups.length; t++) {\n\t\tif(this.popups[t].title === title) {\n\t\t\tindex = t;\n\t\t}\n\t}\n\treturn index;\n};\n\nPopup.prototype.handleEvent = function(event) {\n\tif(event.type === \"click\") {\n\t\t// Find out what was clicked on\n\t\tvar info = this.popupInfo(event.target),\n\t\t\tcancelLevel = info.popupLevel - 1;\n\t\t// Don't remove the level that was clicked on if we clicked on a handle\n\t\tif(info.isHandle) {\n\t\t\tcancelLevel++;\n\t\t}\n\t\t// Cancel\n\t\tthis.cancel(cancelLevel);\n\t}\n};\n\n/*\nFind the popup level containing a DOM node. Returns:\npopupLevel: count of the number of nested popups containing the specified element\nisHandle: true if the specified element is within a popup handle\n*/\nPopup.prototype.popupInfo = function(domNode) {\n\tvar isHandle = false,\n\t\tpopupCount = 0,\n\t\tnode = domNode;\n\t// First check ancestors to see if we're within a popup handle\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup-handle\")) {\n\t\t\tisHandle = true;\n\t\t\tpopupCount++;\n\t\t}\n\t\tif($tw.utils.hasClass(node,\"tc-popup-keep\")) {\n\t\t\tisHandle = true;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\t// Then count the number of ancestor popups\n\tnode = domNode;\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup\")) {\n\t\t\tpopupCount++;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\tvar info = {\n\t\tpopupLevel: popupCount,\n\t\tisHandle: isHandle\n\t};\n\treturn info;\n};\n\n/*\nDisplay a popup by adding it to the stack\n*/\nPopup.prototype.show = function(options) {\n\t// Find out what was clicked on\n\tvar info = this.popupInfo(options.domNode);\n\t// Cancel any higher level popups\n\tthis.cancel(info.popupLevel);\n\t// Store the popup details if not already there\n\tif(this.findPopup(options.title) === -1) {\n\t\tthis.popups.push({\n\t\t\ttitle: options.title,\n\t\t\twiki: options.wiki,\n\t\t\tdomNode: options.domNode\n\t\t});\n\t}\n\t// Set the state tiddler\n\toptions.wiki.setTextReference(options.title,\n\t\t\t\"(\" + options.domNode.offsetLeft + \",\" + options.domNode.offsetTop + \",\" + \n\t\t\t\toptions.domNode.offsetWidth + \",\" + options.domNode.offsetHeight + \")\");\n\t// Add the click handler if we have any popups\n\tif(this.popups.length > 0) {\n\t\tthis.rootElement.addEventListener(\"click\",this,true);\t\t\n\t}\n};\n\n/*\nCancel all popups at or above a specified level or DOM node\nlevel: popup level to cancel (0 cancels all popups)\n*/\nPopup.prototype.cancel = function(level) {\n\tvar numPopups = this.popups.length;\n\tlevel = Math.max(0,Math.min(level,numPopups));\n\tfor(var t=level; t<numPopups; t++) {\n\t\tvar popup = this.popups.pop();\n\t\tif(popup.title) {\n\t\t\tpopup.wiki.deleteTiddler(popup.title);\n\t\t}\n\t}\n\tif(this.popups.length === 0) {\n\t\tthis.rootElement.removeEventListener(\"click\",this,false);\n\t}\n};\n\n/*\nReturns true if the specified title and text identifies an active popup\n*/\nPopup.prototype.readPopupState = function(text) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/;\n\treturn popupLocationRegExp.test(text);\n};\n\nexports.Popup = Popup;\n\n})();\n",
            "title": "$:/core/modules/utils/dom/popup.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/scroller.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/scroller.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Scroller object prototype that manages scrolling in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nEvent handler for when the `tm-scroll` event hits the document body\n*/\nvar PageScroller = function() {\n\tthis.idRequestFrame = null;\n\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\twindow.webkitRequestAnimationFrame ||\n\t\twindow.mozRequestAnimationFrame ||\n\t\tfunction(callback) {\n\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t};\n\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\twindow.webkitCancelAnimationFrame ||\n\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\twindow.mozCancelAnimationFrame ||\n\t\twindow.mozCancelRequestAnimationFrame ||\n\t\tfunction(id) {\n\t\t\twindow.clearTimeout(id);\n\t\t};\n};\n\nPageScroller.prototype.cancelScroll = function() {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(window,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle an event\n*/\nPageScroller.prototype.handleEvent = function(event) {\n\tif(event.type === \"tm-scroll\") {\n\t\treturn this.scrollIntoView(event.target);\n\t}\n\treturn true;\n};\n\n/*\nHandle a scroll event hitting the page document\n*/\nPageScroller.prototype.scrollIntoView = function(element) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\t// Now get ready to scroll the body\n\tthis.cancelScroll();\n\tthis.startTime = Date.now();\n\tvar scrollPosition = $tw.utils.getScrollPosition();\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar clientBounds = element.getBoundingClientRect(),\n\t\tbounds = {\n\t\t\tleft: clientBounds.left + scrollPosition.x,\n\t\t\ttop: clientBounds.top + scrollPosition.y,\n\t\t\twidth: clientBounds.width,\n\t\t\theight: clientBounds.height\n\t\t};\n\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\t// targetPos/targetSize - position and size of the target element\n\t// currentPos/currentSize - position and size of the current scroll viewport\n\t// returns: new position of the scroll viewport\n\tvar getEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\tvar newPos = currentPos;\n\t\t\t// If the target is above/left of the current view, then scroll to it's top/left\n\t\t\tif(targetPos <= currentPos) {\n\t\t\t\tnewPos = targetPos;\n\t\t\t// If the target is smaller than the window and the scroll position is too far up, then scroll till the target is at the bottom of the window\n\t\t\t} else if(targetSize < currentSize && currentPos < (targetPos + targetSize - currentSize)) {\n\t\t\t\tnewPos = targetPos + targetSize - currentSize;\n\t\t\t// If the target is big, then just scroll to the top\n\t\t\t} else if(currentPos < targetPos) {\n\t\t\t\tnewPos = targetPos;\n\t\t\t// Otherwise, stay where we are\n\t\t\t} else {\n\t\t\t\tnewPos = currentPos;\n\t\t\t}\n\t\t\t// If we are scrolling within 50 pixels of the top/left then snap to zero\n\t\t\tif(newPos < 50) {\n\t\t\t\tnewPos = 0;\n\t\t\t}\n\t\t\treturn newPos;\n\t\t},\n\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,window.innerWidth),\n\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,window.innerHeight);\n\t// Only scroll if the position has changed\n\tif(endX !== scrollPosition.x || endY !== scrollPosition.y) {\n\t\tvar self = this,\n\t\t\tdrawFrame;\n\t\tdrawFrame = function () {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll();\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\twindow.scrollTo(scrollPosition.x + (endX - scrollPosition.x) * t,scrollPosition.y + (endY - scrollPosition.y) * t);\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(window,drawFrame);\n\t\t\t}\n\t\t};\n\t\tdrawFrame();\n\t}\n};\n\nexports.PageScroller = PageScroller;\n\n})();\n",
            "title": "$:/core/modules/utils/dom/scroller.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/edition-info.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/edition-info.js\ntype: application/javascript\nmodule-type: utils-node\n\nInformation about the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\nvar editionInfo;\n\nexports.getEditionInfo = function() {\n\tif(!editionInfo) {\n\t\t// Enumerate the edition paths\n\t\tvar editionPaths = $tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar);\n\t\teditionInfo = {};\n\t\tfor(var editionIndex=0; editionIndex<editionPaths.length; editionIndex++) {\n\t\t\tvar editionPath = editionPaths[editionIndex];\n\t\t\t// Enumerate the folders\n\t\t\tvar entries = fs.readdirSync(editionPath);\n\t\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\t\tvar entry = entries[entryIndex];\n\t\t\t\t// Check if directories have a valid tiddlywiki.info\n\t\t\t\tif(!editionInfo[entry] && $tw.utils.isDirectory(path.resolve(editionPath,entry))) {\n\t\t\t\t\tvar info;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tinfo = JSON.parse(fs.readFileSync(path.resolve(editionPath,entry,\"tiddlywiki.info\"),\"utf8\"));\n\t\t\t\t\t} catch(ex) {\n\t\t\t\t\t}\n\t\t\t\t\tif(info) {\n\t\t\t\t\t\teditionInfo[entry] = info;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn editionInfo;\n};\n\n})();\n",
            "title": "$:/core/modules/utils/edition-info.js",
            "type": "application/javascript",
            "module-type": "utils-node"
        },
        "$:/core/modules/utils/fakedom.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/fakedom.js\ntype: application/javascript\nmodule-type: global\n\nA barebones implementation of DOM interfaces needed by the rendering mechanism.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Sequence number used to enable us to track objects for testing\nvar sequenceNumber = null;\n\nvar bumpSequenceNumber = function(object) {\n\tif(sequenceNumber !== null) {\n\t\tobject.sequenceNumber = sequenceNumber++;\n\t}\n};\n\nvar TW_TextNode = function(text) {\n\tbumpSequenceNumber(this);\n\tthis.textContent = text + \"\";\n};\n\nObject.defineProperty(TW_TextNode.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn 3;\n\t}\n});\n\nObject.defineProperty(TW_TextNode.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\treturn this.textContent.replace(/(\\r?\\n)/g,\"\");\n\t}\n});\n\nvar TW_Element = function(tag,namespace) {\n\tbumpSequenceNumber(this);\n\tthis.isTiddlyWikiFakeDom = true;\n\tthis.tag = tag;\n\tthis.attributes = {};\n\tthis.isRaw = false;\n\tthis.children = [];\n\tthis.style = {};\n\tthis.namespaceURI = namespace || \"http://www.w3.org/1999/xhtml\";\n};\n\nObject.defineProperty(TW_Element.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn 1;\n\t}\n});\n\nTW_Element.prototype.getAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot getAttribute on a raw TW_Element\";\n\t}\n\treturn this.attributes[name];\n};\n\nTW_Element.prototype.setAttribute = function(name,value) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot setAttribute on a raw TW_Element\";\n\t}\n\tthis.attributes[name] = value + \"\";\n};\n\nTW_Element.prototype.setAttributeNS = function(namespace,name,value) {\n\tthis.setAttribute(name,value);\n};\n\nTW_Element.prototype.removeAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot removeAttribute on a raw TW_Element\";\n\t}\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\tdelete this.attributes[name];\n\t}\n};\n\nTW_Element.prototype.appendChild = function(node) {\n\tthis.children.push(node);\n\tnode.parentNode = this;\n};\n\nTW_Element.prototype.insertBefore = function(node,nextSibling) {\n\tif(nextSibling) {\n\t\tvar p = this.children.indexOf(nextSibling);\n\t\tif(p !== -1) {\n\t\t\tthis.children.splice(p,0,node);\n\t\t\tnode.parentNode = this;\n\t\t} else {\n\t\t\tthis.appendChild(node);\n\t\t}\n\t} else {\n\t\tthis.appendChild(node);\n\t}\n};\n\nTW_Element.prototype.removeChild = function(node) {\n\tvar p = this.children.indexOf(node);\n\tif(p !== -1) {\n\t\tthis.children.splice(p,1);\n\t}\n};\n\nTW_Element.prototype.hasChildNodes = function() {\n\treturn !!this.children.length;\n};\n\nObject.defineProperty(TW_Element.prototype, \"childNodes\", {\n\tget: function() {\n\t\treturn this.children;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"firstChild\", {\n\tget: function() {\n\t\treturn this.children[0];\n\t}\n});\n\nTW_Element.prototype.addEventListener = function(type,listener,useCapture) {\n\t// Do nothing\n};\n\nObject.defineProperty(TW_Element.prototype, \"tagName\", {\n\tget: function() {\n\t\treturn this.tag || \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"className\", {\n\tget: function() {\n\t\treturn this.attributes[\"class\"] || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes[\"class\"] = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"value\", {\n\tget: function() {\n\t\treturn this.attributes.value || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes.value = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"outerHTML\", {\n\tget: function() {\n\t\tvar output = [],attr,a,v;\n\t\toutput.push(\"<\",this.tag);\n\t\tif(this.attributes) {\n\t\t\tattr = [];\n\t\t\tfor(a in this.attributes) {\n\t\t\t\tattr.push(a);\n\t\t\t}\n\t\t\tattr.sort();\n\t\t\tfor(a=0; a<attr.length; a++) {\n\t\t\t\tv = this.attributes[attr[a]];\n\t\t\t\tif(v !== undefined) {\n\t\t\t\t\toutput.push(\" \",attr[a],\"=\\\"\",$tw.utils.htmlEncode(v),\"\\\"\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(this.style) {\n\t\t\tvar style = [];\n\t\t\tfor(var s in this.style) {\n\t\t\t\tstyle.push(s + \":\" + this.style[s] + \";\");\n\t\t\t}\n\t\t\tif(style.length > 0) {\n\t\t\t\toutput.push(\" style=\\\"\",style.join(\"\"),\"\\\"\")\n\t\t\t}\n\t\t}\n\t\toutput.push(\">\");\n\t\tif($tw.config.htmlVoidElements.indexOf(this.tag) === -1) {\n\t\t\toutput.push(this.innerHTML);\n\t\t\toutput.push(\"</\",this.tag,\">\");\n\t\t}\n\t\treturn output.join(\"\");\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"innerHTML\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn this.rawHTML;\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tif(node instanceof TW_Element) {\n\t\t\t\t\tb.push(node.outerHTML);\n\t\t\t\t} else if(node instanceof TW_TextNode) {\n\t\t\t\t\tb.push($tw.utils.htmlEncode(node.textContent));\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.isRaw = true;\n\t\tthis.rawHTML = value;\n\t\tthis.rawTextContent = null;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textInnerHTML\", {\n\tset: function(value) {\n\t\tif(this.isRaw) {\n\t\t\tthis.rawTextContent = value;\n\t\t} else {\n\t\t\tthrow \"Cannot set textInnerHTML of a non-raw TW_Element\";\n\t\t}\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\tif(this.rawTextContent === null) {\n\t\t\t\tconsole.log(booboo)\n\t\t\t\tthrow \"Cannot get textContent on a raw TW_Element\";\t\t\t\t\n\t\t\t} else {\n\t\t\t\treturn this.rawTextContent;\n\t\t\t}\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.textContent);\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.children = [new TW_TextNode(value)];\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\tthrow \"Cannot get formattedTextContent on a raw TW_Element\";\n\t\t} else {\n\t\t\tvar b = [],\n\t\t\t\tisBlock = $tw.config.htmlBlockElements.indexOf(this.tag) !== -1;\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\tif(this.tag === \"li\") {\n\t\t\t\tb.push(\"* \");\n\t\t\t}\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.formattedTextContent);\n\t\t\t});\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\treturn b.join(\"\");\n\t\t}\n\t}\n});\n\nvar document = {\n\tsetSequenceNumber: function(value) {\n\t\tsequenceNumber = value;\n\t},\n\tcreateElementNS: function(namespace,tag) {\n\t\treturn new TW_Element(tag,namespace);\n\t},\n\tcreateElement: function(tag) {\n\t\treturn new TW_Element(tag);\n\t},\n\tcreateTextNode: function(text) {\n\t\treturn new TW_TextNode(text);\n\t},\n\tcompatMode: \"CSS1Compat\", // For KaTeX to know that we're not a browser in quirks mode\n\tisTiddlyWikiFakeDom: true\n};\n\nexports.fakeDocument = document;\n\n})();\n",
            "title": "$:/core/modules/utils/fakedom.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/utils/filesystem.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/filesystem.js\ntype: application/javascript\nmodule-type: utils-node\n\nFile system utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\n/*\nRecursively (and synchronously) copy a directory and all its content\n*/\nexports.copyDirectory = function(srcPath,dstPath) {\n\t// Remove any trailing path separators\n\tsrcPath = $tw.utils.removeTrailingSeparator(srcPath);\n\tdstPath = $tw.utils.removeTrailingSeparator(dstPath);\n\t// Create the destination directory\n\tvar err = $tw.utils.createDirectory(dstPath);\n\tif(err) {\n\t\treturn err;\n\t}\n\t// Function to copy a folder full of files\n\tvar copy = function(srcPath,dstPath) {\n\t\tvar srcStats = fs.lstatSync(srcPath),\n\t\t\tdstExists = fs.existsSync(dstPath);\n\t\tif(srcStats.isFile()) {\n\t\t\t$tw.utils.copyFile(srcPath,dstPath);\n\t\t} else if(srcStats.isDirectory()) {\n\t\t\tvar items = fs.readdirSync(srcPath);\n\t\t\tfor(var t=0; t<items.length; t++) {\n\t\t\t\tvar item = items[t],\n\t\t\t\t\terr = copy(srcPath + path.sep + item,dstPath + path.sep + item);\n\t\t\t\tif(err) {\n\t\t\t\t\treturn err;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\tcopy(srcPath,dstPath);\n\treturn null;\n};\n\n/*\nCopy a file\n*/\nvar FILE_BUFFER_LENGTH = 64 * 1024,\n\tfileBuffer;\n\nexports.copyFile = function(srcPath,dstPath) {\n\t// Create buffer if required\n\tif(!fileBuffer) {\n\t\tfileBuffer = new Buffer(FILE_BUFFER_LENGTH);\n\t}\n\t// Create any directories in the destination\n\t$tw.utils.createDirectory(path.dirname(dstPath));\n\t// Copy the file\n\tvar srcFile = fs.openSync(srcPath,\"r\"),\n\t\tdstFile = fs.openSync(dstPath,\"w\"),\n\t\tbytesRead = 1,\n\t\tpos = 0;\n\twhile (bytesRead > 0) {\n\t\tbytesRead = fs.readSync(srcFile,fileBuffer,0,FILE_BUFFER_LENGTH,pos);\n\t\tfs.writeSync(dstFile,fileBuffer,0,bytesRead);\n\t\tpos += bytesRead;\n\t}\n\tfs.closeSync(srcFile);\n\tfs.closeSync(dstFile);\n\treturn null;\n};\n\n/*\nRemove trailing path separator\n*/\nexports.removeTrailingSeparator = function(dirPath) {\n\tvar len = dirPath.length;\n\tif(dirPath.charAt(len-1) === path.sep) {\n\t\tdirPath = dirPath.substr(0,len-1);\n\t}\n\treturn dirPath;\n};\n\n/*\nRecursively create a directory\n*/\nexports.createDirectory = function(dirPath) {\n\tif(dirPath.substr(dirPath.length-1,1) !== path.sep) {\n\t\tdirPath = dirPath + path.sep;\n\t}\n\tvar pos = 1;\n\tpos = dirPath.indexOf(path.sep,pos);\n\twhile(pos !== -1) {\n\t\tvar subDirPath = dirPath.substr(0,pos);\n\t\tif(!$tw.utils.isDirectory(subDirPath)) {\n\t\t\ttry {\n\t\t\t\tfs.mkdirSync(subDirPath);\n\t\t\t} catch(e) {\n\t\t\t\treturn \"Error creating directory '\" + subDirPath + \"'\";\n\t\t\t}\n\t\t}\n\t\tpos = dirPath.indexOf(path.sep,pos + 1);\n\t}\n\treturn null;\n};\n\n/*\nRecursively create directories needed to contain a specified file\n*/\nexports.createFileDirectories = function(filePath) {\n\treturn $tw.utils.createDirectory(path.dirname(filePath));\n};\n\n/*\nRecursively delete a directory\n*/\nexports.deleteDirectory = function(dirPath) {\n\tif(fs.existsSync(dirPath)) {\n\t\tvar entries = fs.readdirSync(dirPath);\n\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\tvar currPath = dirPath + path.sep + entries[entryIndex];\n\t\t\tif(fs.lstatSync(currPath).isDirectory()) {\n\t\t\t\t$tw.utils.deleteDirectory(currPath);\n\t\t\t} else {\n\t\t\t\tfs.unlinkSync(currPath);\n\t\t\t}\n\t\t}\n\tfs.rmdirSync(dirPath);\n\t}\n\treturn null;\n};\n\n/*\nCheck if a path identifies a directory\n*/\nexports.isDirectory = function(dirPath) {\n\treturn fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory();\n};\n\n/*\nCheck if a path identifies a directory that is empty\n*/\nexports.isDirectoryEmpty = function(dirPath) {\n\tif(!$tw.utils.isDirectory(dirPath)) {\n\t\treturn false;\n\t}\n\tvar files = fs.readdirSync(dirPath),\n\t\tempty = true;\n\t$tw.utils.each(files,function(file,index) {\n\t\tif(file.charAt(0) !== \".\") {\n\t\t\tempty = false;\n\t\t}\n\t});\n\treturn empty;\n};\n\n/*\nRecursively delete a tree of empty directories\n*/\nexports.deleteEmptyDirs = function(dirpath,callback) {\n\tvar self = this;\n\tfs.readdir(dirpath,function(err,files) {\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\tif(files.length > 0) {\n\t\t\treturn callback(null);\n\t\t}\n\t\tfs.rmdir(dirpath,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.deleteEmptyDirs(path.dirname(dirpath),callback);\n\t\t});\n\t});\n};\n\n})();\n",
            "title": "$:/core/modules/utils/filesystem.js",
            "type": "application/javascript",
            "module-type": "utils-node"
        },
        "$:/core/modules/utils/logger.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/logger.js\ntype: application/javascript\nmodule-type: utils\n\nA basic logging implementation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ALERT_TAG = \"$:/tags/Alert\";\n\n/*\nMake a new logger\n*/\nfunction Logger(componentName) {\n\tthis.componentName = componentName || \"\";\n}\n\n/*\nLog a message\n*/\nLogger.prototype.log = function(/* args */) {\n\tif(console !== undefined && console.log !== undefined) {\n\t\treturn Function.apply.call(console.log, console, [this.componentName + \":\"].concat(Array.prototype.slice.call(arguments,0)));\n\t}\n};\n\n/*\nAlert a message\n*/\nLogger.prototype.alert = function(/* args */) {\n\t// Prepare the text of the alert\n\tvar text = Array.prototype.join.call(arguments,\" \");\n\t// Create alert tiddlers in the browser\n\tif($tw.browser) {\n\t\t// Check if there is an existing alert with the same text and the same component\n\t\tvar existingAlerts = $tw.wiki.getTiddlersWithTag(ALERT_TAG),\n\t\t\talertFields,\n\t\t\texistingCount,\n\t\t\tself = this;\n\t\t$tw.utils.each(existingAlerts,function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(tiddler.fields.text === text && tiddler.fields.component === self.componentName && tiddler.fields.modified && (!alertFields || tiddler.fields.modified < alertFields.modified)) {\n\t\t\t\t\talertFields = $tw.utils.extend({},tiddler.fields);\n\t\t\t}\n\t\t});\n\t\tif(alertFields) {\n\t\t\texistingCount = alertFields.count || 1;\n\t\t} else {\n\t\t\talertFields = {\n\t\t\t\ttitle: $tw.wiki.generateNewTitle(\"$:/temp/alerts/alert\",{prefix: \"\"}),\n\t\t\t\ttext: text,\n\t\t\t\ttags: [ALERT_TAG],\n\t\t\t\tcomponent: this.componentName\n\t\t\t};\n\t\t\texistingCount = 0;\n\t\t}\n\t\talertFields.modified = new Date();\n\t\tif(++existingCount > 1) {\n\t\t\talertFields.count = existingCount;\n\t\t} else {\n\t\t\talertFields.count = undefined;\n\t\t}\n\t\t$tw.wiki.addTiddler(new $tw.Tiddler(alertFields));\n\t\t// Log the alert as well\n\t\tthis.log.apply(this,Array.prototype.slice.call(arguments,0));\n\t} else {\n\t\t// Print an orange message to the console if not in the browser\n\t\tconsole.error(\"\\x1b[1;33m\" + text + \"\\x1b[0m\");\n\t}\n};\n\nexports.Logger = Logger;\n\n})();\n",
            "title": "$:/core/modules/utils/logger.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/parsetree.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/parsetree.js\ntype: application/javascript\nmodule-type: utils\n\nParse tree utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.addAttributeToParseTreeNode = function(node,name,value) {\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[name] = {type: \"string\", value: value};\n};\n\nexports.getAttributeValueFromParseTreeNode = function(node,name,defaultValue) {\n\tif(node.attributes && node.attributes[name] && node.attributes[name].value !== undefined) {\n\t\treturn node.attributes[name].value;\n\t}\n\treturn defaultValue;\n};\n\nexports.addClassToParseTreeNode = function(node,classString) {\n\tvar classes = [];\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[\"class\"] = node.attributes[\"class\"] || {type: \"string\", value: \"\"};\n\tif(node.attributes[\"class\"].type === \"string\") {\n\t\tif(node.attributes[\"class\"].value !== \"\") {\n\t\t\tclasses = node.attributes[\"class\"].value.split(\" \");\n\t\t}\n\t\tif(classString !== \"\") {\n\t\t\t$tw.utils.pushTop(classes,classString.split(\" \"));\n\t\t}\n\t\tnode.attributes[\"class\"].value = classes.join(\" \");\n\t}\n};\n\nexports.addStyleToParseTreeNode = function(node,name,value) {\n\t\tnode.attributes = node.attributes || {};\n\t\tnode.attributes.style = node.attributes.style || {type: \"string\", value: \"\"};\n\t\tif(node.attributes.style.type === \"string\") {\n\t\t\tnode.attributes.style.value += name + \":\" + value + \";\";\n\t\t}\n};\n\nexports.findParseTreeNode = function(nodeArray,search) {\n\tfor(var t=0; t<nodeArray.length; t++) {\n\t\tif(nodeArray[t].type === search.type && nodeArray[t].tag === search.tag) {\n\t\t\treturn nodeArray[t];\n\t\t}\n\t}\n\treturn undefined;\n};\n\n/*\nHelper to get the text of a parse tree node or array of nodes\n*/\nexports.getParseTreeText = function getParseTreeText(tree) {\n\tvar output = [];\n\tif($tw.utils.isArray(tree)) {\n\t\t$tw.utils.each(tree,function(node) {\n\t\t\toutput.push(getParseTreeText(node));\n\t\t});\n\t} else {\n\t\tif(tree.type === \"text\") {\n\t\t\toutput.push(tree.text);\n\t\t}\n\t\tif(tree.children) {\n\t\t\treturn getParseTreeText(tree.children);\n\t\t}\n\t}\n\treturn output.join(\"\");\n};\n\n})();\n",
            "title": "$:/core/modules/utils/parsetree.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/performance.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/performance.js\ntype: application/javascript\nmodule-type: global\n\nPerformance measurement.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Performance(enabled) {\n\tthis.enabled = !!enabled;\n\tthis.measures = {}; // Hashmap of current values of measurements\n\tthis.logger = new $tw.utils.Logger(\"performance\");\n}\n\n/*\nWrap performance reporting around a top level function\n*/\nPerformance.prototype.report = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tself.measures = {};\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tself.logger.log(name + \": \" + $tw.utils.timer(startTime).toFixed(2) + \"ms\");\n\t\t\tfor(var m in self.measures) {\n\t\t\t\tself.logger.log(\"+\" + m + \": \" + self.measures[m].toFixed(2) + \"ms\");\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\n/*\nWrap performance measurements around a subfunction\n*/\nPerformance.prototype.measure = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments),\n\t\t\t\tvalue = self.measures[name] || 0;\n\t\t\tself.measures[name] = value + $tw.utils.timer(startTime);\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nexports.Performance = Performance;\n\n})();\n",
            "title": "$:/core/modules/utils/performance.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/utils/pluginmaker.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/pluginmaker.js\ntype: application/javascript\nmodule-type: utils\n\nA quick and dirty way to pack up plugins within the browser.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRepack a plugin, and then delete any non-shadow payload tiddlers\n*/\nexports.repackPlugin = function(title,additionalTiddlers,excludeTiddlers) {\n\tadditionalTiddlers = additionalTiddlers || [];\n\texcludeTiddlers = excludeTiddlers || [];\n\t// Get the plugin tiddler\n\tvar pluginTiddler = $tw.wiki.getTiddler(title);\n\tif(!pluginTiddler) {\n\t\tthrow \"No such tiddler as \" + title;\n\t}\n\t// Extract the JSON\n\tvar jsonPluginTiddler;\n\ttry {\n\t\tjsonPluginTiddler = JSON.parse(pluginTiddler.fields.text);\n\t} catch(e) {\n\t\tthrow \"Cannot parse plugin tiddler \" + title + \"\\n\" + $tw.language.getString(\"Error/Caption\") + \": \" + e;\n\t}\n\t// Get the list of tiddlers\n\tvar tiddlers = Object.keys(jsonPluginTiddler.tiddlers);\n\t// Add the additional tiddlers\n\t$tw.utils.pushTop(tiddlers,additionalTiddlers);\n\t// Remove any excluded tiddlers\n\tfor(var t=tiddlers.length-1; t>=0; t--) {\n\t\tif(excludeTiddlers.indexOf(tiddlers[t]) !== -1) {\n\t\t\ttiddlers.splice(t,1);\n\t\t}\n\t}\n\t// Pack up the tiddlers into a block of JSON\n\tvar plugins = {};\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\tfields = {};\n\t\t$tw.utils.each(tiddler.fields,function (value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\tplugins[title] = fields;\n\t});\n\t// Retrieve and bump the version number\n\tvar pluginVersion = $tw.utils.parseVersion(pluginTiddler.getFieldString(\"version\") || \"0.0.0\") || {\n\t\t\tmajor: \"0\",\n\t\t\tminor: \"0\",\n\t\t\tpatch: \"0\"\n\t\t};\n\tpluginVersion.patch++;\n\tvar version = pluginVersion.major + \".\" + pluginVersion.minor + \".\" + pluginVersion.patch;\n\tif(pluginVersion.prerelease) {\n\t\tversion += \"-\" + pluginVersion.prerelease;\n\t}\n\tif(pluginVersion.build) {\n\t\tversion += \"+\" + pluginVersion.build;\n\t}\n\t// Save the tiddler\n\t$tw.wiki.addTiddler(new $tw.Tiddler(pluginTiddler,{text: JSON.stringify({tiddlers: plugins},null,4), version: version}));\n\t// Delete any non-shadow constituent tiddlers\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tif($tw.wiki.tiddlerExists(title)) {\n\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t}\n\t});\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t// Return a heartwarming confirmation\n\treturn \"Plugin \" + title + \" successfully saved\";\n};\n\n})();\n",
            "title": "$:/core/modules/utils/pluginmaker.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/utils.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/utils.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDisplay a warning, in colour if we're on a terminal\n*/\nexports.warning = function(text) {\n\tconsole.log($tw.node ? \"\\x1b[1;33m\" + text + \"\\x1b[0m\" : text);\n};\n\n/*\nRepeatedly replaces a substring within a string. Like String.prototype.replace, but without any of the default special handling of $ sequences in the replace string\n*/\nexports.replaceString = function(text,search,replace) {\n\treturn text.replace(search,function() {\n\t\treturn replace;\n\t});\n};\n\n/*\nRepeats a string\n*/\nexports.repeat = function(str,count) {\n\tvar result = \"\";\n\tfor(var t=0;t<count;t++) {\n\t\tresult += str;\n\t}\n\treturn result;\n};\n\n/*\nTrim whitespace from the start and end of a string\nThanks to Steven Levithan, http://blog.stevenlevithan.com/archives/faster-trim-javascript\n*/\nexports.trim = function(str) {\n\tif(typeof str === \"string\") {\n\t\treturn str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n\t} else {\n\t\treturn str;\n\t}\n};\n\n/*\nFind the line break preceding a given position in a string\nReturns position immediately after that line break, or the start of the string\n*/\nexports.findPrecedingLineBreak = function(text,pos) {\n\tvar result = text.lastIndexOf(\"\\n\",pos - 1);\n\tif(result === -1) {\n\t\tresult = 0;\n\t} else {\n\t\tresult++;\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nFind the line break following a given position in a string\n*/\nexports.findFollowingLineBreak = function(text,pos) {\n\t// Cut to just past the following line break, or to the end of the text\n\tvar result = text.indexOf(\"\\n\",pos);\n\tif(result === -1) {\n\t\tresult = text.length;\n\t} else {\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nReturn the number of keys in an object\n*/\nexports.count = function(object) {\n\treturn Object.keys(object || {}).length;\n};\n\n/*\nCheck if an array is equal by value and by reference.\n*/\nexports.isArrayEqual = function(array1,array2) {\n\tif(array1 === array2) {\n\t\treturn true;\n\t}\n\tarray1 = array1 || [];\n\tarray2 = array2 || [];\n\tif(array1.length !== array2.length) {\n\t\treturn false;\n\t}\n\treturn array1.every(function(value,index) {\n\t\treturn value === array2[index];\n\t});\n};\n\n/*\nPush entries onto an array, removing them first if they already exist in the array\n\tarray: array to modify (assumed to be free of duplicates)\n\tvalue: a single value to push or an array of values to push\n*/\nexports.pushTop = function(array,value) {\n\tvar t,p;\n\tif($tw.utils.isArray(value)) {\n\t\t// Remove any array entries that are duplicated in the new values\n\t\tif(value.length !== 0) {\n\t\t\tif(array.length !== 0) {\n\t\t\t\tif(value.length < array.length) {\n\t\t\t\t\tfor(t=0; t<value.length; t++) {\n\t\t\t\t\t\tp = array.indexOf(value[t]);\n\t\t\t\t\t\tif(p !== -1) {\n\t\t\t\t\t\t\tarray.splice(p,1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor(t=array.length-1; t>=0; t--) {\n\t\t\t\t\t\tp = value.indexOf(array[t]);\n\t\t\t\t\t\tif(p !== -1) {\n\t\t\t\t\t\t\tarray.splice(t,1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Push the values on top of the main array\n\t\t\tarray.push.apply(array,value);\n\t\t}\n\t} else {\n\t\tp = array.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tarray.splice(p,1);\n\t\t}\n\t\tarray.push(value);\n\t}\n\treturn array;\n};\n\n/*\nRemove entries from an array\n\tarray: array to modify\n\tvalue: a single value to remove, or an array of values to remove\n*/\nexports.removeArrayEntries = function(array,value) {\n\tvar t,p;\n\tif($tw.utils.isArray(value)) {\n\t\tfor(t=0; t<value.length; t++) {\n\t\t\tp = array.indexOf(value[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tarray.splice(p,1);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tp = array.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tarray.splice(p,1);\n\t\t}\n\t}\n};\n\n/*\nCheck whether any members of a hashmap are present in another hashmap\n*/\nexports.checkDependencies = function(dependencies,changes) {\n\tvar hit = false;\n\t$tw.utils.each(changes,function(change,title) {\n\t\tif($tw.utils.hop(dependencies,title)) {\n\t\t\thit = true;\n\t\t}\n\t});\n\treturn hit;\n};\n\nexports.extend = function(object /* [, src] */) {\n\t$tw.utils.each(Array.prototype.slice.call(arguments, 1), function(source) {\n\t\tif(source) {\n\t\t\tfor(var property in source) {\n\t\t\t\tobject[property] = source[property];\n\t\t\t}\n\t\t}\n\t});\n\treturn object;\n};\n\nexports.deepCopy = function(object) {\n\tvar result,t;\n\tif($tw.utils.isArray(object)) {\n\t\t// Copy arrays\n\t\tresult = object.slice(0);\n\t} else if(typeof object === \"object\") {\n\t\tresult = {};\n\t\tfor(t in object) {\n\t\t\tif(object[t] !== undefined) {\n\t\t\t\tresult[t] = $tw.utils.deepCopy(object[t]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tresult = object;\n\t}\n\treturn result;\n};\n\nexports.extendDeepCopy = function(object,extendedProperties) {\n\tvar result = $tw.utils.deepCopy(object),t;\n\tfor(t in extendedProperties) {\n\t\tif(extendedProperties[t] !== undefined) {\n\t\t\tresult[t] = $tw.utils.deepCopy(extendedProperties[t]);\n\t\t}\n\t}\n\treturn result;\n};\n\nexports.deepFreeze = function deepFreeze(object) {\n\tvar property, key;\n\tif(object) {\n\t\tObject.freeze(object);\n\t\tfor(key in object) {\n\t\t\tproperty = object[key];\n\t\t\tif($tw.utils.hop(object,key) && (typeof property === \"object\") && !Object.isFrozen(property)) {\n\t\t\t\tdeepFreeze(property);\n\t\t\t}\n\t\t}\n\t}\n};\n\nexports.slowInSlowOut = function(t) {\n\treturn (1 - ((Math.cos(t * Math.PI) + 1) / 2));\n};\n\nexports.formatDateString = function(date,template) {\n\tvar result = \"\",\n\t\tt = template,\n\t\tmatches = [\n\t\t\t[/^0hh12/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getHours12(date));\n\t\t\t}],\n\t\t\t[/^wYYYY/, function() {\n\t\t\t\treturn $tw.utils.getYearForWeekNo(date);\n\t\t\t}],\n\t\t\t[/^hh12/, function() {\n\t\t\t\treturn $tw.utils.getHours12(date);\n\t\t\t}],\n\t\t\t[/^DDth/, function() {\n\t\t\t\treturn date.getDate() + $tw.utils.getDaySuffix(date);\n\t\t\t}],\n\t\t\t[/^YYYY/, function() {\n\t\t\t\treturn date.getFullYear();\n\t\t\t}],\n\t\t\t[/^0hh/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getHours());\n\t\t\t}],\n\t\t\t[/^0mm/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMinutes());\n\t\t\t}],\n\t\t\t[/^0ss/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getSeconds());\n\t\t\t}],\n\t\t\t[/^0DD/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getDate());\n\t\t\t}],\n\t\t\t[/^0MM/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMonth()+1);\n\t\t\t}],\n\t\t\t[/^0WW/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getWeek(date));\n\t\t\t}],\n\t\t\t[/^ddd/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^mmm/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^DDD/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^MMM/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^TZD/, function() {\n\t\t\t\tvar tz = date.getTimezoneOffset(),\n\t\t\t\tatz = Math.abs(tz);\n\t\t\t\treturn (tz < 0 ? '+' : '-') + $tw.utils.pad(Math.floor(atz / 60)) + ':' + $tw.utils.pad(atz % 60);\n\t\t\t}],\n\t\t\t[/^wYY/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getYearForWeekNo(date) - 2000);\n\t\t\t}],\n\t\t\t[/^[ap]m/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toLowerCase();\n\t\t\t}],\n\t\t\t[/^hh/, function() {\n\t\t\t\treturn date.getHours();\n\t\t\t}],\n\t\t\t[/^mm/, function() {\n\t\t\t\treturn date.getMinutes();\n\t\t\t}],\n\t\t\t[/^ss/, function() {\n\t\t\t\treturn date.getSeconds();\n\t\t\t}],\n\t\t\t[/^[AP]M/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toUpperCase();\n\t\t\t}],\n\t\t\t[/^DD/, function() {\n\t\t\t\treturn date.getDate();\n\t\t\t}],\n\t\t\t[/^MM/, function() {\n\t\t\t\treturn date.getMonth() + 1;\n\t\t\t}],\n\t\t\t[/^WW/, function() {\n\t\t\t\treturn $tw.utils.getWeek(date);\n\t\t\t}],\n\t\t\t[/^YY/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getFullYear() - 2000);\n\t\t\t}]\n\t\t];\n\twhile(t.length){\n\t\tvar matchString = \"\";\n\t\t$tw.utils.each(matches, function(m) {\n\t\t\tvar match = m[0].exec(t);\n\t\t\tif(match) {\n\t\t\t\tmatchString = m[1].call();\n\t\t\t\tt = t.substr(match[0].length);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif(matchString) {\n\t\t\tresult += matchString;\n\t\t} else {\n\t\t\tresult += t.charAt(0);\n\t\t\tt = t.substr(1);\n\t\t}\n\t}\n\tresult = result.replace(/\\\\(.)/g,\"$1\");\n\treturn result;\n};\n\nexports.getAmPm = function(date) {\n\treturn $tw.language.getString(\"Date/Period/\" + (date.getHours() >= 12 ? \"pm\" : \"am\"));\n};\n\nexports.getDaySuffix = function(date) {\n\treturn $tw.language.getString(\"Date/DaySuffix/\" + date.getDate());\n};\n\nexports.getWeek = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week to calculate weekNo\n\tvar x = new Date(dt.getFullYear(),0,1);\n\tvar n = Math.floor((dt.getTime() - x.getTime()) / 86400000);\n\treturn Math.floor(n / 7) + 1;\n};\n\nexports.getYearForWeekNo = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week\n\treturn dt.getFullYear();\n};\n\nexports.getHours12 = function(date) {\n\tvar h = date.getHours();\n\treturn h > 12 ? h-12 : ( h > 0 ? h : 12 );\n};\n\n/*\nConvert a date delta in milliseconds into a string representation of \"23 seconds ago\", \"27 minutes ago\" etc.\n\tdelta: delta in milliseconds\nReturns an object with these members:\n\tdescription: string describing the delta period\n\tupdatePeriod: time in millisecond until the string will be inaccurate\n*/\nexports.getRelativeDate = function(delta) {\n\tvar futurep = false;\n\tif(delta < 0) {\n\t\tdelta = -1 * delta;\n\t\tfuturep = true;\n\t}\n\tvar units = [\n\t\t{name: \"Years\",   duration:      365 * 24 * 60 * 60 * 1000},\n\t\t{name: \"Months\",  duration: (365/12) * 24 * 60 * 60 * 1000},\n\t\t{name: \"Days\",    duration:            24 * 60 * 60 * 1000},\n\t\t{name: \"Hours\",   duration:                 60 * 60 * 1000},\n\t\t{name: \"Minutes\", duration:                      60 * 1000},\n\t\t{name: \"Seconds\", duration:                           1000}\n\t];\n\tfor(var t=0; t<units.length; t++) {\n\t\tvar result = Math.floor(delta / units[t].duration);\n\t\tif(result >= 2) {\n\t\t\treturn {\n\t\t\t\tdelta: delta,\n\t\t\t\tdescription: $tw.language.getString(\n\t\t\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/\" + units[t].name,\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{period: result.toString()}\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t\tupdatePeriod: units[t].duration\n\t\t\t};\n\t\t}\n\t}\n\treturn {\n\t\tdelta: delta,\n\t\tdescription: $tw.language.getString(\n\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/Second\",\n\t\t\t{variables:\n\t\t\t\t{period: \"1\"}\n\t\t\t}\n\t\t),\n\t\tupdatePeriod: 1000\n\t};\n};\n\n// Convert & to \"&amp;\", < to \"&lt;\", > to \"&gt;\", \" to \"&quot;\"\nexports.htmlEncode = function(s) {\n\tif(s) {\n\t\treturn s.toString().replace(/&/mg,\"&amp;\").replace(/</mg,\"&lt;\").replace(/>/mg,\"&gt;\").replace(/\\\"/mg,\"&quot;\");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n// Converts all HTML entities to their character equivalents\nexports.entityDecode = function(s) {\n\tvar converter = String.fromCodePoint || String.fromCharCode,\n\t\te = s.substr(1,s.length-2); // Strip the & and the ;\n\tif(e.charAt(0) === \"#\") {\n\t\tif(e.charAt(1) === \"x\" || e.charAt(1) === \"X\") {\n\t\t\treturn converter(parseInt(e.substr(2),16));\t\n\t\t} else {\n\t\t\treturn converter(parseInt(e.substr(1),10));\n\t\t}\n\t} else {\n\t\tvar c = $tw.config.htmlEntities[e];\n\t\tif(c) {\n\t\t\treturn converter(c);\n\t\t} else {\n\t\t\treturn s; // Couldn't convert it as an entity, just return it raw\n\t\t}\n\t}\n};\n\nexports.unescapeLineBreaks = function(s) {\n\treturn s.replace(/\\\\n/mg,\"\\n\").replace(/\\\\b/mg,\" \").replace(/\\\\s/mg,\"\\\\\").replace(/\\r/mg,\"\");\n};\n\n/*\n * Returns an escape sequence for given character. Uses \\x for characters <=\n * 0xFF to save space, \\u for the rest.\n *\n * The code needs to be in sync with th code template in the compilation\n * function for \"action\" nodes.\n */\n// Copied from peg.js, thanks to David Majda\nexports.escape = function(ch) {\n\tvar charCode = ch.charCodeAt(0);\n\tif(charCode <= 0xFF) {\n\t\treturn '\\\\x' + $tw.utils.pad(charCode.toString(16).toUpperCase());\n\t} else {\n\t\treturn '\\\\u' + $tw.utils.pad(charCode.toString(16).toUpperCase(),4);\n\t}\n};\n\n// Turns a string into a legal JavaScript string\n// Copied from peg.js, thanks to David Majda\nexports.stringify = function(s) {\n\t/*\n\t* ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a string\n\t* literal except for the closing quote character, backslash, carriage return,\n\t* line separator, paragraph separator, and line feed. Any character may\n\t* appear in the form of an escape sequence.\n\t*\n\t* For portability, we also escape all non-ASCII characters.\n\t*/\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\')            // backslash\n\t\t.replace(/\"/g, '\\\\\"')              // double quote character\n\t\t.replace(/'/g, \"\\\\'\")              // single quote character\n\t\t.replace(/\\r/g, '\\\\r')             // carriage return\n\t\t.replace(/\\n/g, '\\\\n')             // line feed\n\t\t.replace(/[\\x80-\\uFFFF]/g, exports.escape); // non-ASCII characters\n};\n\n/*\nEscape the RegExp special characters with a preceding backslash\n*/\nexports.escapeRegExp = function(s) {\n    return s.replace(/[\\-\\/\\\\\\^\\$\\*\\+\\?\\.\\(\\)\\|\\[\\]\\{\\}]/g, '\\\\$&');\n};\n\n// Checks whether a link target is external, i.e. not a tiddler title\nexports.isLinkExternal = function(to) {\n\tvar externalRegExp = /^(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/i;\n\treturn externalRegExp.test(to);\n};\n\nexports.nextTick = function(fn) {\n/*global window: false */\n\tif(typeof process === \"undefined\") {\n\t\t// Apparently it would be faster to use postMessage - http://dbaron.org/log/20100309-faster-timeouts\n\t\twindow.setTimeout(fn,4);\n\t} else {\n\t\tprocess.nextTick(fn);\n\t}\n};\n\n/*\nConvert a hyphenated CSS property name into a camel case one\n*/\nexports.unHyphenateCss = function(propName) {\n\treturn propName.replace(/-([a-z])/gi, function(match0,match1) {\n\t\treturn match1.toUpperCase();\n\t});\n};\n\n/*\nConvert a camelcase CSS property name into a dashed one (\"backgroundColor\" --> \"background-color\")\n*/\nexports.hyphenateCss = function(propName) {\n\treturn propName.replace(/([A-Z])/g, function(match0,match1) {\n\t\treturn \"-\" + match1.toLowerCase();\n\t});\n};\n\n/*\nParse a text reference of one of these forms:\n* title\n* !!field\n* title!!field\n* title##index\n* etc\nReturns an object with the following fields, all optional:\n* title: tiddler title\n* field: tiddler field name\n* index: JSON property index\n*/\nexports.parseTextReference = function(textRef) {\n\t// Separate out the title, field name and/or JSON indices\n\tvar reTextRef = /(?:(.*?)!!(.+))|(?:(.*?)##(.+))|(.*)/mg,\n\t\tmatch = reTextRef.exec(textRef),\n\t\tresult = {};\n\tif(match && reTextRef.lastIndex === textRef.length) {\n\t\t// Return the parts\n\t\tif(match[1]) {\n\t\t\tresult.title = match[1];\n\t\t}\n\t\tif(match[2]) {\n\t\t\tresult.field = match[2];\n\t\t}\n\t\tif(match[3]) {\n\t\t\tresult.title = match[3];\n\t\t}\n\t\tif(match[4]) {\n\t\t\tresult.index = match[4];\n\t\t}\n\t\tif(match[5]) {\n\t\t\tresult.title = match[5];\n\t\t}\n\t} else {\n\t\t// If we couldn't parse it\n\t\tresult.title = textRef\n\t}\n\treturn result;\n};\n\n/*\nChecks whether a string is a valid fieldname\n*/\nexports.isValidFieldName = function(name) {\n\tif(!name || typeof name !== \"string\") {\n\t\treturn false;\n\t}\n\tname = name.toLowerCase().trim();\n\tvar fieldValidatorRegEx = /^[a-z0-9\\-\\._]+$/mg;\n\treturn fieldValidatorRegEx.test(name);\n};\n\n/*\nExtract the version number from the meta tag or from the boot file\n*/\n\n// Browser version\nexports.extractVersionInfo = function() {\n\tif($tw.packageInfo) {\n\t\treturn $tw.packageInfo.version;\n\t} else {\n\t\tvar metatags = document.getElementsByTagName(\"meta\");\n\t\tfor(var t=0; t<metatags.length; t++) {\n\t\t\tvar m = metatags[t];\n\t\t\tif(m.name === \"tiddlywiki-version\") {\n\t\t\t\treturn m.content;\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the animation duration in ms\n*/\nexports.getAnimationDuration = function() {\n\treturn parseInt($tw.wiki.getTiddlerText(\"$:/config/AnimationDuration\",\"400\"),10);\n};\n\n/*\nHash a string to a number\nDerived from http://stackoverflow.com/a/15710692\n*/\nexports.hashString = function(str) {\n\treturn str.split(\"\").reduce(function(a,b) {\n\t\ta = ((a << 5) - a) + b.charCodeAt(0);\n\t\treturn a & a;\n\t},0);\n};\n\n/*\nDecode a base64 string\n*/\nexports.base64Decode = function(string64) {\n\tif($tw.browser) {\n\t\t// TODO\n\t\tthrow \"$tw.utils.base64Decode() doesn't work in the browser\";\n\t} else {\n\t\treturn (new Buffer(string64,\"base64\")).toString();\n\t}\n};\n\n/*\nConvert a hashmap into a tiddler dictionary format sequence of name:value pairs\n*/\nexports.makeTiddlerDictionary = function(data) {\n\tvar output = [];\n\tfor(var name in data) {\n\t\toutput.push(name + \": \" + data[name]);\n\t}\n\treturn output.join(\"\\n\");\n};\n\n/*\nHigh resolution microsecond timer for profiling\n*/\nexports.timer = function(base) {\n\tvar m;\n\tif($tw.node) {\n\t\tvar r = process.hrtime();\t\t\n\t\tm =  r[0] * 1e3 + (r[1] / 1e6);\n\t} else if(window.performance) {\n\t\tm = performance.now();\n\t} else {\n\t\tm = Date.now();\n\t}\n\tif(typeof base !== \"undefined\") {\n\t\tm = m - base;\n\t}\n\treturn m;\n};\n\n/*\nConvert text and content type to a data URI\n*/\nexports.makeDataUri = function(text,type) {\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar typeInfo = $tw.config.contentTypeInfo[type] || $tw.config.contentTypeInfo[\"text/plain\"],\n\t\tisBase64 = typeInfo.encoding === \"base64\",\n\t\tparts = [];\n\tparts.push(\"data:\");\n\tparts.push(type);\n\tparts.push(isBase64 ? \";base64\" : \"\");\n\tparts.push(\",\");\n\tparts.push(isBase64 ? text : encodeURIComponent(text));\n\treturn parts.join(\"\");\n};\n\n/*\nUseful for finding out the fully escaped CSS selector equivalent to a given tag. For example:\n\n$tw.utils.tagToCssSelector(\"$:/tags/Stylesheet\") --> tc-tagged-\\%24\\%3A\\%2Ftags\\%2FStylesheet\n*/\nexports.tagToCssSelector = function(tagName) {\n\treturn \"tc-tagged-\" + encodeURIComponent(tagName).replace(/[!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^`{\\|}~,]/mg,function(c) {\n\t\treturn \"\\\\\" + c;\n\t});\n};\n\n/*\nIE does not have sign function\n*/\nexports.sign = Math.sign || function(x) {\n\tx = +x; // convert to a number\n\tif (x === 0 || isNaN(x)) {\n\t\treturn x;\n\t}\n\treturn x > 0 ? 1 : -1;\n};\n\n/*\nIE does not have an endsWith function\n*/\nexports.strEndsWith = function(str,ending,position) {\n\tif(str.endsWith) {\n\t\treturn str.endsWith(ending,position);\n\t} else {\n\t\tif (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > str.length) {\n\t\t\tposition = str.length;\n\t\t}\n\t\tposition -= ending.length;\n\t\tvar lastIndex = str.indexOf(ending, position);\n\t\treturn lastIndex !== -1 && lastIndex === position;\n\t}\n};\n\n/*\nTransliterate string from eg. Cyrillic Russian to Latin\n*/\nvar transliterationPairs = {\n\t\"Ё\":\"YO\",\n\t\"Й\":\"I\",\n\t\"Ц\":\"TS\",\n\t\"У\":\"U\",\n\t\"К\":\"K\",\n\t\"Е\":\"E\",\n\t\"Н\":\"N\",\n\t\"Г\":\"G\",\n\t\"Ш\":\"SH\",\n\t\"Щ\":\"SCH\",\n\t\"З\":\"Z\",\n\t\"Х\":\"H\",\n\t\"Ъ\":\"'\",\n\t\"ё\":\"yo\",\n\t\"й\":\"i\",\n\t\"ц\":\"ts\",\n\t\"у\":\"u\",\n\t\"к\":\"k\",\n\t\"е\":\"e\",\n\t\"н\":\"n\",\n\t\"г\":\"g\",\n\t\"ш\":\"sh\",\n\t\"щ\":\"sch\",\n\t\"з\":\"z\",\n\t\"х\":\"h\",\n\t\"ъ\":\"'\",\n\t\"Ф\":\"F\",\n\t\"Ы\":\"I\",\n\t\"В\":\"V\",\n\t\"А\":\"a\",\n\t\"П\":\"P\",\n\t\"Р\":\"R\",\n\t\"О\":\"O\",\n\t\"Л\":\"L\",\n\t\"Д\":\"D\",\n\t\"Ж\":\"ZH\",\n\t\"Э\":\"E\",\n\t\"ф\":\"f\",\n\t\"ы\":\"i\",\n\t\"в\":\"v\",\n\t\"а\":\"a\",\n\t\"п\":\"p\",\n\t\"р\":\"r\",\n\t\"о\":\"o\",\n\t\"л\":\"l\",\n\t\"д\":\"d\",\n\t\"ж\":\"zh\",\n\t\"э\":\"e\",\n\t\"Я\":\"Ya\",\n\t\"Ч\":\"CH\",\n\t\"С\":\"S\",\n\t\"М\":\"M\",\n\t\"И\":\"I\",\n\t\"Т\":\"T\",\n\t\"Ь\":\"'\",\n\t\"Б\":\"B\",\n\t\"Ю\":\"YU\",\n\t\"я\":\"ya\",\n\t\"ч\":\"ch\",\n\t\"с\":\"s\",\n\t\"м\":\"m\",\n\t\"и\":\"i\",\n\t\"т\":\"t\",\n\t\"ь\":\"'\",\n\t\"б\":\"b\",\n\t\"ю\":\"yu\"\n};\n\nexports.transliterate = function(str) {\n\treturn str.split(\"\").map(function(char) {\n\t\treturn transliterationPairs[char] || char;\n\t}).join(\"\");\n};\n\n})();\n",
            "title": "$:/core/modules/utils/utils.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/widgets/action-createtiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-createtiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to create a new tiddler with a unique name and specified fields.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CreateTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCreateTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCreateTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nCreateTiddlerWidget.prototype.execute = function() {\n\tthis.actionBaseTitle = this.getAttribute(\"$basetitle\");\n\tthis.actionSaveTitle = this.getAttribute(\"$savetitle\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nCreateTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nCreateTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar title = this.wiki.generateNewTitle(this.actionBaseTitle),\n\t\tfields = {},\n\t\tcreationFields,\n\t\tmodificationFields;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tfields[name] = attribute;\n\t\t}\n\t});\n\tif(this.actionTimestamp) {\n\t\tcreationFields = this.wiki.getCreationFields();\n\t\tmodificationFields = this.wiki.getModificationFields();\n\t}\n\tvar tiddler = this.wiki.addTiddler(new $tw.Tiddler(creationFields,fields,modificationFields,{title: title}));\n\tif(this.actionSaveTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveTitle,title,this.getVariable(\"currentTiddler\"));\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-createtiddler\"] = CreateTiddlerWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-createtiddler.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-deletefield.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-deletefield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete fields of a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\ttiddler = this.wiki.getTiddler(self.actionTiddler),\n\t\tremoveFields = {},\n\t\thasChanged = false;\n\tif(this.actionField) {\n\t\tremoveFields[this.actionField] = undefined;\n\t\tif(this.actionField in tiddler.fields) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(tiddler) {\n\t\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\t\tif(name.charAt(0) !== \"$\" && name !== \"title\") {\n\t\t\t\tremoveFields[name] = undefined;\n\t\t\t\thasChanged = true;\n\t\t\t}\n\t\t});\n\t\tif(hasChanged) {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,removeFields,this.wiki.getModificationFields()));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletefield\"] = DeleteFieldWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-deletefield.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-deletetiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-deletetiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteTiddlerWidget.prototype.execute = function() {\n\tthis.actionFilter = this.getAttribute(\"$filter\");\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$filter\"] || changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar tiddlers = [];\n\tif(this.actionFilter) {\n\t\ttiddlers = this.wiki.filterTiddlers(this.actionFilter,this);\n\t}\n\tif(this.actionTiddler) {\n\t\ttiddlers.push(this.actionTiddler);\n\t}\n\tfor(var t=0; t<tiddlers.length; t++) {\n\t\tthis.wiki.deleteTiddler(tiddlers[t]);\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletetiddler\"] = DeleteTiddlerWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-deletetiddler.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-listops.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-listops.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to apply list operations to any tiddler field (defaults to the 'list' field of the current tiddler)\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar ActionListopsWidget = function(parseTreeNode, options) {\n\tthis.initialise(parseTreeNode, options);\n};\n/**\n * Inherit from the base widget class\n */\nActionListopsWidget.prototype = new Widget();\n/**\n * Render this widget into the DOM\n */\nActionListopsWidget.prototype.render = function(parent, nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n/**\n * Compute the internal state of the widget\n */\nActionListopsWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.target = this.getAttribute(\"$tiddler\", this.getVariable(\n\t\t\"currentTiddler\"));\n\tthis.filter = this.getAttribute(\"$filter\");\n\tthis.subfilter = this.getAttribute(\"$subfilter\");\n\tthis.listField = this.getAttribute(\"$field\", \"list\");\n\tthis.listIndex = this.getAttribute(\"$index\");\n\tthis.filtertags = this.getAttribute(\"$tags\");\n};\n/**\n * \tRefresh the widget by ensuring our attributes are up to date\n */\nActionListopsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.$tiddler || changedAttributes.$filter ||\n\t\tchangedAttributes.$subfilter || changedAttributes.$field ||\n\t\tchangedAttributes.$index || changedAttributes.$tags) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n/**\n * \tInvoke the action associated with this widget\n */\nActionListopsWidget.prototype.invokeAction = function(triggeringWidget,\n\tevent) {\n\t//Apply the specified filters to the lists\n\tvar field = this.listField,\n\t\tindex,\n\t\ttype = \"!!\",\n\t\tlist = this.listField;\n\tif(this.listIndex) {\n\t\tfield = undefined;\n\t\tindex = this.listIndex;\n\t\ttype = \"##\";\n\t\tlist = this.listIndex;\n\t}\n\tif(this.filter) {\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(this.filter, this)));\n\t}\n\tif(this.subfilter) {\n\t\tvar subfilter = \"[list[\" + this.target + type + list + \"]] \" + this.subfilter;\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(subfilter, this)));\n\t}\n\tif(this.filtertags) {\n\t\tvar tiddler = this.wiki.getTiddler(this.target),\n\t\t\toldtags = tiddler ? (tiddler.fields.tags || []).slice(0) : [],\n\t\t\ttagfilter = \"[list[\" + this.target + \"!!tags]] \" + this.filtertags,\n\t\t\tnewtags = this.wiki.filterTiddlers(tagfilter,this);\n\t\tif($tw.utils.stringifyList(oldtags.sort()) !== $tw.utils.stringifyList(newtags.sort())) {\n\t\t\tthis.wiki.setText(this.target,\"tags\",undefined,$tw.utils.stringifyList(newtags));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-listops\"] = ActionListopsWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-listops.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-navigate.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-navigate.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to navigate to a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigateWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigateWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigateWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigateWidget.prototype.execute = function() {\n\tthis.actionTo = this.getAttribute(\"$to\");\n\tthis.actionScroll = this.getAttribute(\"$scroll\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nNavigateWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$to\"] || changedAttributes[\"$scroll\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nNavigateWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar bounds = triggeringWidget && triggeringWidget.getBoundingClientRect && triggeringWidget.getBoundingClientRect(),\n\t\tsuppressNavigation = event.metaKey || event.ctrlKey || (event.button === 1);\n\tif(this.actionScroll === \"yes\") {\n\t\tsuppressNavigation = false;\n\t} else if(this.actionScroll === \"no\") {\n\t\tsuppressNavigation = true;\n\t}\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.actionTo === undefined ? this.getVariable(\"currentTiddler\") : this.actionTo,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: triggeringWidget,\n\t\tnavigateFromClientRect: bounds && { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: suppressNavigation\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-navigate\"] = NavigateWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-navigate.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-sendmessage.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-sendmessage.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to send a message\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SendMessageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSendMessageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSendMessageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSendMessageWidget.prototype.execute = function() {\n\tthis.actionMessage = this.getAttribute(\"$message\");\n\tthis.actionParam = this.getAttribute(\"$param\");\n\tthis.actionName = this.getAttribute(\"$name\");\n\tthis.actionValue = this.getAttribute(\"$value\",\"\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSendMessageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSendMessageWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Get the string parameter\n\tvar param = this.actionParam;\n\t// Assemble the attributes as a hashmap\n\tvar paramObject = Object.create(null);\n\tvar count = 0;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparamObject[name] = attribute;\n\t\t\tcount++;\n\t\t}\n\t});\n\t// Add name/value pair if present\n\tif(this.actionName) {\n\t\tparamObject[this.actionName] = this.actionValue;\n\t}\n\t// Dispatch the message\n\tthis.dispatchEvent({\n\t\ttype: this.actionMessage,\n\t\tparam: param,\n\t\tparamObject: paramObject,\n\t\ttiddlerTitle: this.getVariable(\"currentTiddler\"),\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tevent: event\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-sendmessage\"] = SendMessageWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-sendmessage.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-setfield.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-setfield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to set a single field or index on a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n\tthis.actionIndex = this.getAttribute(\"$index\");\n\tthis.actionValue = this.getAttribute(\"$value\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSetFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"] || changedAttributes[\"$field\"] || changedAttributes[\"$index\"] || changedAttributes[\"$value\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSetFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\toptions = {};\n\toptions.suppressTimestamp = !this.actionTimestamp;\n\tif((typeof this.actionField == \"string\") || (typeof this.actionIndex == \"string\")  || (typeof this.actionValue == \"string\")) {\n\t\tthis.wiki.setText(this.actionTiddler,this.actionField,this.actionIndex,this.actionValue,options);\n\t}\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tself.wiki.setText(self.actionTiddler,name,undefined,attribute,options);\n\t\t}\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-setfield\"] = SetFieldWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-setfield.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/browse.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/browse.js\ntype: application/javascript\nmodule-type: widget\n\nBrowse widget for browsing for files to import\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar BrowseWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nBrowseWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nBrowseWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"file\");\n\tif(this.browseMultiple) {\n\t\tdomNode.setAttribute(\"multiple\",\"multiple\");\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\t// Nw.js supports \"nwsaveas\" to force a \"save as\" dialogue that allows a new or existing file to be selected\n\tif(this.nwsaveas) {\n\t\tdomNode.setAttribute(\"nwsaveas\",this.nwsaveas);\n\t}\n\t// Nw.js supports \"webkitdirectory\" to allow a directory to be selected\n\tif(this.webkitdirectory) {\n\t\tdomNode.setAttribute(\"webkitdirectory\",this.webkitdirectory);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"change\",function (event) {\n\t\tif(self.message) {\n\t\t\tself.dispatchEvent({type: self.message, param: self.param, files: event.target.files});\n\t\t} else {\n\t\t\tself.wiki.readFiles(event.target.files,function(tiddlerFieldsArray) {\n\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t\t});\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nBrowseWidget.prototype.execute = function() {\n\tthis.browseMultiple = this.getAttribute(\"multiple\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.nwsaveas = this.getAttribute(\"nwsaveas\");\n\tthis.webkitdirectory = this.getAttribute(\"webkitdirectory\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nBrowseWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.browse = BrowseWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/browse.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/button.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/button.js\ntype: application/javascript\nmodule-type: widget\n\nButton widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ButtonWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nButtonWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nButtonWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar tag = \"button\";\n\tif(this.buttonTag && $tw.config.htmlUnsafeElements.indexOf(this.buttonTag) === -1) {\n\t\ttag = this.buttonTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = this[\"class\"].split(\" \") || [],\n\t\tisPoppedUp = this.popup && this.isPoppedUp();\n\tif(this.selectedClass) {\n\t\tif(this.set && this.setTo && this.isSelected()) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t\tif(isPoppedUp) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t}\n\tif(isPoppedUp) {\n\t\t$tw.utils.pushTop(classes,\"tc-popup-handle\");\n\t}\n\tdomNode.className = classes.join(\" \");\n\t// Assign other attributes\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"click\",function (event) {\n\t\tvar handled = false;\n\t\tif(self.invokeActions(this,event)) {\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.to) {\n\t\t\tself.navigateTo(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.message) {\n\t\t\tself.dispatchMessage(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.popup) {\n\t\t\tself.triggerPopup(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.set) {\n\t\t\tself.setTiddler();\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.actions) {\n\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t}\n\t\tif(handled) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\treturn handled;\n\t},false);\n\t// Make it draggable if required\n\tif(this.dragTiddler || this.dragFilter) {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.dragTiddler;},\n\t\t\tdragFilterFn: function() {return self.dragFilter;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nWe don't allow actions to propagate because we trigger actions ourselves\n*/\nButtonWidget.prototype.allowActionPropagation = function() {\n\treturn false;\n};\n\nButtonWidget.prototype.getBoundingClientRect = function() {\n\treturn this.domNodes[0].getBoundingClientRect();\n};\n\nButtonWidget.prototype.isSelected = function() {\n    return this.wiki.getTextReference(this.set,this.defaultSetValue,this.getVariable(\"currentTiddler\")) === this.setTo;\n};\n\nButtonWidget.prototype.isPoppedUp = function() {\n\tvar tiddler = this.wiki.getTiddler(this.popup);\n\tvar result = tiddler && tiddler.fields.text ? $tw.popup.readPopupState(tiddler.fields.text) : false;\n\treturn result;\n};\n\nButtonWidget.prototype.navigateTo = function(event) {\n\tvar bounds = this.getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tevent: event\n\t});\n};\n\nButtonWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\"), event: event});\n};\n\nButtonWidget.prototype.triggerPopup = function(event) {\n\t$tw.popup.triggerPopup({\n\t\tdomNode: this.domNodes[0],\n\t\ttitle: this.popup,\n\t\twiki: this.wiki\n\t});\n};\n\nButtonWidget.prototype.setTiddler = function() {\n\tthis.wiki.setTextReference(this.set,this.setTo,this.getVariable(\"currentTiddler\"));\n};\n\n/*\nCompute the internal state of the widget\n*/\nButtonWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\");\n\tthis.to = this.getAttribute(\"to\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.set = this.getAttribute(\"set\");\n\tthis.setTo = this.getAttribute(\"setTo\");\n\tthis.popup = this.getAttribute(\"popup\");\n\tthis.hover = this.getAttribute(\"hover\");\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.style = this.getAttribute(\"style\");\n\tthis.selectedClass = this.getAttribute(\"selectedClass\");\n\tthis.defaultSetValue = this.getAttribute(\"default\",\"\");\n\tthis.buttonTag = this.getAttribute(\"tag\");\n\tthis.dragTiddler = this.getAttribute(\"dragTiddler\");\n\tthis.dragFilter = this.getAttribute(\"dragFilter\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nButtonWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedAttributes.message || changedAttributes.param || changedAttributes.set || changedAttributes.setTo || changedAttributes.popup || changedAttributes.hover || changedAttributes[\"class\"] || changedAttributes.selectedClass || changedAttributes.style || changedAttributes.dragFilter || changedAttributes.dragTiddler || (this.set && changedTiddlers[this.set]) || (this.popup && changedTiddlers[this.popup])) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.button = ButtonWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/button.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/checkbox.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/checkbox.js\ntype: application/javascript\nmodule-type: widget\n\nCheckbox widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CheckboxWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCheckboxWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCheckboxWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",this.checkboxClass);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"checkbox\");\n\tif(this.getValue()) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nCheckboxWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.checkboxTitle);\n\tif(tiddler) {\n\t\tif(this.checkboxTag) {\n\t\t\tif(this.checkboxInvertTag) {\n\t\t\t\treturn !tiddler.hasTag(this.checkboxTag);\n\t\t\t} else {\n\t\t\t\treturn tiddler.hasTag(this.checkboxTag);\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tvar value;\n\t\t\tif($tw.utils.hop(tiddler.fields,this.checkboxField)) {\n\t\t\t\tvalue = tiddler.fields[this.checkboxField] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.checkboxDefault || \"\";\n\t\t\t}\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxIndex) {\n\t\t\tvar value = this.wiki.extractTiddlerDataItem(tiddler,this.checkboxIndex,this.checkboxDefault || \"\");\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif(this.checkboxTag) {\n\t\t\treturn false;\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tif(this.checkboxDefault === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(this.checkboxDefault === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nCheckboxWidget.prototype.handleChangeEvent = function(event) {\n\tvar checked = this.inputDomNode.checked,\n\t\ttiddler = this.wiki.getTiddler(this.checkboxTitle),\n\t\tfallbackFields = {text: \"\"},\n\t\tnewFields = {title: this.checkboxTitle},\n\t\thasChanged = false,\n\t\ttagCheck = false,\n\t\thasTag = tiddler && tiddler.hasTag(this.checkboxTag),\n\t\tvalue = checked ? this.checkboxChecked : this.checkboxUnchecked;\n\tif(this.checkboxTag && this.checkboxInvertTag === \"yes\") {\n\t\ttagCheck = hasTag === checked;\n\t} else {\n\t\ttagCheck = hasTag !== checked;\n\t}\n\t// Set the tag if specified\n\tif(this.checkboxTag && (!tiddler || tagCheck)) {\n\t\tnewFields.tags = tiddler ? (tiddler.fields.tags || []).slice(0) : [];\n\t\tvar pos = newFields.tags.indexOf(this.checkboxTag);\n\t\tif(pos !== -1) {\n\t\t\tnewFields.tags.splice(pos,1);\n\t\t}\n\t\tif(this.checkboxInvertTag === \"yes\" && !checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t} else if(this.checkboxInvertTag !== \"yes\" && checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t}\n\t\thasChanged = true;\n\t}\n\t// Set the field if specified\n\tif(this.checkboxField) {\n\t\tif(!tiddler || tiddler.fields[this.checkboxField] !== value) {\n\t\t\tnewFields[this.checkboxField] = value;\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\t// Set the index if specified\n\tif(this.checkboxIndex) {\n\t\tvar indexValue = this.wiki.extractTiddlerDataItem(this.checkboxTitle,this.checkboxIndex);\n\t\tif(!tiddler || indexValue !== value) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(hasChanged) {\n\t\tif(this.checkboxIndex) {\n\t\t\tthis.wiki.setText(this.checkboxTitle,\"\",this.checkboxIndex,value);\n\t\t} else {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),fallbackFields,tiddler,newFields,this.wiki.getModificationFields()));\n\t\t}\n\t}\n\t// Trigger actions\n\tif(this.checkboxActions) {\n\t\tthis.invokeActionString(this.checkboxActions,this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCheckboxWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.checkboxActions = this.getAttribute(\"actions\");\n\tthis.checkboxTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.checkboxTag = this.getAttribute(\"tag\");\n\tthis.checkboxField = this.getAttribute(\"field\");\n\tthis.checkboxIndex = this.getAttribute(\"index\");\n\tthis.checkboxChecked = this.getAttribute(\"checked\");\n\tthis.checkboxUnchecked = this.getAttribute(\"unchecked\");\n\tthis.checkboxDefault = this.getAttribute(\"default\");\n\tthis.checkboxClass = this.getAttribute(\"class\",\"\");\n\tthis.checkboxInvertTag = this.getAttribute(\"invertTag\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCheckboxWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.tag || changedAttributes.invertTag || changedAttributes.field || changedAttributes.index || changedAttributes.checked || changedAttributes.unchecked || changedAttributes[\"default\"] || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.checkboxTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue();\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.checkbox = CheckboxWidget;\n\n})();",
            "title": "$:/core/modules/widgets/checkbox.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/codeblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/codeblock.js\ntype: application/javascript\nmodule-type: widget\n\nCode block node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CodeBlockWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCodeBlockWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCodeBlockWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar codeNode = this.document.createElement(\"code\"),\n\t\tdomNode = this.document.createElement(\"pre\");\n\tcodeNode.appendChild(this.document.createTextNode(this.getAttribute(\"code\")));\n\tdomNode.appendChild(codeNode);\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n\tif(this.postRender) {\n\t\tthis.postRender();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCodeBlockWidget.prototype.execute = function() {\n\tthis.language = this.getAttribute(\"language\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCodeBlockWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.codeblock = CodeBlockWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/codeblock.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/count.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/count.js\ntype: application/javascript\nmodule-type: widget\n\nCount widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CountWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCountWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCountWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.currentCount);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nCountWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Execute the filter\n\tif(this.filter) {\n\t\tthis.currentCount = this.wiki.filterTiddlers(this.filter,this).length;\n\t} else {\n\t\tthis.currentCount = undefined;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCountWidget.prototype.refresh = function(changedTiddlers) {\n\t// Re-execute the filter to get the count\n\tthis.computeAttributes();\n\tvar oldCount = this.currentCount;\n\tthis.execute();\n\tif(this.currentCount !== oldCount) {\n\t\t// Regenerate and rerender the widget and replace the existing DOM node\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n\n};\n\nexports.count = CountWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/count.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/draggable.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/draggable.js\ntype: application/javascript\nmodule-type: widget\n\nDraggable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DraggableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDraggableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDraggableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Sanitise the specified tag\n\tvar tag = this.draggableTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"div\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [\"tc-draggable\"];\n\tif(this.draggableClasses) {\n\t\tclasses.push(this.draggableClasses);\n\t}\n\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t// Add event handlers\n\t$tw.utils.makeDraggable({\n\t\tdomNode: domNode,\n\t\tdragTiddlerFn: function() {return self.getAttribute(\"tiddler\");},\n\t\tdragFilterFn: function() {return self.getAttribute(\"filter\");},\n\t\twidget: this\n\t});\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nDraggableWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.draggableTag = this.getAttribute(\"tag\",\"div\");\n\tthis.draggableClasses = this.getAttribute(\"class\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDraggableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedTiddlers.tag || changedTiddlers[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.draggable = DraggableWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/draggable.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/droppable.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/droppable.js\ntype: application/javascript\nmodule-type: widget\n\nDroppable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DroppableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDroppableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDroppableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.droppableTag && $tw.config.htmlUnsafeElements.indexOf(this.droppableTag) === -1) {\n\t\ttag = this.droppableTag;\n\t}\n\t// Create element and assign classes\n\tvar domNode = this.document.createElement(tag),\n\t\tclasses = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-droppable\");\n\tdomNode.className = classes.join(\" \");\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"}\n\t]);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDroppableWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDroppableWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally. The hacky second condition is to resolve a problem with Firefox whereby there is an erroneous dragenter event if the node being dragged is within the dropzone\n\tif(this.currentlyEntered.length === 0 || (this.currentlyEntered.length === 1 && this.currentlyEntered[0] === $tw.dragInProgress)) {\n\t\tthis.currentlyEntered = [];\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDroppableWidget.prototype.handleDragEnterEvent  = function(event) {\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragOverEvent  = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\t// Set the drop effect\n\tevent.dataTransfer.dropEffect = this.droppableEffect;\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragLeaveEvent  = function(event) {\n\tthis.leaveDrag(event);\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDropEvent  = function(event) {\n\tvar self = this;\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\tvar dataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Try to import the various data types we understand\n\t$tw.utils.importDataTransfer(dataTransfer,null,function(fieldsArray) {\n\t\tfieldsArray.forEach(function(fields) {\n\t\t\tself.performActions(fields.title || fields.text,event);\n\t\t});\n\t});\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.performActions = function(title,event) {\n\tif(this.droppableActions) {\n\t\tthis.invokeActionString(this.droppableActions,this,event,{actionTiddler: title});\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDroppableWidget.prototype.execute = function() {\n\tthis.droppableActions = this.getAttribute(\"actions\");\n\tthis.droppableEffect = this.getAttribute(\"effect\",\"copy\");\n\tthis.droppableTag = this.getAttribute(\"tag\");\n\tthis.droppableClass = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDroppableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"] || changedAttributes.tag) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.droppable = DroppableWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/droppable.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/dropzone.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/dropzone.js\ntype: application/javascript\nmodule-type: widget\n\nDropzone widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DropZoneWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDropZoneWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDropZoneWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"div\");\n\tdomNode.className = \"tc-dropzone\";\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"},\n\t\t{name: \"paste\", handlerObject: this, handlerMethod: \"handlePasteEvent\"}\n\t]);\n\tdomNode.addEventListener(\"click\",function (event) {\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDropZoneWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDropZoneWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally\n\tif(this.currentlyEntered.length === 0) {\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDropZoneWidget.prototype.handleDragEnterEvent  = function(event) {\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handleDragOverEvent  = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\tevent.dataTransfer.dropEffect = \"copy\"; // Explicitly show this is a copy\n};\n\nDropZoneWidget.prototype.handleDragLeaveEvent  = function(event) {\n\tthis.leaveDrag(event);\n};\n\nDropZoneWidget.prototype.handleDropEvent  = function(event) {\n\tvar self = this;\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tvar self = this,\n\t\tdataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Import any files in the drop\n\tvar numFiles = 0;\n\tif(dataTransfer.files) {\n\t\tnumFiles = this.wiki.readFiles(dataTransfer.files,function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t});\n\t}\n\t// Try to import the various data types we understand\n\tif(numFiles === 0) {\n\t\t$tw.utils.importDataTransfer(dataTransfer,this.wiki.generateNewTitle(\"Untitled\"),function(fieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(fieldsArray)});\n\t\t});\n\t}\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handlePasteEvent  = function(event) {\n\t// Let the browser handle it if we're in a textarea or input box\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) == -1) {\n\t\tvar self = this,\n\t\t\titems = event.clipboardData.items;\n\t\t// Enumerate the clipboard items\n\t\tfor(var t = 0; t<items.length; t++) {\n\t\t\tvar item = items[t];\n\t\t\tif(item.kind === \"file\") {\n\t\t\t\t// Import any files\n\t\t\t\tthis.wiki.readFile(item.getAsFile(),function(tiddlerFieldsArray) {\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t\t\t});\n\t\t\t} else if(item.kind === \"string\") {\n\t\t\t\t// Create tiddlers from string items\n\t\t\t\tvar type = item.type;\n\t\t\t\titem.getAsString(function(str) {\n\t\t\t\t\tvar tiddlerFields = {\n\t\t\t\t\t\ttitle: self.wiki.generateNewTitle(\"Untitled\"),\n\t\t\t\t\t\ttext: str,\n\t\t\t\t\t\ttype: type\n\t\t\t\t\t};\n\t\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\t\tconsole.log(\"Importing string '\" + str + \"', type: '\" + type + \"'\");\n\t\t\t\t\t}\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify([tiddlerFields])});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\t// Tell the browser that we've handled the paste\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDropZoneWidget.prototype.execute = function() {\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDropZoneWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.dropzone = DropZoneWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/dropzone.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit-binary.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit-binary.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-binary widget; placeholder for editing binary tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBinaryWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBinaryWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBinaryWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBinaryWidget.prototype.execute = function() {\n\t// Construct the child widgets\n\tthis.makeChildWidgets([{\n\t\ttype: \"transclude\",\n\t\tattributes: {\n\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t}\n\t}]);\n};\n\n/*\nRefresh by refreshing our child widget\n*/\nEditBinaryWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"edit-binary\"] = EditBinaryWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/edit-binary.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit-bitmap.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit-bitmap.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-bitmap widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Default image sizes\nvar DEFAULT_IMAGE_WIDTH = 600,\n\tDEFAULT_IMAGE_HEIGHT = 370;\n\n// Configuration tiddlers\nvar LINE_WIDTH_TITLE = \"$:/config/BitmapEditor/LineWidth\",\n\tLINE_COLOUR_TITLE = \"$:/config/BitmapEditor/Colour\",\n\tLINE_OPACITY_TITLE = \"$:/config/BitmapEditor/Opacity\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBitmapWidget = function(parseTreeNode,options) {\n\t// Initialise the editor operations if they've not been done already\n\tif(!this.editorOperations) {\n\t\tEditBitmapWidget.prototype.editorOperations = {};\n\t\t$tw.modules.applyMethods(\"bitmapeditoroperation\",this.editorOperations);\n\t}\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBitmapWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBitmapWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create the wrapper for the toolbar and render its content\n\tthis.toolbarNode = this.document.createElement(\"div\");\n\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\tparent.insertBefore(this.toolbarNode,nextSibling);\n\tthis.domNodes.push(this.toolbarNode);\n\t// Create the on-screen canvas\n\tthis.canvasDomNode = $tw.utils.domMaker(\"canvas\",{\n\t\tdocument: this.document,\n\t\t\"class\":\"tc-edit-bitmapeditor\",\n\t\teventListeners: [{\n\t\t\tname: \"touchstart\", handlerObject: this, handlerMethod: \"handleTouchStartEvent\"\n\t\t},{\n\t\t\tname: \"touchmove\", handlerObject: this, handlerMethod: \"handleTouchMoveEvent\"\n\t\t},{\n\t\t\tname: \"touchend\", handlerObject: this, handlerMethod: \"handleTouchEndEvent\"\n\t\t},{\n\t\t\tname: \"mousedown\", handlerObject: this, handlerMethod: \"handleMouseDownEvent\"\n\t\t},{\n\t\t\tname: \"mousemove\", handlerObject: this, handlerMethod: \"handleMouseMoveEvent\"\n\t\t},{\n\t\t\tname: \"mouseup\", handlerObject: this, handlerMethod: \"handleMouseUpEvent\"\n\t\t}]\n\t});\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Render toolbar child widgets\n\tthis.renderChildren(this.toolbarNode,null);\n\t// // Insert the elements into the DOM\n\tparent.insertBefore(this.canvasDomNode,nextSibling);\n\tthis.domNodes.push(this.canvasDomNode);\n\t// Load the image into the canvas\n\tif($tw.browser) {\n\t\tthis.loadCanvas();\n\t}\n\t// Add widget message listeners\n\tthis.addEventListeners([\n\t\t{type: \"tm-edit-bitmap-operation\", handler: \"handleEditBitmapOperationMessage\"}\n\t]);\n};\n\n/*\nHandle an edit bitmap operation message from the toolbar\n*/\nEditBitmapWidget.prototype.handleEditBitmapOperationMessage = function(event) {\n\t// Invoke the handler\n\tvar handler = this.editorOperations[event.param];\n\tif(handler) {\n\t\thandler.call(this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBitmapWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nJust refresh the toolbar\n*/\nEditBitmapWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nSet the bitmap size variables and refresh the toolbar\n*/\nEditBitmapWidget.prototype.refreshToolbar = function() {\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Refresh each of our child widgets\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\tchildWidget.refreshSelf();\n\t});\n};\n\nEditBitmapWidget.prototype.loadCanvas = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle),\n\t\tcurrImage = new Image();\n\t// Set up event handlers for loading the image\n\tvar self = this;\n\tcurrImage.onload = function() {\n\t\t// Copy the image to the on-screen canvas\n\t\tself.initCanvas(self.canvasDomNode,currImage.width,currImage.height,currImage);\n\t\t// And also copy the current bitmap to the off-screen canvas\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,currImage.width,currImage.height,currImage);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\tcurrImage.onerror = function() {\n\t\t// Set the on-screen canvas size and clear it\n\t\tself.initCanvas(self.canvasDomNode,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the off-screen canvas size and clear it\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\t// Get the current bitmap into an image object\n\tcurrImage.src = \"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text;\n};\n\nEditBitmapWidget.prototype.initCanvas = function(canvas,width,height,image) {\n\tcanvas.width = width;\n\tcanvas.height = height;\n\tvar ctx = canvas.getContext(\"2d\");\n\tif(image) {\n\t\tctx.drawImage(image,0,0);\n\t} else {\n\t\tctx.fillStyle = \"#fff\";\n\t\tctx.fillRect(0,0,canvas.width,canvas.height);\n\t}\n};\n\n/*\n** Change the size of the canvas, preserving the current image\n*/\nEditBitmapWidget.prototype.changeCanvasSize = function(newWidth,newHeight) {\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\");\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\nEditBitmapWidget.prototype.handleTouchStartEvent = function(event) {\n\tthis.brushDown = true;\n\tthis.strokeStart(event.touches[0].clientX,event.touches[0].clientY);\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.touches[0].clientX,event.touches[0].clientY);\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchEndEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseDownEvent = function(event) {\n\tthis.strokeStart(event.clientX,event.clientY);\n\tthis.brushDown = true;\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.clientX,event.clientY);\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.handleMouseUpEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.adjustCoordinates = function(x,y) {\n\tvar canvasRect = this.canvasDomNode.getBoundingClientRect(),\n\t\tscale = this.canvasDomNode.width/canvasRect.width;\n\treturn {x: (x - canvasRect.left) * scale, y: (y - canvasRect.top) * scale};\n};\n\nEditBitmapWidget.prototype.strokeStart = function(x,y) {\n\t// Start off a new stroke\n\tthis.stroke = [this.adjustCoordinates(x,y)];\n};\n\nEditBitmapWidget.prototype.strokeMove = function(x,y) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\"),\n\t\tt;\n\t// Add the new position to the end of the stroke\n\tthis.stroke.push(this.adjustCoordinates(x,y));\n\t// Redraw the previous image\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Render the stroke\n\tctx.globalAlpha = parseFloat(this.wiki.getTiddlerText(LINE_OPACITY_TITLE,\"1.0\"));\n\tctx.strokeStyle = this.wiki.getTiddlerText(LINE_COLOUR_TITLE,\"#ff0\");\n\tctx.lineWidth = parseFloat(this.wiki.getTiddlerText(LINE_WIDTH_TITLE,\"3\"));\n\tctx.lineCap = \"round\";\n\tctx.lineJoin = \"round\";\n\tctx.beginPath();\n\tctx.moveTo(this.stroke[0].x,this.stroke[0].y);\n\tfor(t=1; t<this.stroke.length-1; t++) {\n\t\tvar s1 = this.stroke[t],\n\t\t\ts2 = this.stroke[t-1],\n\t\t\ttx = (s1.x + s2.x)/2,\n\t\t\tty = (s1.y + s2.y)/2;\n\t\tctx.quadraticCurveTo(s2.x,s2.y,tx,ty);\n\t}\n\tctx.stroke();\n};\n\nEditBitmapWidget.prototype.strokeEnd = function() {\n\t// Copy the bitmap to the off-screen canvas\n\tvar ctx = this.currCanvas.getContext(\"2d\");\n\tctx.drawImage(this.canvasDomNode,0,0);\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\nEditBitmapWidget.prototype.saveChanges = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\tif(tiddler) {\n\t\t// data URIs look like \"data:<type>;base64,<text>\"\n\t\tvar dataURL = this.canvasDomNode.toDataURL(tiddler.fields.type),\n\t\t\tposColon = dataURL.indexOf(\":\"),\n\t\t\tposSemiColon = dataURL.indexOf(\";\"),\n\t\t\tposComma = dataURL.indexOf(\",\"),\n\t\t\ttype = dataURL.substring(posColon+1,posSemiColon),\n\t\t\ttext = dataURL.substring(posComma+1);\n\t\tvar update = {type: type, text: text};\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,update,this.wiki.getCreationFields()));\n\t}\n};\n\nexports[\"edit-bitmap\"] = EditBitmapWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/edit-bitmap.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit-shortcut.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit-shortcut.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display an editable keyboard shortcut\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditShortcutWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditShortcutWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditShortcutWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.inputNode = this.document.createElement(\"input\");\n\t// Assign classes\n\tif(this.shortcutClass) {\n\t\tthis.inputNode.className = this.shortcutClass;\t\t\n\t}\n\t// Assign other attributes\n\tif(this.shortcutStyle) {\n\t\tthis.inputNode.setAttribute(\"style\",this.shortcutStyle);\n\t}\n\tif(this.shortcutTooltip) {\n\t\tthis.inputNode.setAttribute(\"title\",this.shortcutTooltip);\n\t}\n\tif(this.shortcutPlaceholder) {\n\t\tthis.inputNode.setAttribute(\"placeholder\",this.shortcutPlaceholder);\n\t}\n\tif(this.shortcutAriaLabel) {\n\t\tthis.inputNode.setAttribute(\"aria-label\",this.shortcutAriaLabel);\n\t}\n\t// Assign the current shortcut\n\tthis.updateInputNode();\n\t// Add event handlers\n\t$tw.utils.addEventListeners(this.inputNode,[\n\t\t{name: \"keydown\", handlerObject: this, handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Link into the DOM\n\tparent.insertBefore(this.inputNode,nextSibling);\n\tthis.domNodes.push(this.inputNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditShortcutWidget.prototype.execute = function() {\n\tthis.shortcutTiddler = this.getAttribute(\"tiddler\");\n\tthis.shortcutField = this.getAttribute(\"field\");\n\tthis.shortcutIndex = this.getAttribute(\"index\");\n\tthis.shortcutPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.shortcutDefault = this.getAttribute(\"default\",\"\");\n\tthis.shortcutClass = this.getAttribute(\"class\");\n\tthis.shortcutStyle = this.getAttribute(\"style\");\n\tthis.shortcutTooltip = this.getAttribute(\"tooltip\");\n\tthis.shortcutAriaLabel = this.getAttribute(\"aria-label\");\n};\n\n/*\nUpdate the value of the input node\n*/\nEditShortcutWidget.prototype.updateInputNode = function() {\n\tif(this.shortcutField) {\n\t\tvar tiddler = this.wiki.getTiddler(this.shortcutTiddler);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,this.shortcutField)) {\n\t\t\tthis.inputNode.value = tiddler.getFieldString(this.shortcutField);\n\t\t} else {\n\t\t\tthis.inputNode.value = this.shortcutDefault;\n\t\t}\n\t} else if(this.shortcutIndex) {\n\t\tthis.inputNode.value = this.wiki.extractTiddlerDataItem(this.shortcutTiddler,this.shortcutIndex,this.shortcutDefault);\n\t} else {\n\t\tthis.inputNode.value = this.wiki.getTiddlerText(this.shortcutTiddler,this.shortcutDefault);\n\t}\n};\n\n/*\nHandle a dom \"keydown\" event\n*/\nEditShortcutWidget.prototype.handleKeydownEvent = function(event) {\n\t// Ignore shift, ctrl, meta, alt\n\tif(event.keyCode && $tw.keyboardManager.getModifierKeys().indexOf(event.keyCode) === -1) {\n\t\t// Get the shortcut text representation\n\t\tvar value = $tw.keyboardManager.getPrintableShortcuts([{\n\t\t\tctrlKey: event.ctrlKey,\n\t\t\tshiftKey: event.shiftKey,\n\t\t\taltKey: event.altKey,\n\t\t\tmetaKey: event.metaKey,\n\t\t\tkeyCode: event.keyCode\n\t\t}]);\n\t\tif(value.length > 0) {\n\t\t\tthis.wiki.setText(this.shortcutTiddler,this.shortcutField,this.shortcutIndex,value[0]);\n\t\t}\n\t\t// Ignore the keydown if it was already handled\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn true;\t\t\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget needed re-rendering\n*/\nEditShortcutWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.placeholder || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.style || changedAttributes.tooltip || changedAttributes[\"aria-label\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedTiddlers[this.shortcutTiddler]) {\n\t\tthis.updateInputNode();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports[\"edit-shortcut\"] = EditShortcutWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/edit-shortcut.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit-text.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit-text.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-text widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar editTextWidgetFactory = require(\"$:/core/modules/editor/factory.js\").editTextWidgetFactory,\n\tFramedEngine = require(\"$:/core/modules/editor/engines/framed.js\").FramedEngine,\n\tSimpleEngine = require(\"$:/core/modules/editor/engines/simple.js\").SimpleEngine;\n\nexports[\"edit-text\"] = editTextWidgetFactory(FramedEngine,SimpleEngine);\n\n})();\n",
            "title": "$:/core/modules/widgets/edit-text.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit.js\ntype: application/javascript\nmodule-type: widget\n\nEdit widget is a meta-widget chooses the appropriate actual editting widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n// Mappings from content type to editor type are stored in tiddlers with this prefix\nvar EDITOR_MAPPING_PREFIX = \"$:/config/EditorTypeMappings/\";\n\n/*\nCompute the internal state of the widget\n*/\nEditWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.editField = this.getAttribute(\"field\",\"text\");\n\tthis.editIndex = this.getAttribute(\"index\");\n\tthis.editClass = this.getAttribute(\"class\");\n\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\t// Choose the appropriate edit widget\n\tthis.editorType = this.getEditorType();\n\t// Make the child widgets\n\tthis.makeChildWidgets([{\n\t\ttype: \"edit-\" + this.editorType,\n\t\tattributes: {\n\t\t\ttiddler: {type: \"string\", value: this.editTitle},\n\t\t\tfield: {type: \"string\", value: this.editField},\n\t\t\tindex: {type: \"string\", value: this.editIndex},\n\t\t\t\"class\": {type: \"string\", value: this.editClass},\n\t\t\t\"placeholder\": {type: \"string\", value: this.editPlaceholder}\n\t\t},\n\t\tchildren: this.parseTreeNode.children\n\t}]);\n};\n\nEditWidget.prototype.getEditorType = function() {\n\t// Get the content type of the thing we're editing\n\tvar type;\n\tif(this.editField === \"text\") {\n\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\tif(tiddler) {\n\t\t\ttype = tiddler.fields.type;\n\t\t}\n\t}\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar editorType = this.wiki.getTiddlerText(EDITOR_MAPPING_PREFIX + type);\n\tif(!editorType) {\n\t\tvar typeInfo = $tw.config.contentTypeInfo[type];\n\t\tif(typeInfo && typeInfo.encoding === \"base64\") {\n\t\t\teditorType = \"binary\";\n\t\t} else {\n\t\t\teditorType = \"text\";\n\t\t}\n\t}\n\treturn editorType;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEditWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh if an attribute has changed, or the type associated with the target tiddler has changed\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.edit = EditWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/edit.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/element.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/element.js\ntype: application/javascript\nmodule-type: widget\n\nElement widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ElementWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nElementWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nElementWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Neuter blacklisted elements\n\tvar tag = this.parseTreeNode.tag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"safe-\" + tag;\n\t}\n\tvar domNode = this.document.createElementNS(this.namespace,tag);\n\tthis.assignAttributes(domNode,{excludeEventAttributes: true});\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nElementWidget.prototype.execute = function() {\n\t// Select the namespace for the tag\n\tvar tagNamespaces = {\n\t\t\tsvg: \"http://www.w3.org/2000/svg\",\n\t\t\tmath: \"http://www.w3.org/1998/Math/MathML\",\n\t\t\tbody: \"http://www.w3.org/1999/xhtml\"\n\t\t};\n\tthis.namespace = tagNamespaces[this.parseTreeNode.tag];\n\tif(this.namespace) {\n\t\tthis.setVariable(\"namespace\",this.namespace);\n\t} else {\n\t\tthis.namespace = this.getVariable(\"namespace\",{defaultValue: \"http://www.w3.org/1999/xhtml\"});\n\t}\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nElementWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\thasChangedAttributes = $tw.utils.count(changedAttributes) > 0;\n\tif(hasChangedAttributes) {\n\t\t// Update our attributes\n\t\tthis.assignAttributes(this.domNodes[0],{excludeEventAttributes: true});\n\t}\n\treturn this.refreshChildren(changedTiddlers) || hasChangedAttributes;\n};\n\nexports.element = ElementWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/element.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/encrypt.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/encrypt.js\ntype: application/javascript\nmodule-type: widget\n\nEncrypt widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EncryptWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEncryptWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEncryptWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.encryptedText);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEncryptWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\",\"[!is[system]]\");\n\t// Encrypt the filtered tiddlers\n\tvar tiddlers = this.wiki.filterTiddlers(this.filter),\n\t\tjson = {},\n\t\tself = this;\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title),\n\t\t\tjsonTiddler = {};\n\t\tfor(var f in tiddler.fields) {\n\t\t\tjsonTiddler[f] = tiddler.getFieldString(f);\n\t\t}\n\t\tjson[title] = jsonTiddler;\n\t});\n\tthis.encryptedText = $tw.utils.htmlEncode($tw.crypto.encrypt(JSON.stringify(json)));\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEncryptWidget.prototype.refresh = function(changedTiddlers) {\n\t// We don't need to worry about refreshing because the encrypt widget isn't for interactive use\n\treturn false;\n};\n\nexports.encrypt = EncryptWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/encrypt.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/entity.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/entity.js\ntype: application/javascript\nmodule-type: widget\n\nHTML entity widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EntityWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEntityWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEntityWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar entityString = this.getAttribute(\"entity\",this.parseTreeNode.entity || \"\"),\n\t\ttextNode = this.document.createTextNode($tw.utils.entityDecode(entityString));\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEntityWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEntityWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.entity) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.entity = EntityWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/entity.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/fieldmangler.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/fieldmangler.js\ntype: application/javascript\nmodule-type: widget\n\nField mangler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldManglerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-remove-field\", handler: \"handleRemoveFieldEvent\"},\n\t\t{type: \"tm-add-field\", handler: \"handleAddFieldEvent\"},\n\t\t{type: \"tm-remove-tag\", handler: \"handleRemoveTagEvent\"},\n\t\t{type: \"tm-add-tag\", handler: \"handleAddTagEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldManglerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldManglerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldManglerWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.mangleTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldManglerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nFieldManglerWidget.prototype.handleRemoveFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tdeletion = {};\n\tdeletion[event.param] = undefined;\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,deletion));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\taddition = this.wiki.getModificationFields(),\n\t\thadInvalidFieldName = false,\n\t\taddField = function(name,value) {\n\t\t\tvar trimmedName = name.toLowerCase().trim();\n\t\t\tif(!$tw.utils.isValidFieldName(trimmedName)) {\n\t\t\t\tif(!hadInvalidFieldName) {\n\t\t\t\t\talert($tw.language.getString(\n\t\t\t\t\t\t\"InvalidFieldName\",\n\t\t\t\t\t\t{variables:\n\t\t\t\t\t\t\t{fieldName: trimmedName}\n\t\t\t\t\t\t}\n\t\t\t\t\t));\n\t\t\t\t\thadInvalidFieldName = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif(!value && tiddler) {\n\t\t\t\t\tvalue = tiddler.fields[trimmedName];\n\t\t\t\t}\n\t\t\t\taddition[trimmedName] = value || \"\";\n\t\t\t}\n\t\t\treturn;\n\t\t};\n\taddition.title = this.mangleTitle;\n\tif(typeof event.param === \"string\") {\n\t\taddField(event.param,\"\");\n\t}\n\tif(typeof event.paramObject === \"object\") {\n\t\tfor(var name in event.paramObject) {\n\t\t\taddField(name,event.paramObject[name]);\n\t\t}\n\t}\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,addition));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleRemoveTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle);\n\tif(tiddler && tiddler.fields.tags) {\n\t\tvar p = tiddler.fields.tags.indexOf(event.param);\n\t\tif(p !== -1) {\n\t\t\tvar modification = this.wiki.getModificationFields();\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\tmodification.tags.splice(p,1);\n\t\t\tif(modification.tags.length === 0) {\n\t\t\t\tmodification.tags = undefined;\n\t\t\t}\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\n\t\t}\n\t}\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle);\n\tif(tiddler && typeof event.param === \"string\") {\n\t\tvar tag = event.param.trim();\n\t\tif(tag !== \"\") {\n\t\t\tvar modification = this.wiki.getModificationFields();\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\t$tw.utils.pushTop(modification.tags,tag);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\t\t\t\n\t\t}\n\t} else if(typeof event.param === \"string\" && event.param.trim() !== \"\" && this.mangleTitle.trim() !== \"\") {\n\t\tvar tag = [];\n\t\ttag.push(event.param.trim());\n\t\tthis.wiki.addTiddler({title: this.mangleTitle, tags: tag});\t\t\n\t}\n\treturn true;\n};\n\nexports.fieldmangler = FieldManglerWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/fieldmangler.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/fields.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/fields.js\ntype: application/javascript\nmodule-type: widget\n\nFields widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldsWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldsWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldsWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.template = this.getAttribute(\"template\");\n\tthis.exclude = this.getAttribute(\"exclude\");\n\tthis.stripTitlePrefix = this.getAttribute(\"stripTitlePrefix\",\"no\") === \"yes\";\n\t// Get the value to display\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\t// Get the exclusion list\n\tvar exclude;\n\tif(this.exclude) {\n\t\texclude = this.exclude.split(\" \");\n\t} else {\n\t\texclude = [\"text\"]; \n\t}\n\t// Compose the template\n\tvar text = [];\n\tif(this.template && tiddler) {\n\t\tvar fields = [];\n\t\tfor(var fieldName in tiddler.fields) {\n\t\t\tif(exclude.indexOf(fieldName) === -1) {\n\t\t\t\tfields.push(fieldName);\n\t\t\t}\n\t\t}\n\t\tfields.sort();\n\t\tfor(var f=0; f<fields.length; f++) {\n\t\t\tfieldName = fields[f];\n\t\t\tif(exclude.indexOf(fieldName) === -1) {\n\t\t\t\tvar row = this.template,\n\t\t\t\t\tvalue = tiddler.getFieldString(fieldName);\n\t\t\t\tif(this.stripTitlePrefix && fieldName === \"title\") {\n\t\t\t\t\tvar reStrip = /^\\{[^\\}]+\\}(.+)/mg,\n\t\t\t\t\t\treMatch = reStrip.exec(value);\n\t\t\t\t\tif(reMatch) {\n\t\t\t\t\t\tvalue = reMatch[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trow = $tw.utils.replaceString(row,\"$name$\",fieldName);\n\t\t\t\trow = $tw.utils.replaceString(row,\"$value$\",value);\n\t\t\t\trow = $tw.utils.replaceString(row,\"$encoded_value$\",$tw.utils.htmlEncode(value));\n\t\t\t\ttext.push(row);\n\t\t\t}\n\t\t}\n\t}\n\tthis.text = text.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.template || changedAttributes.exclude || changedAttributes.stripTitlePrefix || changedTiddlers[this.tiddlerTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.fields = FieldsWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/fields.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/image.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/image.js\ntype: application/javascript\nmodule-type: widget\n\nThe image widget displays an image referenced with an external URI or with a local tiddler title.\n\n```\n<$image src=\"TiddlerTitle\" width=\"320\" height=\"400\" class=\"classnames\">\n```\n\nThe image source can be the title of an existing tiddler or the URL of an external image.\n\nExternal images always generate an HTML `<img>` tag.\n\nTiddlers that have a _canonical_uri field generate an HTML `<img>` tag with the src attribute containing the URI.\n\nTiddlers that contain image data generate an HTML `<img>` tag with the src attribute containing a base64 representation of the image.\n\nTiddlers that contain wikitext could be rendered to a DIV of the usual size of a tiddler, and then transformed to the size requested.\n\nThe width and height attributes are interpreted as a number of pixels, and do not need to include the \"px\" suffix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\t// Determine what type of image it is\n\tvar tag = \"img\", src = \"\",\n\t\ttiddler = this.wiki.getTiddler(this.imageSource);\n\tif(!tiddler) {\n\t\t// The source isn't the title of a tiddler, so we'll assume it's a URL\n\t\tsrc = this.getVariable(\"tv-get-export-image-link\",{params: [{name: \"src\",value: this.imageSource}],defaultValue: this.imageSource});\n\t} else {\n\t\t// Check if it is an image tiddler\n\t\tif(this.wiki.isImageTiddler(this.imageSource)) {\n\t\t\tvar type = tiddler.fields.type,\n\t\t\t\ttext = tiddler.fields.text,\n\t\t\t\t_canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t// If the tiddler has body text then it doesn't need to be lazily loaded\n\t\t\tif(text) {\n\t\t\t\t// Render the appropriate element for the image type\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = \"data:application/pdf;base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = \"data:image/svg+xml,\" + encodeURIComponent(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = \"data:\" + type + \";base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if(_canonical_uri) {\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\t\n\t\t\t} else {\n\t\t\t\t// Just trigger loading of the tiddler\n\t\t\t\tthis.wiki.getTiddlerText(this.imageSource);\n\t\t\t}\n\t\t}\n\t}\n\t// Create the element and assign the attributes\n\tvar domNode = this.document.createElement(tag);\n\tdomNode.setAttribute(\"src\",src);\n\tif(this.imageClass) {\n\t\tdomNode.setAttribute(\"class\",this.imageClass);\t\t\n\t}\n\tif(this.imageWidth) {\n\t\tdomNode.setAttribute(\"width\",this.imageWidth);\n\t}\n\tif(this.imageHeight) {\n\t\tdomNode.setAttribute(\"height\",this.imageHeight);\n\t}\n\tif(this.imageTooltip) {\n\t\tdomNode.setAttribute(\"title\",this.imageTooltip);\t\t\n\t}\n\tif(this.imageAlt) {\n\t\tdomNode.setAttribute(\"alt\",this.imageAlt);\t\t\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImageWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.imageSource = this.getAttribute(\"source\");\n\tthis.imageWidth = this.getAttribute(\"width\");\n\tthis.imageHeight = this.getAttribute(\"height\");\n\tthis.imageClass = this.getAttribute(\"class\");\n\tthis.imageTooltip = this.getAttribute(\"tooltip\");\n\tthis.imageAlt = this.getAttribute(\"alt\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.width || changedAttributes.height || changedAttributes[\"class\"] || changedAttributes.tooltip || changedTiddlers[this.imageSource]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\t\n\t}\n};\n\nexports.image = ImageWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/image.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/importvariables.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/importvariables.js\ntype: application/javascript\nmodule-type: widget\n\nImport variable definitions from other tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImportVariablesWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImportVariablesWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImportVariablesWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImportVariablesWidget.prototype.execute = function(tiddlerList) {\n\tvar self = this;\n\t// Get our parameters\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Compute the filter\n\tthis.tiddlerList = tiddlerList || this.wiki.filterTiddlers(this.filter,this);\n\t// Accumulate the <$set> widgets from each tiddler\n\tvar widgetStackStart,widgetStackEnd;\n\tfunction addWidgetNode(widgetNode) {\n\t\tif(widgetNode) {\n\t\t\tif(!widgetStackStart && !widgetStackEnd) {\n\t\t\t\twidgetStackStart = widgetNode;\n\t\t\t\twidgetStackEnd = widgetNode;\n\t\t\t} else {\n\t\t\t\twidgetStackEnd.children = [widgetNode];\n\t\t\t\twidgetStackEnd = widgetNode;\n\t\t\t}\n\t\t}\n\t}\n\t$tw.utils.each(this.tiddlerList,function(title) {\n\t\tvar parser = self.wiki.parseTiddler(title);\n\t\tif(parser) {\n\t\t\tvar parseTreeNode = parser.tree[0];\n\t\t\twhile(parseTreeNode && parseTreeNode.type === \"set\") {\n\t\t\t\taddWidgetNode({\n\t\t\t\t\ttype: \"set\",\n\t\t\t\t\tattributes: parseTreeNode.attributes,\n\t\t\t\t\tparams: parseTreeNode.params\n\t\t\t\t});\n\t\t\t\tparseTreeNode = parseTreeNode.children[0];\n\t\t\t}\n\t\t} \n\t});\n\t// Add our own children to the end of the pile\n\tvar parseTreeNodes;\n\tif(widgetStackStart && widgetStackEnd) {\n\t\tparseTreeNodes = [widgetStackStart];\n\t\twidgetStackEnd.children = this.parseTreeNode.children;\n\t} else {\n\t\tparseTreeNodes = this.parseTreeNode.children;\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImportVariablesWidget.prototype.refresh = function(changedTiddlers) {\n\t// Recompute our attributes and the filter list\n\tvar changedAttributes = this.computeAttributes(),\n\t\ttiddlerList = this.wiki.filterTiddlers(this.getAttribute(\"filter\"),this);\n\t// Refresh if the filter has changed, or the list of tiddlers has changed, or any of the tiddlers in the list has changed\n\tfunction haveListedTiddlersChanged() {\n\t\tvar changed = false;\n\t\ttiddlerList.forEach(function(title) {\n\t\t\tif(changedTiddlers[title]) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t});\n\t\treturn changed;\n\t}\n\tif(changedAttributes.filter || !$tw.utils.isArrayEqual(this.tiddlerList,tiddlerList) || haveListedTiddlersChanged()) {\n\t\t// Compute the filter\n\t\tthis.removeChildDomNodes();\n\t\tthis.execute(tiddlerList);\n\t\tthis.renderChildren(this.parentDomNode,this.findNextSiblingDomNode());\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.importvariables = ImportVariablesWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/importvariables.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/keyboard.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/keyboard.js\ntype: application/javascript\nmodule-type: widget\n\nKeyboard shortcut widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar KeyboardWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nKeyboardWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nKeyboardWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.tag && $tw.config.htmlUnsafeElements.indexOf(this.tag) === -1) {\n\t\ttag = this.tag;\n\t}\n\t// Create element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-keyboard\");\n\tdomNode.className = classes.join(\" \");\n\t// Add a keyboard event handler\n\tdomNode.addEventListener(\"keydown\",function (event) {\n\t\tif($tw.keyboardManager.checkKeyDescriptors(event,self.keyInfoArray)) {\n\t\t\tself.invokeActions(self,event);\n\t\t\tif(self.actions) {\n\t\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t\t}\n\t\t\tself.dispatchMessage(event);\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nKeyboardWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\")});\n};\n\n/*\nCompute the internal state of the widget\n*/\nKeyboardWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.key = this.getAttribute(\"key\");\n\tthis.tag = this.getAttribute(\"tag\");\n\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\tthis[\"class\"] = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nKeyboardWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.message || changedAttributes.param || changedAttributes.key || changedAttributes[\"class\"] || changedAttributes.tag) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.keyboard = KeyboardWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/keyboard.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/link.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/link.js\ntype: application/javascript\nmodule-type: widget\n\nLink widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar MISSING_LINK_CONFIG_TITLE = \"$:/config/MissingLinks\";\n\nvar LinkWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the value of the tv-wikilinks configuration macro\n\tvar wikiLinksMacro = this.getVariable(\"tv-wikilinks\"),\n\t\tuseWikiLinks = wikiLinksMacro ? (wikiLinksMacro.trim() !== \"no\") : true,\n\t\tmissingLinksEnabled = !(this.hideMissingLinks && this.isMissing && !this.isShadow);\n\t// Render the link if required\n\tif(useWikiLinks && missingLinksEnabled) {\n\t\tthis.renderLink(parent,nextSibling);\n\t} else {\n\t\t// Just insert the link text\n\t\tvar domNode = this.document.createElement(\"span\");\n\t\tparent.insertBefore(domNode,nextSibling);\n\t\tthis.renderChildren(domNode,null);\n\t\tthis.domNodes.push(domNode);\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.renderLink = function(parent,nextSibling) {\n\tvar self = this;\n\t// Sanitise the specified tag\n\tvar tag = this.linkTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"a\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [];\n\tif(this.linkClasses) {\n\t\tclasses.push(this.linkClasses);\n\t}\n\tclasses.push(\"tc-tiddlylink\");\n\tif(this.isShadow) {\n\t\tclasses.push(\"tc-tiddlylink-shadow\");\n\t}\n\tif(this.isMissing && !this.isShadow) {\n\t\tclasses.push(\"tc-tiddlylink-missing\");\n\t} else {\n\t\tif(!this.isMissing) {\n\t\t\tclasses.push(\"tc-tiddlylink-resolves\");\n\t\t}\n\t}\n\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t// Set an href\n\tvar wikiLinkTemplateMacro = this.getVariable(\"tv-wikilink-template\"),\n\t\twikiLinkTemplate = wikiLinkTemplateMacro ? wikiLinkTemplateMacro.trim() : \"#$uri_encoded$\",\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkTemplate,\"$uri_encoded$\",encodeURIComponent(this.to));\n\twikiLinkText = $tw.utils.replaceString(wikiLinkText,\"$uri_doubleencoded$\",encodeURIComponent(encodeURIComponent(this.to)));\n\twikiLinkText = this.getVariable(\"tv-get-export-link\",{params: [{name: \"to\",value: this.to}],defaultValue: wikiLinkText});\n\tif(tag === \"a\") {\n\t\tdomNode.setAttribute(\"href\",wikiLinkText);\n\t}\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\n\t// Set the tooltip\n\t// HACK: Performance issues with re-parsing the tooltip prevent us defaulting the tooltip to \"<$transclude field='tooltip'><$transclude field='title'/></$transclude>\"\n\tvar tooltipWikiText = this.tooltip || this.getVariable(\"tv-wikilink-tooltip\");\n\tif(tooltipWikiText) {\n\t\tvar tooltipText = this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",tooltipWikiText,{\n\t\t\t\tparseAsInline: true,\n\t\t\t\tvariables: {\n\t\t\t\t\tcurrentTiddler: this.to\n\t\t\t\t},\n\t\t\t\tparentWidget: this\n\t\t\t});\n\t\tdomNode.setAttribute(\"title\",tooltipText);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"click\", handlerObject: this, handlerMethod: \"handleClickEvent\"},\n\t]);\n\t// Make the link draggable if required\n\tif(this.draggable === \"yes\") {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.to;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nLinkWidget.prototype.handleClickEvent = function(event) {\n\t// Send the click on its way as a navigate event\n\tvar bounds = this.domNodes[0].getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1)\n\t});\n\tif(this.domNodes[0].hasAttribute(\"href\")) {\n\t\tevent.preventDefault();\n\t}\n\tevent.stopPropagation();\n\treturn false;\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.to = this.getAttribute(\"to\",this.getVariable(\"currentTiddler\"));\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.linkClasses = this.getAttribute(\"class\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\tthis.draggable = this.getAttribute(\"draggable\",\"yes\");\n\tthis.linkTag = this.getAttribute(\"tag\",\"a\");\n\t// Determine the link characteristics\n\tthis.isMissing = !this.wiki.tiddlerExists(this.to);\n\tthis.isShadow = this.wiki.isShadowTiddler(this.to);\n\tthis.hideMissingLinks = ($tw.wiki.getTiddlerText(MISSING_LINK_CONFIG_TITLE,\"yes\") === \"no\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedTiddlers[this.to] || changedAttributes[\"aria-label\"] || changedAttributes.tooltip || changedTiddlers[MISSING_LINK_CONFIG_TITLE]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.link = LinkWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/link.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/linkcatcher.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/linkcatcher.js\ntype: application/javascript\nmodule-type: widget\n\nLinkcatcher widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkCatcherWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkCatcherWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkCatcherWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkCatcherWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.catchTo = this.getAttribute(\"to\");\n\tthis.catchMessage = this.getAttribute(\"message\");\n\tthis.catchSet = this.getAttribute(\"set\");\n\tthis.catchSetTo = this.getAttribute(\"setTo\");\n\tthis.catchActions = this.getAttribute(\"actions\");\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkCatcherWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedAttributes.message || changedAttributes.set || changedAttributes.setTo) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\n/*\nHandle a tm-navigate event\n*/\nLinkCatcherWidget.prototype.handleNavigateEvent = function(event) {\n\tif(this.catchTo) {\n\t\tthis.wiki.setTextReference(this.catchTo,event.navigateTo,this.getVariable(\"currentTiddler\"));\n\t}\n\tif(this.catchMessage && this.parentWidget) {\n\t\tthis.parentWidget.dispatchEvent({\n\t\t\ttype: this.catchMessage,\n\t\t\tparam: event.navigateTo,\n\t\t\tnavigateTo: event.navigateTo\n\t\t});\n\t}\n\tif(this.catchSet) {\n\t\tvar tiddler = this.wiki.getTiddler(this.catchSet);\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,{title: this.catchSet, text: this.catchSetTo}));\n\t}\n\tif(this.catchActions) {\n\t\tthis.invokeActionString(this.catchActions,this);\n\t}\n\treturn false;\n};\n\nexports.linkcatcher = LinkCatcherWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/linkcatcher.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/list.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/list.js\ntype: application/javascript\nmodule-type: widget\n\nList and list item widgets\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\n/*\nThe list widget creates list element sub-widgets that reach back into the list widget for their configuration\n*/\n\nvar ListWidget = function(parseTreeNode,options) {\n\t// Initialise the storyviews if they've not been done already\n\tif(!this.storyViews) {\n\t\tListWidget.prototype.storyViews = {};\n\t\t$tw.modules.applyMethods(\"storyview\",this.storyViews);\n\t}\n\t// Main initialisation inherited from widget.js\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\t// Construct the storyview\n\tvar StoryView = this.storyViews[this.storyViewName];\n\tif(this.storyViewName && !StoryView) {\n\t\tStoryView = this.storyViews[\"classic\"];\n\t}\n\tif(StoryView && !this.document.isTiddlyWikiFakeDom) {\n\t\tthis.storyview = new StoryView(this);\n\t} else {\n\t\tthis.storyview = null;\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nListWidget.prototype.execute = function() {\n\t// Get our attributes\n\tthis.template = this.getAttribute(\"template\");\n\tthis.editTemplate = this.getAttribute(\"editTemplate\");\n\tthis.variableName = this.getAttribute(\"variable\",\"currentTiddler\");\n\tthis.storyViewName = this.getAttribute(\"storyview\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\t// Compose the list elements\n\tthis.list = this.getTiddlerList();\n\tvar members = [],\n\t\tself = this;\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\tmembers = this.getEmptyMessage();\n\t} else {\n\t\t$tw.utils.each(this.list,function(title,index) {\n\t\t\tmembers.push(self.makeItemTemplate(title));\n\t\t});\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(members);\n\t// Clear the last history\n\tthis.history = [];\n};\n\nListWidget.prototype.getTiddlerList = function() {\n\tvar defaultFilter = \"[!is[system]sort[title]]\";\n\treturn this.wiki.filterTiddlers(this.getAttribute(\"filter\",defaultFilter),this);\n};\n\nListWidget.prototype.getEmptyMessage = function() {\n\tvar emptyMessage = this.getAttribute(\"emptyMessage\",\"\"),\n\t\tparser = this.wiki.parseText(\"text/vnd.tiddlywiki\",emptyMessage,{parseAsInline: true});\n\tif(parser) {\n\t\treturn parser.tree;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n/*\nCompose the template for a list item\n*/\nListWidget.prototype.makeItemTemplate = function(title) {\n\t// Check if the tiddler is a draft\n\tvar tiddler = this.wiki.getTiddler(title),\n\t\tisDraft = tiddler && tiddler.hasField(\"draft.of\"),\n\t\ttemplate = this.template,\n\t\ttemplateTree;\n\tif(isDraft && this.editTemplate) {\n\t\ttemplate = this.editTemplate;\n\t}\n\t// Compose the transclusion of the template\n\tif(template) {\n\t\ttemplateTree = [{type: \"transclude\", attributes: {tiddler: {type: \"string\", value: template}}}];\n\t} else {\n\t\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\t\ttemplateTree = this.parseTreeNode.children;\n\t\t} else {\n\t\t\t// Default template is a link to the title\n\t\t\ttemplateTree = [{type: \"element\", tag: this.parseTreeNode.isBlock ? \"div\" : \"span\", children: [{type: \"link\", attributes: {to: {type: \"string\", value: title}}, children: [\n\t\t\t\t\t{type: \"text\", text: title}\n\t\t\t]}]}];\n\t\t}\n\t}\n\t// Return the list item\n\treturn {type: \"listitem\", itemTitle: title, variableName: this.variableName, children: templateTree};\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tresult;\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshStart) {\n\t\tthis.storyview.refreshStart(changedTiddlers,changedAttributes);\n\t}\n\t// Completely refresh if any of our attributes have changed\n\tif(changedAttributes.filter || changedAttributes.template || changedAttributes.editTemplate || changedAttributes.emptyMessage || changedAttributes.storyview || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\tresult = true;\n\t} else {\n\t\t// Handle any changes to the list\n\t\tresult = this.handleListChanges(changedTiddlers);\n\t\t// Handle any changes to the history stack\n\t\tif(this.historyTitle && changedTiddlers[this.historyTitle]) {\n\t\t\tthis.handleHistoryChanges();\n\t\t}\n\t}\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshEnd) {\n\t\tthis.storyview.refreshEnd(changedTiddlers,changedAttributes);\n\t}\n\treturn result;\n};\n\n/*\nHandle any changes to the history list\n*/\nListWidget.prototype.handleHistoryChanges = function() {\n\t// Get the history data\n\tvar newHistory = this.wiki.getTiddlerDataCached(this.historyTitle,[]);\n\t// Ignore any entries of the history that match the previous history\n\tvar entry = 0;\n\twhile(entry < newHistory.length && entry < this.history.length && newHistory[entry].title === this.history[entry].title) {\n\t\tentry++;\n\t}\n\t// Navigate forwards to each of the new tiddlers\n\twhile(entry < newHistory.length) {\n\t\tif(this.storyview && this.storyview.navigateTo) {\n\t\t\tthis.storyview.navigateTo(newHistory[entry]);\n\t\t}\n\t\tentry++;\n\t}\n\t// Update the history\n\tthis.history = newHistory;\n};\n\n/*\nProcess any changes to the list\n*/\nListWidget.prototype.handleListChanges = function(changedTiddlers) {\n\t// Get the new list\n\tvar prevList = this.list;\n\tthis.list = this.getTiddlerList();\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\t// Check if it was empty before\n\t\tif(prevList.length === 0) {\n\t\t\t// If so, just refresh the empty message\n\t\t\treturn this.refreshChildren(changedTiddlers);\n\t\t} else {\n\t\t\t// Replace the previous content with the empty message\n\t\t\tfor(t=this.children.length-1; t>=0; t--) {\n\t\t\t\tthis.removeListItem(t);\n\t\t\t}\n\t\t\tvar nextSibling = this.findNextSiblingDomNode();\n\t\t\tthis.makeChildWidgets(this.getEmptyMessage());\n\t\t\tthis.renderChildren(this.parentDomNode,nextSibling);\n\t\t\treturn true;\n\t\t}\n\t} else {\n\t\t// If the list was empty then we need to remove the empty message\n\t\tif(prevList.length === 0) {\n\t\t\tthis.removeChildDomNodes();\n\t\t\tthis.children = [];\n\t\t}\n\t\t// Cycle through the list, inserting and removing list items as needed\n\t\tvar hasRefreshed = false;\n\t\tfor(var t=0; t<this.list.length; t++) {\n\t\t\tvar index = this.findListItem(t,this.list[t]);\n\t\t\tif(index === undefined) {\n\t\t\t\t// The list item must be inserted\n\t\t\t\tthis.insertListItem(t,this.list[t]);\n\t\t\t\thasRefreshed = true;\n\t\t\t} else {\n\t\t\t\t// There are intervening list items that must be removed\n\t\t\t\tfor(var n=index-1; n>=t; n--) {\n\t\t\t\t\tthis.removeListItem(n);\n\t\t\t\t\thasRefreshed = true;\n\t\t\t\t}\n\t\t\t\t// Refresh the item we're reusing\n\t\t\t\tvar refreshed = this.children[t].refresh(changedTiddlers);\n\t\t\t\thasRefreshed = hasRefreshed || refreshed;\n\t\t\t}\n\t\t}\n\t\t// Remove any left over items\n\t\tfor(t=this.children.length-1; t>=this.list.length; t--) {\n\t\t\tthis.removeListItem(t);\n\t\t\thasRefreshed = true;\n\t\t}\n\t\treturn hasRefreshed;\n\t}\n};\n\n/*\nFind the list item with a given title, starting from a specified position\n*/\nListWidget.prototype.findListItem = function(startIndex,title) {\n\twhile(startIndex < this.children.length) {\n\t\tif(this.children[startIndex].parseTreeNode.itemTitle === title) {\n\t\t\treturn startIndex;\n\t\t}\n\t\tstartIndex++;\n\t}\n\treturn undefined;\n};\n\n/*\nInsert a new list item at the specified index\n*/\nListWidget.prototype.insertListItem = function(index,title) {\n\t// Create, insert and render the new child widgets\n\tvar widget = this.makeChildWidget(this.makeItemTemplate(title));\n\twidget.parentDomNode = this.parentDomNode; // Hack to enable findNextSiblingDomNode() to work\n\tthis.children.splice(index,0,widget);\n\tvar nextSibling = widget.findNextSiblingDomNode();\n\twidget.render(this.parentDomNode,nextSibling);\n\t// Animate the insertion if required\n\tif(this.storyview && this.storyview.insert) {\n\t\tthis.storyview.insert(widget);\n\t}\n\treturn true;\n};\n\n/*\nRemove the specified list item\n*/\nListWidget.prototype.removeListItem = function(index) {\n\tvar widget = this.children[index];\n\t// Animate the removal if required\n\tif(this.storyview && this.storyview.remove) {\n\t\tthis.storyview.remove(widget);\n\t} else {\n\t\twidget.removeChildDomNodes();\n\t}\n\t// Remove the child widget\n\tthis.children.splice(index,1);\n};\n\nexports.list = ListWidget;\n\nvar ListItemWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListItemWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListItemWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nListItemWidget.prototype.execute = function() {\n\t// Set the current list item title\n\tthis.setVariable(this.parseTreeNode.variableName,this.parseTreeNode.itemTitle);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListItemWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.listitem = ListItemWidget;\n\n})();",
            "title": "$:/core/modules/widgets/list.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/macrocall.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/macrocall.js\ntype: application/javascript\nmodule-type: widget\n\nMacrocall widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar MacroCallWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nMacroCallWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nMacroCallWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nMacroCallWidget.prototype.execute = function() {\n\t// Get the parse type if specified\n\tthis.parseType = this.getAttribute(\"$type\",\"text/vnd.tiddlywiki\");\n\tthis.renderOutput = this.getAttribute(\"$output\",\"text/html\");\n\t// Merge together the parameters specified in the parse tree with the specified attributes\n\tvar params = this.parseTreeNode.params ? this.parseTreeNode.params.slice(0) : [];\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparams.push({name: name, value: attribute});\t\t\t\n\t\t}\n\t});\n\t// Get the macro value\n\tvar text = this.getVariable(this.parseTreeNode.name || this.getAttribute(\"$name\"),{params: params}),\n\t\tparseTreeNodes;\n\t// Are we rendering to HTML?\n\tif(this.renderOutput === \"text/html\") {\n\t\t// If so we'll return the parsed macro\n\t\tvar parser = this.wiki.parseText(this.parseType,text,\n\t\t\t\t\t\t\t{parseAsInline: !this.parseTreeNode.isBlock});\n\t\tparseTreeNodes = parser ? parser.tree : [];\n\t} else {\n\t\t// Otherwise, we'll render the text\n\t\tvar plainText = this.wiki.renderText(\"text/plain\",this.parseType,text,{parentWidget: this});\n\t\tparseTreeNodes = [{type: \"text\", text: plainText}];\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nMacroCallWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\t// Rerender ourselves\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.macrocall = MacroCallWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/macrocall.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/navigator.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/navigator.js\ntype: application/javascript\nmodule-type: widget\n\nNavigator widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar IMPORT_TITLE = \"$:/Import\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigatorWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"},\n\t\t{type: \"tm-edit-tiddler\", handler: \"handleEditTiddlerEvent\"},\n\t\t{type: \"tm-delete-tiddler\", handler: \"handleDeleteTiddlerEvent\"},\n\t\t{type: \"tm-save-tiddler\", handler: \"handleSaveTiddlerEvent\"},\n\t\t{type: \"tm-cancel-tiddler\", handler: \"handleCancelTiddlerEvent\"},\n\t\t{type: \"tm-close-tiddler\", handler: \"handleCloseTiddlerEvent\"},\n\t\t{type: \"tm-close-all-tiddlers\", handler: \"handleCloseAllTiddlersEvent\"},\n\t\t{type: \"tm-close-other-tiddlers\", handler: \"handleCloseOtherTiddlersEvent\"},\n\t\t{type: \"tm-new-tiddler\", handler: \"handleNewTiddlerEvent\"},\n\t\t{type: \"tm-import-tiddlers\", handler: \"handleImportTiddlersEvent\"},\n\t\t{type: \"tm-perform-import\", handler: \"handlePerformImportEvent\"},\n\t\t{type: \"tm-fold-tiddler\", handler: \"handleFoldTiddlerEvent\"},\n\t\t{type: \"tm-fold-other-tiddlers\", handler: \"handleFoldOtherTiddlersEvent\"},\n\t\t{type: \"tm-fold-all-tiddlers\", handler: \"handleFoldAllTiddlersEvent\"},\n\t\t{type: \"tm-unfold-all-tiddlers\", handler: \"handleUnfoldAllTiddlersEvent\"},\n\t\t{type: \"tm-rename-tiddler\", handler: \"handleRenameTiddlerEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigatorWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigatorWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigatorWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.storyTitle = this.getAttribute(\"story\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nNavigatorWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.story || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nNavigatorWidget.prototype.getStoryList = function() {\n\treturn this.storyTitle ? this.wiki.getTiddlerList(this.storyTitle) : null;\n};\n\nNavigatorWidget.prototype.saveStoryList = function(storyList) {\n\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\t{title: this.storyTitle},\n\t\tstoryTiddler,\n\t\t{list: storyList}\n\t));\n};\n\nNavigatorWidget.prototype.removeTitleFromStory = function(storyList,title) {\n\tvar p = storyList.indexOf(title);\n\twhile(p !== -1) {\n\t\tstoryList.splice(p,1);\n\t\tp = storyList.indexOf(title);\n\t}\n};\n\nNavigatorWidget.prototype.replaceFirstTitleInStory = function(storyList,oldTitle,newTitle) {\n\tvar pos = storyList.indexOf(oldTitle);\n\tif(pos !== -1) {\n\t\tstoryList[pos] = newTitle;\n\t\tdo {\n\t\t\tpos = storyList.indexOf(oldTitle,pos + 1);\n\t\t\tif(pos !== -1) {\n\t\t\t\tstoryList.splice(pos,1);\n\t\t\t}\n\t\t} while(pos !== -1);\n\t} else {\n\t\tstoryList.splice(0,0,newTitle);\n\t}\n};\n\nNavigatorWidget.prototype.addToStory = function(title,fromTitle) {\n\tvar storyList = this.getStoryList();\n\t// Quit if we cannot get hold of the story list\n\tif(!storyList) {\n\t\treturn;\n\t}\n\t// See if the tiddler is already there\n\tvar slot = storyList.indexOf(title);\n\t// Quit if it already exists in the story river\n\tif(slot >= 0) {\n\t\treturn;\n\t}\n\t// First we try to find the position of the story element we navigated from\n\tvar fromIndex = storyList.indexOf(fromTitle);\n\tif(fromIndex >= 0) {\n\t\t// The tiddler is added from inside the river\n\t\t// Determine where to insert the tiddler; Fallback is \"below\"\n\t\tswitch(this.getAttribute(\"openLinkFromInsideRiver\",\"below\")) {\n\t\t\tcase \"top\":\n\t\t\t\tslot = 0;\n\t\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tslot = storyList.length;\n\t\t\t\tbreak;\n\t\t\tcase \"above\":\n\t\t\t\tslot = fromIndex;\n\t\t\t\tbreak;\n\t\t\tcase \"below\": // Intentional fall-through\n\t\t\tdefault:\n\t\t\t\tslot = fromIndex + 1;\n\t\t\t\tbreak;\n\t\t}\n\t} else {\n\t\t// The tiddler is opened from outside the river. Determine where to insert the tiddler; default is \"top\"\n\t\tif(this.getAttribute(\"openLinkFromOutsideRiver\",\"top\") === \"bottom\") {\n\t\t\t// Insert at bottom\n\t\t\tslot = storyList.length;\n\t\t} else {\n\t\t\t// Insert at top\n\t\t\tslot = 0;\n\t\t}\n\t}\n\t// Add the tiddler\n\tstoryList.splice(slot,0,title);\n\t// Save the story\n\tthis.saveStoryList(storyList);\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\n*/\nNavigatorWidget.prototype.addToHistory = function(title,fromPageRect) {\n\tthis.wiki.addToHistory(title,fromPageRect,this.historyTitle);\n};\n\n/*\nHandle a tm-navigate event\n*/\nNavigatorWidget.prototype.handleNavigateEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-navigating\",event);\n\tif(event.navigateTo) {\n\t\tthis.addToStory(event.navigateTo,event.navigateFromTitle);\n\t\tif(!event.navigateSuppressNavigation) {\n\t\t\tthis.addToHistory(event.navigateTo,event.navigateFromClientRect);\n\t\t}\n\t}\n\treturn false;\n};\n\n// Close a specified tiddler\nNavigatorWidget.prototype.handleCloseTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\tstoryList = this.getStoryList();\n\t// Look for tiddlers with this title to close\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\treturn false;\n};\n\n// Close all tiddlers\nNavigatorWidget.prototype.handleCloseAllTiddlersEvent = function(event) {\n\tthis.saveStoryList([]);\n\treturn false;\n};\n\n// Close other tiddlers\nNavigatorWidget.prototype.handleCloseOtherTiddlersEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle;\n\tthis.saveStoryList([title]);\n\treturn false;\n};\n\n// Place a tiddler in edit mode\nNavigatorWidget.prototype.handleEditTiddlerEvent = function(event) {\n\tvar self = this;\n\tfunction isUnmodifiedShadow(title) {\n\t\treturn self.wiki.isShadowTiddler(title) && !self.wiki.tiddlerExists(title);\n\t}\n\tfunction confirmEditShadow(title) {\n\t\treturn confirm($tw.language.getString(\n\t\t\t\"ConfirmEditShadowTiddler\",\n\t\t\t{variables:\n\t\t\t\t{title: title}\n\t\t\t}\n\t\t));\n\t}\n\tvar title = event.param || event.tiddlerTitle;\n\tif(isUnmodifiedShadow(title) && !confirmEditShadow(title)) {\n\t\treturn false;\n\t}\n\t// Replace the specified tiddler with a draft in edit mode\n\tvar draftTiddler = this.makeDraftTiddler(title);\n\t// Update the story and history if required\n\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\tvar draftTitle = draftTiddler.fields.title,\n\t\t\tstoryList = this.getStoryList();\n\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\tthis.saveStoryList(storyList);\n\t\treturn false;\n\t}\n};\n\n// Delete a tiddler\nNavigatorWidget.prototype.handleDeleteTiddlerEvent = function(event) {\n\t// Get the tiddler we're deleting\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList(),\n\t\toriginalTitle = tiddler ? tiddler.fields[\"draft.of\"] : \"\",\n\t\toriginalTiddler = originalTitle ? this.wiki.getTiddler(originalTitle) : undefined,\n\t\tconfirmationTitle;\n\tif(!tiddler) {\n\t\treturn false;\n\t}\n\t// Check if the tiddler we're deleting is in draft mode\n\tif(originalTitle) {\n\t\t// If so, we'll prompt for confirmation referencing the original tiddler\n\t\tconfirmationTitle = originalTitle;\n\t} else {\n\t\t// If not a draft, then prompt for confirmation referencing the specified tiddler\n\t\tconfirmationTitle = title;\n\t}\n\t// Seek confirmation\n\tif((this.wiki.getTiddler(originalTitle) || (tiddler.fields.text || \"\") !== \"\") && !confirm($tw.language.getString(\n\t\t\t\t\"ConfirmDeleteTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: confirmationTitle}\n\t\t\t\t}\n\t\t\t))) {\n\t\treturn false;\n\t}\n\t// Delete the original tiddler\n\tif(originalTitle) {\n\t\tif(originalTiddler) {\n\t\t\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",originalTiddler);\n\t\t}\n\t\tthis.wiki.deleteTiddler(originalTitle);\n\t\tthis.removeTitleFromStory(storyList,originalTitle);\n\t}\n\t// Invoke the hook function and delete this tiddler\n\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",tiddler);\n\tthis.wiki.deleteTiddler(title);\n\t// Remove the closed tiddler from the story\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\treturn false;\n};\n\n/*\nCreate/reuse the draft tiddler for a given title\n*/\nNavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) {\n\t// See if there is already a draft tiddler for this tiddler\n\tvar draftTitle = this.wiki.findDraft(targetTitle);\n\tif(draftTitle) {\n\t\treturn this.wiki.getTiddler(draftTitle);\n\t}\n\t// Get the current value of the tiddler we're editing\n\tvar tiddler = this.wiki.getTiddler(targetTitle);\n\t// Save the initial value of the draft tiddler\n\tdraftTitle = this.generateDraftTitle(targetTitle);\n\tvar draftTiddler = new $tw.Tiddler(\n\t\t\ttiddler,\n\t\t\t{\n\t\t\t\ttitle: draftTitle,\n\t\t\t\t\"draft.title\": targetTitle,\n\t\t\t\t\"draft.of\": targetTitle\n\t\t\t},\n\t\t\tthis.wiki.getModificationFields()\n\t\t);\n\tthis.wiki.addTiddler(draftTiddler);\n\treturn draftTiddler;\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nNavigatorWidget.prototype.generateDraftTitle = function(title) {\n\tvar c = 0,\n\t\tdraftTitle;\n\tdo {\n\t\tdraftTitle = \"Draft \" + (c ? (c + 1) + \" \" : \"\") + \"of '\" + title + \"'\";\n\t\tc++;\n\t} while(this.wiki.tiddlerExists(draftTitle));\n\treturn draftTitle;\n};\n\n// Take a tiddler out of edit mode, saving the changes\nNavigatorWidget.prototype.handleSaveTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList();\n\t// Replace the original tiddler with the draft\n\tif(tiddler) {\n\t\tvar draftTitle = (tiddler.fields[\"draft.title\"] || \"\").trim(),\n\t\t\tdraftOf = (tiddler.fields[\"draft.of\"] || \"\").trim();\n\t\tif(draftTitle) {\n\t\t\tvar isRename = draftOf !== draftTitle,\n\t\t\t\tisConfirmed = true;\n\t\t\tif(isRename && this.wiki.tiddlerExists(draftTitle)) {\n\t\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\t\"ConfirmOverwriteTiddler\",\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{title: draftTitle}\n\t\t\t\t\t}\n\t\t\t\t));\n\t\t\t}\n\t\t\tif(isConfirmed) {\n\t\t\t\t// Create the new tiddler and pass it through the th-saving-tiddler hook\n\t\t\t\tvar newTiddler = new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\ttitle: draftTitle,\n\t\t\t\t\t\"draft.title\": undefined,\n\t\t\t\t\t\"draft.of\": undefined\n\t\t\t\t},this.wiki.getModificationFields());\n\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-saving-tiddler\",newTiddler);\n\t\t\t\tthis.wiki.addTiddler(newTiddler);\n\t\t\t\t// If enabled, relink references to renamed tiddler\n\t\t\t\tvar shouldRelink = this.getAttribute(\"relinkOnRename\",\"no\").toLowerCase().trim() === \"yes\";\n\t\t\t\tif(isRename && shouldRelink && this.wiki.tiddlerExists(draftOf)) {\nconsole.log(\"Relinking '\" + draftOf + \"' to '\" + draftTitle + \"'\");\n\t\t\t\t\tthis.wiki.relinkTiddler(draftOf,draftTitle);\n\t\t\t\t}\n\t\t\t\t// Remove the draft tiddler\n\t\t\t\tthis.wiki.deleteTiddler(title);\n\t\t\t\t// Remove the original tiddler if we're renaming it\n\t\t\t\tif(isRename) {\n\t\t\t\t\tthis.wiki.deleteTiddler(draftOf);\n\t\t\t\t}\n\t\t\t\t// #2381 always remove new title & old\n\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\tthis.removeTitleFromStory(storyList,draftOf);\n\t\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\t\t// Replace the draft in the story with the original\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\t\t\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\t\t\t\tif(draftTitle !== this.storyTitle) {\n\t\t\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Trigger an autosave\n\t\t\t\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Take a tiddler out of edit mode without saving the changes\nNavigatorWidget.prototype.handleCancelTiddlerEvent = function(event) {\n\t// Flip the specified tiddler from draft back to the original\n\tvar draftTitle = event.param || event.tiddlerTitle,\n\t\tdraftTiddler = this.wiki.getTiddler(draftTitle),\n\t\toriginalTitle = draftTiddler && draftTiddler.fields[\"draft.of\"];\n\tif(draftTiddler && originalTitle) {\n\t\t// Ask for confirmation if the tiddler text has changed\n\t\tvar isConfirmed = true,\n\t\t\toriginalTiddler = this.wiki.getTiddler(originalTitle),\n\t\t\tstoryList = this.getStoryList();\n\t\tif(this.wiki.isDraftModified(draftTitle)) {\n\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\"ConfirmCancelTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: draftTitle}\n\t\t\t\t}\n\t\t\t));\n\t\t}\n\t\t// Remove the draft tiddler\n\t\tif(isConfirmed) {\n\t\t\tthis.wiki.deleteTiddler(draftTitle);\n\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\tif(originalTiddler) {\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,draftTitle,originalTitle);\n\t\t\t\t\tthis.addToHistory(originalTitle,event.navigateFromClientRect);\n\t\t\t\t} else {\n\t\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\t}\n\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Create a new draft tiddler\n// event.param can either be the title of a template tiddler, or a hashmap of fields.\n//\n// The title of the newly created tiddler follows these rules:\n// * If a hashmap was used and a title field was specified, use that title\n// * If a hashmap was used without a title field, use a default title, if necessary making it unique with a numeric suffix\n// * If a template tiddler was used, use the title of the template, if necessary making it unique with a numeric suffix\n//\n// If a draft of the target tiddler already exists then it is reused\nNavigatorWidget.prototype.handleNewTiddlerEvent = function(event) {\n\t// Get the story details\n\tvar storyList = this.getStoryList(),\n\t\ttemplateTiddler, additionalFields, title, draftTitle, existingTiddler;\n\t// Get the template tiddler (if any)\n\tif(typeof event.param === \"string\") {\n\t\t// Get the template tiddler\n\t\ttemplateTiddler = this.wiki.getTiddler(event.param);\n\t\t// Generate a new title\n\t\ttitle = this.wiki.generateNewTitle(event.param || $tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t}\n\t// Get the specified additional fields\n\tif(typeof event.paramObject === \"object\") {\n\t\tadditionalFields = event.paramObject;\n\t}\n\tif(typeof event.param === \"object\") { // Backwards compatibility with 5.1.3\n\t\tadditionalFields = event.param;\n\t}\n\tif(additionalFields && additionalFields.title) {\n\t\ttitle = additionalFields.title;\n\t}\n\t// Generate a title if we don't have one\n\ttitle = title || this.wiki.generateNewTitle($tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t// Find any existing draft for this tiddler\n\tdraftTitle = this.wiki.findDraft(title);\n\t// Pull in any existing tiddler\n\tif(draftTitle) {\n\t\texistingTiddler = this.wiki.getTiddler(draftTitle);\n\t} else {\n\t\tdraftTitle = this.generateDraftTitle(title);\n\t\texistingTiddler = this.wiki.getTiddler(title);\n\t}\n\t// Merge the tags\n\tvar mergedTags = [];\n\tif(existingTiddler && existingTiddler.fields.tags) {\n\t\t$tw.utils.pushTop(mergedTags,existingTiddler.fields.tags);\n\t}\n\tif(additionalFields && additionalFields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,$tw.utils.parseStringArray(additionalFields.tags));\n\t}\n\tif(templateTiddler && templateTiddler.fields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,templateTiddler.fields.tags);\n\t}\n\t// Save the draft tiddler\n\tvar draftTiddler = new $tw.Tiddler({\n\t\t\ttext: \"\",\n\t\t\t\"draft.title\": title\n\t\t},\n\t\ttemplateTiddler,\n\t\texistingTiddler,\n\t\tadditionalFields,\n\t\tthis.wiki.getCreationFields(),\n\t\t{\n\t\t\ttitle: draftTitle,\n\t\t\t\"draft.of\": title,\n\t\t\ttags: mergedTags\n\t\t},this.wiki.getModificationFields());\n\tthis.wiki.addTiddler(draftTiddler);\n\t// Update the story to insert the new draft at the top and remove any existing tiddler\n\tif(storyList.indexOf(draftTitle) === -1) {\n\t\tvar slot = storyList.indexOf(event.navigateFromTitle);\n\t\tstoryList.splice(slot + 1,0,draftTitle);\n\t}\n\tif(storyList.indexOf(title) !== -1) {\n\t\tstoryList.splice(storyList.indexOf(title),1);\t\t\n\t}\n\tthis.saveStoryList(storyList);\n\t// Add a new record to the top of the history stack\n\tthis.addToHistory(draftTitle);\n\treturn false;\n};\n\n// Import JSON tiddlers into a pending import tiddler\nNavigatorWidget.prototype.handleImportTiddlersEvent = function(event) {\n\t// Get the tiddlers\n\tvar tiddlers = [];\n\ttry {\n\t\ttiddlers = JSON.parse(event.param);\t\n\t} catch(e) {\n\t}\n\t// Get the current $:/Import tiddler\n\tvar importTiddler = this.wiki.getTiddler(IMPORT_TITLE),\n\t\timportData = this.wiki.getTiddlerData(IMPORT_TITLE,{}),\n\t\tnewFields = new Object({\n\t\t\ttitle: IMPORT_TITLE,\n\t\t\ttype: \"application/json\",\n\t\t\t\"plugin-type\": \"import\",\n\t\t\t\"status\": \"pending\"\n\t\t}),\n\t\tincomingTiddlers = [];\n\t// Process each tiddler\n\timportData.tiddlers = importData.tiddlers || {};\n\t$tw.utils.each(tiddlers,function(tiddlerFields) {\n\t\tvar title = tiddlerFields.title;\n\t\tif(title) {\n\t\t\tincomingTiddlers.push(title);\n\t\t\timportData.tiddlers[title] = tiddlerFields;\n\t\t}\n\t});\n\t// Give the active upgrader modules a chance to process the incoming tiddlers\n\tvar messages = this.wiki.invokeUpgraders(incomingTiddlers,importData.tiddlers);\n\t$tw.utils.each(messages,function(message,title) {\n\t\tnewFields[\"message-\" + title] = message;\n\t});\n\t// Deselect any suppressed tiddlers\n\t$tw.utils.each(importData.tiddlers,function(tiddler,title) {\n\t\tif($tw.utils.count(tiddler) === 0) {\n\t\t\tnewFields[\"selection-\" + title] = \"unchecked\";\n\t\t}\n\t});\n\t// Save the $:/Import tiddler\n\tnewFields.text = JSON.stringify(importData,null,$tw.config.preferences.jsonSpaces);\n\tthis.wiki.addTiddler(new $tw.Tiddler(importTiddler,newFields));\n\t// Update the story and history details\n\tif(this.getVariable(\"tv-auto-open-on-import\") !== \"no\") {\n\t\tvar storyList = this.getStoryList(),\n\t\t\thistory = [];\n\t\t// Add it to the story\n\t\tif(storyList.indexOf(IMPORT_TITLE) === -1) {\n\t\t\tstoryList.unshift(IMPORT_TITLE);\n\t\t}\n\t\t// And to history\n\t\thistory.push(IMPORT_TITLE);\n\t\t// Save the updated story and history\n\t\tthis.saveStoryList(storyList);\n\t\tthis.addToHistory(history);\n\t}\n\treturn false;\n};\n\n// \nNavigatorWidget.prototype.handlePerformImportEvent = function(event) {\n\tvar self = this,\n\t\timportTiddler = this.wiki.getTiddler(event.param),\n\t\timportData = this.wiki.getTiddlerDataCached(event.param,{tiddlers: {}}),\n\t\timportReport = [];\n\t// Add the tiddlers to the store\n\timportReport.push($tw.language.getString(\"Import/Imported/Hint\") + \"\\n\");\n\t$tw.utils.each(importData.tiddlers,function(tiddlerFields) {\n\t\tvar title = tiddlerFields.title;\n\t\tif(title && importTiddler && importTiddler.fields[\"selection-\" + title] !== \"unchecked\") {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\t\t\ttiddler = $tw.hooks.invokeHook(\"th-importing-tiddler\",tiddler);\n\t\t\tself.wiki.addTiddler(tiddler);\n\t\t\timportReport.push(\"# [[\" + tiddlerFields.title + \"]]\");\n\t\t}\n\t});\n\t// Replace the $:/Import tiddler with an import report\n\tthis.wiki.addTiddler(new $tw.Tiddler({\n\t\ttitle: event.param,\n\t\ttext: importReport.join(\"\\n\"),\n\t\t\"status\": \"complete\"\n\t}));\n\t// Navigate to the $:/Import tiddler\n\tthis.addToHistory([event.param]);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n};\n\nNavigatorWidget.prototype.handleFoldTiddlerEvent = function(event) {\n\tvar paramObject = event.paramObject || {};\n\tif(paramObject.foldedState) {\n\t\tvar foldedState = this.wiki.getTiddlerText(paramObject.foldedState,\"show\") === \"show\" ? \"hide\" : \"show\";\n\t\tthis.wiki.setText(paramObject.foldedState,\"text\",null,foldedState);\n\t}\n};\n\nNavigatorWidget.prototype.handleFoldOtherTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,event.param === title ? \"show\" : \"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleFoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleUnfoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"show\");\n\t});\n};\n\nNavigatorWidget.prototype.handleRenameTiddlerEvent = function(event) {\n\tvar paramObject = event.paramObject || {},\n\t\tfrom = paramObject.from || event.tiddlerTitle,\n\t\tto = paramObject.to;\n\t$tw.wiki.renameTiddler(from,to);\n};\n\nexports.navigator = NavigatorWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/navigator.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/password.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/password.js\ntype: application/javascript\nmodule-type: widget\n\nPassword widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar PasswordWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nPasswordWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nPasswordWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the current password\n\tvar password = $tw.browser ? $tw.utils.getPassword(this.passwordName) || \"\" : \"\";\n\t// Create our element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"password\");\n\tdomNode.setAttribute(\"value\",password);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nPasswordWidget.prototype.handleChangeEvent = function(event) {\n\tvar password = this.domNodes[0].value;\n\treturn $tw.utils.savePassword(this.passwordName,password);\n};\n\n/*\nCompute the internal state of the widget\n*/\nPasswordWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.passwordName = this.getAttribute(\"name\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nPasswordWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.password = PasswordWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/password.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/radio.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/radio.js\ntype: application/javascript\nmodule-type: widget\n\nSet a field or index at a given tiddler via radio buttons\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RadioWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRadioWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRadioWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",this.radioClass);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"radio\");\n\tif(this.getValue() == this.radioValue) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nRadioWidget.prototype.getValue = function() {\n\tvar value,\n\t\ttiddler = this.wiki.getTiddler(this.radioTitle);\n\tif (this.radioIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.radioTitle,this.radioIndex);\n\t} else {\n\t\tvalue = tiddler && tiddler.getFieldString(this.radioField);\n\t}\n\treturn value;\n};\n\nRadioWidget.prototype.setValue = function() {\n\tif(this.radioIndex) {\n\t\tthis.wiki.setText(this.radioTitle,\"\",this.radioIndex,this.radioValue);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.radioTitle),\n\t\t\taddition = {};\n\t\taddition[this.radioField] = this.radioValue;\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),{title: this.radioTitle},tiddler,addition,this.wiki.getModificationFields()));\n\t}\n};\n\nRadioWidget.prototype.handleChangeEvent = function(event) {\n\tif(this.inputDomNode.checked) {\n\t\tthis.setValue();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRadioWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.radioTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.radioField = this.getAttribute(\"field\",\"text\");\n\tthis.radioIndex = this.getAttribute(\"index\");\n\tthis.radioValue = this.getAttribute(\"value\");\n\tthis.radioClass = this.getAttribute(\"class\",\"\");\n\tif(this.radioClass !== \"\") {\n\t\tthis.radioClass += \" \";\n\t}\n\tthis.radioClass += \"tc-radio\";\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRadioWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.value || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.radioTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue() === this.radioValue;\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.radio = RadioWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/radio.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/raw.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/raw.js\ntype: application/javascript\nmodule-type: widget\n\nRaw widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RawWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRawWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRawWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar div = this.document.createElement(\"div\");\n\tdiv.innerHTML=this.parseTreeNode.html;\n\tparent.insertBefore(div,nextSibling);\n\tthis.domNodes.push(div);\t\n};\n\n/*\nCompute the internal state of the widget\n*/\nRawWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRawWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.raw = RawWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/raw.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/reveal.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/reveal.js\ntype: application/javascript\nmodule-type: widget\n\nReveal widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RevealWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRevealWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRevealWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.revealTag && $tw.config.htmlUnsafeElements.indexOf(this.revealTag) === -1) {\n\t\ttag = this.revealTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\tvar classes = this[\"class\"].split(\" \") || [];\n\tclasses.push(\"tc-reveal\");\n\tdomNode.className = classes.join(\" \");\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\t}\n\tif(!this.isOpen) {\n\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t}\n\tthis.domNodes.push(domNode);\n};\n\nRevealWidget.prototype.positionPopup = function(domNode) {\n\tdomNode.style.position = \"absolute\";\n\tdomNode.style.zIndex = \"1000\";\n\tswitch(this.position) {\n\t\tcase \"left\":\n\t\t\tdomNode.style.left = (this.popup.left - domNode.offsetWidth) + \"px\";\n\t\t\tdomNode.style.top = this.popup.top + \"px\";\n\t\t\tbreak;\n\t\tcase \"above\":\n\t\t\tdomNode.style.left = this.popup.left + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top - domNode.offsetHeight) + \"px\";\n\t\t\tbreak;\n\t\tcase \"aboveright\":\n\t\t\tdomNode.style.left = (this.popup.left + this.popup.width) + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top + this.popup.height - domNode.offsetHeight) + \"px\";\n\t\t\tbreak;\n\t\tcase \"right\":\n\t\t\tdomNode.style.left = (this.popup.left + this.popup.width) + \"px\";\n\t\t\tdomNode.style.top = this.popup.top + \"px\";\n\t\t\tbreak;\n\t\tcase \"belowleft\":\n\t\t\tdomNode.style.left = (this.popup.left + this.popup.width - domNode.offsetWidth) + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top + this.popup.height) + \"px\";\n\t\t\tbreak;\n\t\tdefault: // Below\n\t\t\tdomNode.style.left = this.popup.left + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top + this.popup.height) + \"px\";\n\t\t\tbreak;\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRevealWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.state = this.getAttribute(\"state\");\n\tthis.revealTag = this.getAttribute(\"tag\");\n\tthis.type = this.getAttribute(\"type\");\n\tthis.text = this.getAttribute(\"text\");\n\tthis.position = this.getAttribute(\"position\");\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis.style = this.getAttribute(\"style\",\"\");\n\tthis[\"default\"] = this.getAttribute(\"default\",\"\");\n\tthis.animate = this.getAttribute(\"animate\",\"no\");\n\tthis.retain = this.getAttribute(\"retain\",\"no\");\n\tthis.openAnimation = this.animate === \"no\" ? undefined : \"open\";\n\tthis.closeAnimation = this.animate === \"no\" ? undefined : \"close\";\n\t// Compute the title of the state tiddler and read it\n\tthis.stateTitle = this.state;\n\tthis.readState();\n\t// Construct the child widgets\n\tvar childNodes = this.isOpen ? this.parseTreeNode.children : [];\n\tthis.hasChildNodes = this.isOpen;\n\tthis.makeChildWidgets(childNodes);\n};\n\n/*\nRead the state tiddler\n*/\nRevealWidget.prototype.readState = function() {\n\t// Read the information from the state tiddler\n\tvar state = this.stateTitle ? this.wiki.getTextReference(this.stateTitle,this[\"default\"],this.getVariable(\"currentTiddler\")) : this[\"default\"];\n\tswitch(this.type) {\n\t\tcase \"popup\":\n\t\t\tthis.readPopupState(state);\n\t\t\tbreak;\n\t\tcase \"match\":\n\t\t\tthis.readMatchState(state);\n\t\t\tbreak;\n\t\tcase \"nomatch\":\n\t\t\tthis.readMatchState(state);\n\t\t\tthis.isOpen = !this.isOpen;\n\t\t\tbreak;\n\t}\n};\n\nRevealWidget.prototype.readMatchState = function(state) {\n\tthis.isOpen = state === this.text;\n};\n\nRevealWidget.prototype.readPopupState = function(state) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(state);\n\t// Check if the state matches the location regexp\n\tif(match) {\n\t\t// If so, we're open\n\t\tthis.isOpen = true;\n\t\t// Get the location\n\t\tthis.popup = {\n\t\t\tleft: parseFloat(match[1]),\n\t\t\ttop: parseFloat(match[2]),\n\t\t\twidth: parseFloat(match[3]),\n\t\t\theight: parseFloat(match[4])\n\t\t};\n\t} else {\n\t\t// If not, we're closed\n\t\tthis.isOpen = false;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRevealWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.state || changedAttributes.type || changedAttributes.text || changedAttributes.position || changedAttributes[\"default\"] || changedAttributes.animate) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false,\n\t\t\tcurrentlyOpen = this.isOpen;\n\t\tthis.readState();\n\t\tif(this.isOpen !== currentlyOpen) {\n\t\t\tif(this.retain === \"yes\") {\n\t\t\t\tthis.updateState();\n\t\t\t} else {\n\t\t\t\tthis.refreshSelf();\n\t\t\t\trefreshed = true;\n\t\t\t}\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\n/*\nCalled by refresh() to dynamically show or hide the content\n*/\nRevealWidget.prototype.updateState = function() {\n\t// Read the current state\n\tthis.readState();\n\t// Construct the child nodes if needed\n\tvar domNode = this.domNodes[0];\n\tif(this.isOpen && !this.hasChildNodes) {\n\t\tthis.hasChildNodes = true;\n\t\tthis.makeChildWidgets(this.parseTreeNode.children);\n\t\tthis.renderChildren(domNode,null);\n\t}\n\t// Animate our DOM node\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\n\t}\n\tif(this.isOpen) {\n\t\tdomNode.removeAttribute(\"hidden\");\n        $tw.anim.perform(this.openAnimation,domNode);\n\t} else {\n\t\t$tw.anim.perform(this.closeAnimation,domNode,{callback: function() {\n\t\t\tdomNode.setAttribute(\"hidden\",\"true\");\n        }});\n\t}\n};\n\nexports.reveal = RevealWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/reveal.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/scrollable.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/scrollable.js\ntype: application/javascript\nmodule-type: widget\n\nScrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ScrollableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.scaleFactor = 1;\n\tthis.addEventListeners([\n\t\t{type: \"tm-scroll\", handler: \"handleScrollEvent\"}\n\t]);\n\tif($tw.browser) {\n\t\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\tfunction(callback) {\n\t\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t\t};\n\t\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\t\twindow.webkitCancelAnimationFrame ||\n\t\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\t\twindow.mozCancelAnimationFrame ||\n\t\t\twindow.mozCancelRequestAnimationFrame ||\n\t\t\tfunction(id) {\n\t\t\t\twindow.clearTimeout(id);\n\t\t\t};\n\t}\n};\n\n/*\nInherit from the base widget class\n*/\nScrollableWidget.prototype = new Widget();\n\nScrollableWidget.prototype.cancelScroll = function() {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(window,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle a scroll event\n*/\nScrollableWidget.prototype.handleScrollEvent = function(event) {\n\t// Pass the scroll event through if our offsetsize is larger than our scrollsize\n\tif(this.outerDomNode.scrollWidth <= this.outerDomNode.offsetWidth && this.outerDomNode.scrollHeight <= this.outerDomNode.offsetHeight && this.fallthrough === \"yes\") {\n\t\treturn true;\n\t}\n\tthis.scrollIntoView(event.target);\n\treturn false; // Handled event\n};\n\n/*\nScroll an element into view\n*/\nScrollableWidget.prototype.scrollIntoView = function(element) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tthis.cancelScroll();\n\tthis.startTime = Date.now();\n\tvar scrollPosition = {\n\t\tx: this.outerDomNode.scrollLeft,\n\t\ty: this.outerDomNode.scrollTop\n\t};\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar scrollableBounds = this.outerDomNode.getBoundingClientRect(),\n\t\tclientTargetBounds = element.getBoundingClientRect(),\n\t\tbounds = {\n\t\t\tleft: clientTargetBounds.left + scrollPosition.x - scrollableBounds.left,\n\t\t\ttop: clientTargetBounds.top + scrollPosition.y - scrollableBounds.top,\n\t\t\twidth: clientTargetBounds.width,\n\t\t\theight: clientTargetBounds.height\n\t\t};\n\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\tvar getEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\t// If the target is already visible then stay where we are\n\t\t\tif(targetPos >= currentPos && (targetPos + targetSize) <= (currentPos + currentSize)) {\n\t\t\t\treturn currentPos;\n\t\t\t// If the target is above/left of the current view, then scroll to its top/left\n\t\t\t} else if(targetPos <= currentPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// If the target is smaller than the window and the scroll position is too far up, then scroll till the target is at the bottom of the window\n\t\t\t} else if(targetSize < currentSize && currentPos < (targetPos + targetSize - currentSize)) {\n\t\t\t\treturn targetPos + targetSize - currentSize;\n\t\t\t// If the target is big, then just scroll to the top\n\t\t\t} else if(currentPos < targetPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// Otherwise, stay where we are\n\t\t\t} else {\n\t\t\t\treturn currentPos;\n\t\t\t}\n\t\t},\n\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,this.outerDomNode.offsetWidth),\n\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,this.outerDomNode.offsetHeight);\n\t// Only scroll if necessary\n\tif(endX !== scrollPosition.x || endY !== scrollPosition.y) {\n\t\tvar self = this,\n\t\t\tdrawFrame;\n\t\tdrawFrame = function () {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll();\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tself.outerDomNode.scrollLeft = scrollPosition.x + (endX - scrollPosition.x) * t;\n\t\t\tself.outerDomNode.scrollTop = scrollPosition.y + (endY - scrollPosition.y) * t;\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(window,drawFrame);\n\t\t\t}\n\t\t};\n\t\tdrawFrame();\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nScrollableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create elements\n\tthis.outerDomNode = this.document.createElement(\"div\");\n\t$tw.utils.setStyle(this.outerDomNode,[\n\t\t{overflowY: \"auto\"},\n\t\t{overflowX: \"auto\"},\n\t\t{webkitOverflowScrolling: \"touch\"}\n\t]);\n\tthis.innerDomNode = this.document.createElement(\"div\");\n\tthis.outerDomNode.appendChild(this.innerDomNode);\n\t// Assign classes\n\tthis.outerDomNode.className = this[\"class\"] || \"\";\n\t// Insert element\n\tparent.insertBefore(this.outerDomNode,nextSibling);\n\tthis.renderChildren(this.innerDomNode,null);\n\tthis.domNodes.push(this.outerDomNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nScrollableWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.fallthrough = this.getAttribute(\"fallthrough\",\"yes\");\n\tthis[\"class\"] = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nScrollableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.scrollable = ScrollableWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/scrollable.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/select.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/select.js\ntype: application/javascript\nmodule-type: widget\n\nSelect widget:\n\n```\n<$select tiddler=\"MyTiddler\" field=\"text\">\n<$list filter=\"[tag[chapter]]\">\n<option value=<<currentTiddler>>>\n<$view field=\"description\"/>\n</option>\n</$list>\n</$select>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SelectWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSelectWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSelectWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\tthis.setSelectValue();\n\t$tw.utils.addEventListeners(this.getSelectDomNode(),[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n};\n\n/*\nHandle a change event\n*/\nSelectWidget.prototype.handleChangeEvent = function(event) {\n\t// Get the new value and assign it to the tiddler\n\tif(this.selectMultiple == false) {\n\t\tvar value = this.getSelectDomNode().value;\n\t} else {\n\t\tvar value = this.getSelectValues()\n\t\t\t\tvalue = $tw.utils.stringifyList(value);\n\t}\n\tthis.wiki.setText(this.selectTitle,this.selectField,this.selectIndex,value);\n\t// Trigger actions\n\tif(this.selectActions) {\n\t\tthis.invokeActionString(this.selectActions,this,event);\n\t}\n};\n\n/*\nIf necessary, set the value of the select element to the current value\n*/\nSelectWidget.prototype.setSelectValue = function() {\n\tvar value = this.selectDefault;\n\t// Get the value\n\tif(this.selectIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.selectTitle,this.selectIndex);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.selectTitle);\n\t\tif(tiddler) {\n\t\t\tif(this.selectField === \"text\") {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.selectTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.selectField)) {\n\t\t\t\t\tvalue = tiddler.getFieldString(this.selectField);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.selectField === \"title\") {\n\t\t\t\tvalue = this.selectTitle;\n\t\t\t}\n\t\t}\n\t}\n\t// Assign it to the select element if it's different than the current value\n\tif (this.selectMultiple) {\n\t\tvalue = value === undefined ? \"\" : value;\n\t\tvar select = this.getSelectDomNode();\n\t\tvar values = Array.isArray(value) ? value : $tw.utils.parseStringArray(value);\n\t\tfor(var i=0; i < select.children.length; i++){\n\t\t\tif(values.indexOf(select.children[i].value) != -1) {\n\t\t\t\tselect.children[i].selected = true;\n\t\t\t}\n\t\t}\n\t\t\n\t} else {\n\t\tvar domNode = this.getSelectDomNode();\n\t\tif(domNode.value !== value) {\n\t\t\tdomNode.value = value;\n\t\t}\n\t}\n};\n\n/*\nGet the DOM node of the select element\n*/\nSelectWidget.prototype.getSelectDomNode = function() {\n\treturn this.children[0].domNodes[0];\n};\n\n// Return an array of the selected opion values\n// select is an HTML select element\nSelectWidget.prototype.getSelectValues = function() {\n\tvar select, result, options, opt;\n\tselect = this.getSelectDomNode();\n\tresult = [];\n\toptions = select && select.options;\n\tfor (var i=0; i<options.length; i++) {\n\t\topt = options[i];\n\t\tif (opt.selected) {\n\t\t\tresult.push(opt.value || opt.text);\n\t\t}\n\t}\n\treturn result;\n}\n\n/*\nCompute the internal state of the widget\n*/\nSelectWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.selectActions = this.getAttribute(\"actions\");\n\tthis.selectTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.selectField = this.getAttribute(\"field\",\"text\");\n\tthis.selectIndex = this.getAttribute(\"index\");\n\tthis.selectClass = this.getAttribute(\"class\");\n\tthis.selectDefault = this.getAttribute(\"default\");\n\tthis.selectMultiple = this.getAttribute(\"multiple\", false);\n\tthis.selectSize = this.getAttribute(\"size\");\n\t// Make the child widgets\n\tvar selectNode = {\n\t\ttype: \"element\",\n\t\ttag: \"select\",\n\t\tchildren: this.parseTreeNode.children\n\t};\n\tif(this.selectClass) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"class\",this.selectClass);\n\t}\n\tif(this.selectMultiple) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"multiple\",\"multiple\");\n\t}\n\tif(this.selectSize) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"size\",this.selectSize);\n\t}\n\tthis.makeChildWidgets([selectNode]);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSelectWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// If we're using a different tiddler/field/index then completely refresh ourselves\n\tif(changedAttributes.selectTitle || changedAttributes.selectField || changedAttributes.selectIndex) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t// If the target tiddler value has changed, just update setting and refresh the children\n\t} else {\n\t\tvar childrenRefreshed = this.refreshChildren(changedTiddlers);\n\t\tif(changedTiddlers[this.selectTitle] || childrenRefreshed) {\n\t\t\tthis.setSelectValue();\n\t\t} \n\t\treturn childrenRefreshed;\n\t}\n};\n\nexports.select = SelectWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/select.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/set.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/set.js\ntype: application/javascript\nmodule-type: widget\n\nSet variable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.setName = this.getAttribute(\"name\",\"currentTiddler\");\n\tthis.setFilter = this.getAttribute(\"filter\");\n\tthis.setSelect = this.getAttribute(\"select\");\n\tthis.setValue = this.getAttribute(\"value\");\n\tthis.setEmptyValue = this.getAttribute(\"emptyValue\");\n\t// Set context variable\n\tthis.setVariable(this.setName,this.getValue(),this.parseTreeNode.params);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nGet the value to be assigned\n*/\nSetWidget.prototype.getValue = function() {\n\tvar value = this.setValue;\n\tif(this.setFilter) {\n\t\tvar results = this.wiki.filterTiddlers(this.setFilter,this);\n\t\tif(!this.setValue) {\n\t\t\tvar select;\n\t\t\tif(this.setSelect) {\n\t\t\t\tselect = parseInt(this.setSelect,10);\n\t\t\t}\n\t\t\tif(select !== undefined) {\n\t\t\t\tvalue = results[select] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = $tw.utils.stringifyList(results);\t\t\t\n\t\t\t}\n\t\t}\n\t\tif(results.length === 0 && this.setEmptyValue !== undefined) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t}\n\t} else if(!value && this.setEmptyValue) {\n\t\tvalue = this.setEmptyValue;\n\t}\n\treturn value;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSetWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.filter || changedAttributes.select ||changedAttributes.value || changedAttributes.emptyValue ||\n\t   (this.setFilter && this.getValue() != this.variables[this.setName].value)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.setvariable = SetWidget;\nexports.set = SetWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/set.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/text.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/text.js\ntype: application/javascript\nmodule-type: widget\n\nText node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TextNodeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTextNodeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTextNodeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar text = this.getAttribute(\"text\",this.parseTreeNode.text || \"\");\n\ttext = text.replace(/\\r/mg,\"\");\n\tvar textNode = this.document.createTextNode(text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTextNodeWidget.prototype.execute = function() {\n\t// Nothing to do for a text node\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTextNodeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.text) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.text = TextNodeWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/text.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/tiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/tiddler.js\ntype: application/javascript\nmodule-type: widget\n\nTiddler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTiddlerWidget.prototype.execute = function() {\n\tthis.tiddlerState = this.computeTiddlerState();\n\tthis.setVariable(\"currentTiddler\",this.tiddlerState.currentTiddler);\n\tthis.setVariable(\"missingTiddlerClass\",this.tiddlerState.missingTiddlerClass);\n\tthis.setVariable(\"shadowTiddlerClass\",this.tiddlerState.shadowTiddlerClass);\n\tthis.setVariable(\"systemTiddlerClass\",this.tiddlerState.systemTiddlerClass);\n\tthis.setVariable(\"tiddlerTagClasses\",this.tiddlerState.tiddlerTagClasses);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nCompute the tiddler state flags\n*/\nTiddlerWidget.prototype.computeTiddlerState = function() {\n\t// Get our parameters\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Compute the state\n\tvar state = {\n\t\tcurrentTiddler: this.tiddlerTitle || \"\",\n\t\tmissingTiddlerClass: (this.wiki.tiddlerExists(this.tiddlerTitle) || this.wiki.isShadowTiddler(this.tiddlerTitle)) ? \"tc-tiddler-exists\" : \"tc-tiddler-missing\",\n\t\tshadowTiddlerClass: this.wiki.isShadowTiddler(this.tiddlerTitle) ? \"tc-tiddler-shadow\" : \"\",\n\t\tsystemTiddlerClass: this.wiki.isSystemTiddler(this.tiddlerTitle) ? \"tc-tiddler-system\" : \"\",\n\t\ttiddlerTagClasses: this.getTagClasses()\n\t};\n\t// Compute a simple hash to make it easier to detect changes\n\tstate.hash = state.currentTiddler + state.missingTiddlerClass + state.shadowTiddlerClass + state.systemTiddlerClass + state.tiddlerTagClasses;\n\treturn state;\n};\n\n/*\nCreate a string of CSS classes derived from the tags of the current tiddler\n*/\nTiddlerWidget.prototype.getTagClasses = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\tif(tiddler) {\n\t\tvar tags = [];\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\ttags.push(\"tc-tagged-\" + encodeURIComponent(tag));\n\t\t});\n\t\treturn tags.join(\" \");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tnewTiddlerState = this.computeTiddlerState();\n\tif(changedAttributes.tiddler || newTiddlerState.hash !== this.tiddlerState.hash) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.tiddler = TiddlerWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/tiddler.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/transclude.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/transclude.js\ntype: application/javascript\nmodule-type: widget\n\nTransclude widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TranscludeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTranscludeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTranscludeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTranscludeWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.transcludeTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.transcludeSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.transcludeField = this.getAttribute(\"field\");\n\tthis.transcludeIndex = this.getAttribute(\"index\");\n\tthis.transcludeMode = this.getAttribute(\"mode\");\n\t// Parse the text reference\n\tvar parseAsInline = !this.parseTreeNode.isBlock;\n\tif(this.transcludeMode === \"inline\") {\n\t\tparseAsInline = true;\n\t} else if(this.transcludeMode === \"block\") {\n\t\tparseAsInline = false;\n\t}\n\tvar parser = this.wiki.parseTextReference(\n\t\t\t\t\t\tthis.transcludeTitle,\n\t\t\t\t\t\tthis.transcludeField,\n\t\t\t\t\t\tthis.transcludeIndex,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tparseAsInline: parseAsInline,\n\t\t\t\t\t\t\tsubTiddler: this.transcludeSubTiddler\n\t\t\t\t\t\t}),\n\t\tparseTreeNodes = parser ? parser.tree : this.parseTreeNode.children;\n\t// Set context variables for recursion detection\n\tvar recursionMarker = this.makeRecursionMarker();\n\tthis.setVariable(\"transclusion\",recursionMarker);\n\t// Check for recursion\n\tif(parser) {\n\t\tif(this.parentWidget && this.parentWidget.hasVariable(\"transclusion\",recursionMarker)) {\n\t\t\tparseTreeNodes = [{type: \"element\", tag: \"span\", attributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-error\"}\n\t\t\t}, children: [\n\t\t\t\t{type: \"text\", text: $tw.language.getString(\"Error/RecursiveTransclusion\")}\n\t\t\t]}];\n\t\t}\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nCompose a string comprising the title, field and/or index to identify this transclusion for recursion detection\n*/\nTranscludeWidget.prototype.makeRecursionMarker = function() {\n\tvar output = [];\n\toutput.push(\"{\");\n\toutput.push(this.getVariable(\"currentTiddler\",{defaultValue: \"\"}));\n\toutput.push(\"|\");\n\toutput.push(this.transcludeTitle || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeField || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeIndex || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeSubTiddler || \"\");\n\toutput.push(\"}\");\n\treturn output.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTranscludeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedTiddlers[this.transcludeTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.transclude = TranscludeWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/transclude.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/vars.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/vars.js\ntype: application/javascript\nmodule-type: widget\n\nThis widget allows multiple variables to be set in one go:\n\n```\n\\define helloworld() Hello world!\n<$vars greeting=\"Hi\" me={{!!title}} sentence=<<helloworld>>>\n  <<greeting>>! I am <<me>> and I say: <<sentence>>\n</$vars>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar VarsWidget = function(parseTreeNode,options) {\n\t// Call the constructor\n\tWidget.call(this);\n\t// Initialise\t\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nVarsWidget.prototype = Object.create(Widget.prototype);\n\n/*\nRender this widget into the DOM\n*/\nVarsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nVarsWidget.prototype.execute = function() {\n\t// Parse variables\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(val,key) {\n\t\tif(key.charAt(0) !== \"$\") {\n\t\t\tself.setVariable(key,val);\n\t\t}\n\t});\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nVarsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"vars\"] = VarsWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/vars.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/view.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/view.js\ntype: application/javascript\nmodule-type: widget\n\nView widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ViewWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nViewWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nViewWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tif(this.text) {\n\t\tvar textNode = this.document.createTextNode(this.text);\n\t\tparent.insertBefore(textNode,nextSibling);\n\t\tthis.domNodes.push(textNode);\n\t} else {\n\t\tthis.makeChildWidgets();\n\t\tthis.renderChildren(parent,nextSibling);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nViewWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.viewTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.viewSubtiddler = this.getAttribute(\"subtiddler\");\n\tthis.viewField = this.getAttribute(\"field\",\"text\");\n\tthis.viewIndex = this.getAttribute(\"index\");\n\tthis.viewFormat = this.getAttribute(\"format\",\"text\");\n\tthis.viewTemplate = this.getAttribute(\"template\",\"\");\n\tswitch(this.viewFormat) {\n\t\tcase \"htmlwikified\":\n\t\t\tthis.text = this.getValueAsHtmlWikified();\n\t\t\tbreak;\n\t\tcase \"plainwikified\":\n\t\t\tthis.text = this.getValueAsPlainWikified();\n\t\t\tbreak;\n\t\tcase \"htmlencodedplainwikified\":\n\t\t\tthis.text = this.getValueAsHtmlEncodedPlainWikified();\n\t\t\tbreak;\n\t\tcase \"htmlencoded\":\n\t\t\tthis.text = this.getValueAsHtmlEncoded();\n\t\t\tbreak;\n\t\tcase \"urlencoded\":\n\t\t\tthis.text = this.getValueAsUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"doubleurlencoded\":\n\t\t\tthis.text = this.getValueAsDoubleUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"date\":\n\t\t\tthis.text = this.getValueAsDate(this.viewTemplate);\n\t\t\tbreak;\n\t\tcase \"relativedate\":\n\t\t\tthis.text = this.getValueAsRelativeDate();\n\t\t\tbreak;\n\t\tcase \"stripcomments\":\n\t\t\tthis.text = this.getValueAsStrippedComments();\n\t\t\tbreak;\n\t\tcase \"jsencoded\":\n\t\t\tthis.text = this.getValueAsJsEncoded();\n\t\t\tbreak;\n\t\tdefault: // \"text\"\n\t\t\tthis.text = this.getValueAsText();\n\t\t\tbreak;\n\t}\n};\n\n/*\nThe various formatter functions are baked into this widget for the moment. Eventually they will be replaced by macro functions\n*/\n\n/*\nRetrieve the value of the widget. Options are:\nasString: Optionally return the value as a string\n*/\nViewWidget.prototype.getValue = function(options) {\n\toptions = options || {};\n\tvar value = options.asString ? \"\" : undefined;\n\tif(this.viewIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.viewTitle,this.viewIndex);\n\t} else {\n\t\tvar tiddler;\n\t\tif(this.viewSubtiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.viewTitle,this.viewSubtiddler);\t\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.viewTitle);\n\t\t}\n\t\tif(tiddler) {\n\t\t\tif(this.viewField === \"text\" && !this.viewSubtiddler) {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.viewTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.viewField)) {\n\t\t\t\t\tif(options.asString) {\n\t\t\t\t\t\tvalue = tiddler.getFieldString(this.viewField);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue = tiddler.fields[this.viewField];\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.viewField === \"title\") {\n\t\t\t\tvalue = this.viewTitle;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nViewWidget.prototype.getValueAsText = function() {\n\treturn this.getValue({asString: true});\n};\n\nViewWidget.prototype.getValueAsHtmlWikified = function() {\n\treturn this.wiki.renderText(\"text/html\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{parentWidget: this});\n};\n\nViewWidget.prototype.getValueAsPlainWikified = function() {\n\treturn this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{parentWidget: this});\n};\n\nViewWidget.prototype.getValueAsHtmlEncodedPlainWikified = function() {\n\treturn $tw.utils.htmlEncode(this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{parentWidget: this}));\n};\n\nViewWidget.prototype.getValueAsHtmlEncoded = function() {\n\treturn $tw.utils.htmlEncode(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsUrlEncoded = function() {\n\treturn encodeURIComponent(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsDoubleUrlEncoded = function() {\n\treturn encodeURIComponent(encodeURIComponent(this.getValueAsText()));\n};\n\nViewWidget.prototype.getValueAsDate = function(format) {\n\tformat = format || \"YYYY MM DD 0hh:0mm\";\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.formatDateString(value,format);\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsRelativeDate = function(format) {\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.getRelativeDate((new Date()) - (new Date(value))).description;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsStrippedComments = function() {\n\tvar lines = this.getValueAsText().split(\"\\n\"),\n\t\tout = [];\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar text = lines[line];\n\t\tif(!/^\\s*\\/\\/#/.test(text)) {\n\t\t\tout.push(text);\n\t\t}\n\t}\n\treturn out.join(\"\\n\");\n};\n\nViewWidget.prototype.getValueAsJsEncoded = function() {\n\treturn $tw.utils.stringify(this.getValueAsText());\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nViewWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.template || changedAttributes.format || changedTiddlers[this.viewTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.view = ViewWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/view.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/widget.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/widget.js\ntype: application/javascript\nmodule-type: widget\n\nWidget base class\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate a widget object for a parse tree node\n\tparseTreeNode: reference to the parse tree node to be rendered\n\toptions: see below\nOptions include:\n\twiki: mandatory reference to wiki associated with this render tree\n\tparentWidget: optional reference to a parent renderer node for the context chain\n\tdocument: optional document object to use instead of global document\n*/\nvar Widget = function(parseTreeNode,options) {\n\tif(arguments.length > 0) {\n\t\tthis.initialise(parseTreeNode,options);\n\t}\n};\n\n/*\nInitialise widget properties. These steps are pulled out of the constructor so that we can reuse them in subclasses\n*/\nWidget.prototype.initialise = function(parseTreeNode,options) {\n\toptions = options || {};\n\t// Save widget info\n\tthis.parseTreeNode = parseTreeNode;\n\tthis.wiki = options.wiki;\n\tthis.parentWidget = options.parentWidget;\n\tthis.variablesConstructor = function() {};\n\tthis.variablesConstructor.prototype = this.parentWidget ? this.parentWidget.variables : {};\n\tthis.variables = new this.variablesConstructor();\n\tthis.document = options.document;\n\tthis.attributes = {};\n\tthis.children = [];\n\tthis.domNodes = [];\n\tthis.eventListeners = {};\n\t// Hashmap of the widget classes\n\tif(!this.widgetClasses) {\n\t\tWidget.prototype.widgetClasses = $tw.modules.applyMethods(\"widget\");\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWidget.prototype.execute = function() {\n\tthis.makeChildWidgets();\n};\n\n/*\nSet the value of a context variable\nname: name of the variable\nvalue: value of the variable\nparams: array of {name:, default:} for each parameter\n*/\nWidget.prototype.setVariable = function(name,value,params) {\n\tthis.variables[name] = {value: value, params: params};\n};\n\n/*\nGet the prevailing value of a context variable\nname: name of variable\noptions: see below\nOptions include\nparams: array of {name:, value:} for each parameter\ndefaultValue: default value if the variable is not defined\n*/\nWidget.prototype.getVariable = function(name,options) {\n\toptions = options || {};\n\tvar actualParams = options.params || [],\n\t\tparentWidget = this.parentWidget;\n\t// Check for the variable defined in the parent widget (or an ancestor in the prototype chain)\n\tif(parentWidget && name in parentWidget.variables) {\n\t\tvar variable = parentWidget.variables[name],\n\t\t\tvalue = variable.value;\n\t\t// Substitute any parameters specified in the definition\n\t\tvalue = this.substituteVariableParameters(value,variable.params,actualParams);\n\t\tvalue = this.substituteVariableReferences(value);\n\t\treturn value;\n\t}\n\t// If the variable doesn't exist in the parent widget then look for a macro module\n\treturn this.evaluateMacroModule(name,actualParams,options.defaultValue);\n};\n\nWidget.prototype.substituteVariableParameters = function(text,formalParams,actualParams) {\n\tif(formalParams) {\n\t\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\t\tparamInfo, paramValue;\n\t\t// Step through each of the parameters in the macro definition\n\t\tfor(var p=0; p<formalParams.length; p++) {\n\t\t\t// Check if we've got a macro call parameter with the same name\n\t\t\tparamInfo = formalParams[p];\n\t\t\tparamValue = undefined;\n\t\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If not, use the next available anonymous macro call parameter\n\t\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\t\tnextAnonParameter++;\n\t\t\t}\n\t\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t\t}\n\t\t\t// If we've still not got a value, use the default, if any\n\t\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t\t// Replace any instances of this parameter\n\t\t\ttext = $tw.utils.replaceString(text,new RegExp(\"\\\\$\" + $tw.utils.escapeRegExp(paramInfo.name) + \"\\\\$\",\"mg\"),paramValue);\n\t\t}\n\t}\n\treturn text;\n};\n\nWidget.prototype.substituteVariableReferences = function(text) {\n\tvar self = this;\n\treturn (text || \"\").replace(/\\$\\(([^\\)\\$]+)\\)\\$/g,function(match,p1,offset,string) {\n\t\treturn self.getVariable(p1,{defaultValue: \"\"});\n\t});\n};\n\nWidget.prototype.evaluateMacroModule = function(name,actualParams,defaultValue) {\n\tif($tw.utils.hop($tw.macros,name)) {\n\t\tvar macro = $tw.macros[name],\n\t\t\targs = [];\n\t\tif(macro.params.length > 0) {\n\t\t\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\t\t\tparamInfo, paramValue;\n\t\t\t// Step through each of the parameters in the macro definition\n\t\t\tfor(var p=0; p<macro.params.length; p++) {\n\t\t\t\t// Check if we've got a macro call parameter with the same name\n\t\t\t\tparamInfo = macro.params[p];\n\t\t\t\tparamValue = undefined;\n\t\t\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If not, use the next available anonymous macro call parameter\n\t\t\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\t\t\tnextAnonParameter++;\n\t\t\t\t}\n\t\t\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t\t\t}\n\t\t\t\t// If we've still not got a value, use the default, if any\n\t\t\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t\t\t// Save the parameter\n\t\t\t\targs.push(paramValue);\n\t\t\t}\n\t\t}\n\t\telse for(var i=0; i<actualParams.length; ++i) {\n\t\t\targs.push(actualParams[i].value);\n\t\t}\n\t\treturn (macro.run.apply(this,args) || \"\").toString();\n\t} else {\n\t\treturn defaultValue;\n\t}\n};\n\n/*\nCheck whether a given context variable value exists in the parent chain\n*/\nWidget.prototype.hasVariable = function(name,value) {\n\tvar node = this;\n\twhile(node) {\n\t\tif($tw.utils.hop(node.variables,name) && node.variables[name].value === value) {\n\t\t\treturn true;\n\t\t}\n\t\tnode = node.parentWidget;\n\t}\n\treturn false;\n};\n\n/*\nConstruct a qualifying string based on a hash of concatenating the values of a given variable in the parent chain\n*/\nWidget.prototype.getStateQualifier = function(name) {\n\tthis.qualifiers = this.qualifiers || Object.create(null);\n\tname = name || \"transclusion\";\n\tif(this.qualifiers[name]) {\n\t\treturn this.qualifiers[name];\n\t} else {\n\t\tvar output = [],\n\t\t\tnode = this;\n\t\twhile(node && node.parentWidget) {\n\t\t\tif($tw.utils.hop(node.parentWidget.variables,name)) {\n\t\t\t\toutput.push(node.getVariable(name));\n\t\t\t}\n\t\t\tnode = node.parentWidget;\n\t\t}\n\t\tvar value = $tw.utils.hashString(output.join(\"\"));\n\t\tthis.qualifiers[name] = value;\n\t\treturn value;\n\t}\n};\n\n/*\nCompute the current values of the attributes of the widget. Returns a hashmap of the names of the attributes that have changed\n*/\nWidget.prototype.computeAttributes = function() {\n\tvar changedAttributes = {},\n\t\tself = this,\n\t\tvalue;\n\t$tw.utils.each(this.parseTreeNode.attributes,function(attribute,name) {\n\t\tif(attribute.type === \"filtered\") {\n\t\t\tvalue = self.wiki.filterTiddlers(attribute.filter,self)[0] || \"\";\n\t\t} else if(attribute.type === \"indirect\") {\n\t\t\tvalue = self.wiki.getTextReference(attribute.textReference,\"\",self.getVariable(\"currentTiddler\"));\n\t\t} else if(attribute.type === \"macro\") {\n\t\t\tvalue = self.getVariable(attribute.value.name,{params: attribute.value.params});\n\t\t} else { // String attribute\n\t\t\tvalue = attribute.value;\n\t\t}\n\t\t// Check whether the attribute has changed\n\t\tif(self.attributes[name] !== value) {\n\t\t\tself.attributes[name] = value;\n\t\t\tchangedAttributes[name] = true;\n\t\t}\n\t});\n\treturn changedAttributes;\n};\n\n/*\nCheck for the presence of an attribute\n*/\nWidget.prototype.hasAttribute = function(name) {\n\treturn $tw.utils.hop(this.attributes,name);\n};\n\n/*\nGet the value of an attribute\n*/\nWidget.prototype.getAttribute = function(name,defaultText) {\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\treturn this.attributes[name];\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nAssign the computed attributes of the widget to a domNode\noptions include:\nexcludeEventAttributes: ignores attributes whose name begins with \"on\"\n*/\nWidget.prototype.assignAttributes = function(domNode,options) {\n\toptions = options || {};\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(v,a) {\n\t\t// Check exclusions\n\t\tif(options.excludeEventAttributes && a.substr(0,2) === \"on\") {\n\t\t\tv = undefined;\n\t\t}\n\t\tif(v !== undefined) {\n\t\t\tvar b = a.split(\":\");\n\t\t\t// Setting certain attributes can cause a DOM error (eg xmlns on the svg element)\n\t\t\ttry {\n\t\t\t\tif (b.length == 2 && b[0] == \"xlink\"){\n\t\t\t\t\tdomNode.setAttributeNS(\"http://www.w3.org/1999/xlink\",b[1],v);\n\t\t\t\t} else {\n\t\t\t\t\tdomNode.setAttributeNS(null,a,v);\n\t\t\t\t}\n\t\t\t} catch(e) {\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nMake child widgets correspondng to specified parseTreeNodes\n*/\nWidget.prototype.makeChildWidgets = function(parseTreeNodes) {\n\tthis.children = [];\n\tvar self = this;\n\t$tw.utils.each(parseTreeNodes || (this.parseTreeNode && this.parseTreeNode.children),function(childNode) {\n\t\tself.children.push(self.makeChildWidget(childNode));\n\t});\n};\n\n/*\nConstruct the widget object for a parse tree node\n*/\nWidget.prototype.makeChildWidget = function(parseTreeNode) {\n\tvar WidgetClass = this.widgetClasses[parseTreeNode.type];\n\tif(!WidgetClass) {\n\t\tWidgetClass = this.widgetClasses.text;\n\t\tparseTreeNode = {type: \"text\", text: \"Undefined widget '\" + parseTreeNode.type + \"'\"};\n\t}\n\treturn new WidgetClass(parseTreeNode,{\n\t\twiki: this.wiki,\n\t\tvariables: {},\n\t\tparentWidget: this,\n\t\tdocument: this.document\n\t});\n};\n\n/*\nGet the next sibling of this widget\n*/\nWidget.prototype.nextSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index < this.parentWidget.children.length-1) {\n\t\t\treturn this.parentWidget.children[index+1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the previous sibling of this widget\n*/\nWidget.prototype.previousSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index > 0) {\n\t\t\treturn this.parentWidget.children[index-1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRender the children of this widget into the DOM\n*/\nWidget.prototype.renderChildren = function(parent,nextSibling) {\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\tchildWidget.render(parent,nextSibling);\n\t});\n};\n\n/*\nAdd a list of event listeners from an array [{type:,handler:},...]\n*/\nWidget.prototype.addEventListeners = function(listeners) {\n\tvar self = this;\n\t$tw.utils.each(listeners,function(listenerInfo) {\n\t\tself.addEventListener(listenerInfo.type,listenerInfo.handler);\n\t});\n};\n\n/*\nAdd an event listener\n*/\nWidget.prototype.addEventListener = function(type,handler) {\n\tvar self = this;\n\tif(typeof handler === \"string\") { // The handler is a method name on this widget\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn self[handler].call(self,event);\n\t\t};\n\t} else { // The handler is a function\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn handler.call(self,event);\n\t\t};\n\t}\n};\n\n/*\nDispatch an event to a widget. If the widget doesn't handle the event then it is also dispatched to the parent widget\n*/\nWidget.prototype.dispatchEvent = function(event) {\n\t// Dispatch the event if this widget handles it\n\tvar listener = this.eventListeners[event.type];\n\tif(listener) {\n\t\t// Don't propagate the event if the listener returned false\n\t\tif(!listener(event)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Dispatch the event to the parent widget\n\tif(this.parentWidget) {\n\t\treturn this.parentWidget.dispatchEvent(event);\n\t}\n\treturn true;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nRebuild a previously rendered widget\n*/\nWidget.prototype.refreshSelf = function() {\n\tvar nextSibling = this.findNextSiblingDomNode();\n\tthis.removeChildDomNodes();\n\tthis.render(this.parentDomNode,nextSibling);\n};\n\n/*\nRefresh all the children of a widget\n*/\nWidget.prototype.refreshChildren = function(changedTiddlers) {\n\tvar self = this,\n\t\trefreshed = false;\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\trefreshed = childWidget.refresh(changedTiddlers) || refreshed;\n\t});\n\treturn refreshed;\n};\n\n/*\nFind the next sibling in the DOM to this widget. This is done by scanning the widget tree through all next siblings and their descendents that share the same parent DOM node\n*/\nWidget.prototype.findNextSiblingDomNode = function(startIndex) {\n\t// Refer to this widget by its index within its parents children\n\tvar parent = this.parentWidget,\n\t\tindex = startIndex !== undefined ? startIndex : parent.children.indexOf(this);\nif(index === -1) {\n\tthrow \"node not found in parents children\";\n}\n\t// Look for a DOM node in the later siblings\n\twhile(++index < parent.children.length) {\n\t\tvar domNode = parent.children[index].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\t// Go back and look for later siblings of our parent if it has the same parent dom node\n\tvar grandParent = parent.parentWidget;\n\tif(grandParent && parent.parentDomNode === this.parentDomNode) {\n\t\tindex = grandParent.children.indexOf(parent);\n\t\tif(index !== -1) {\n\t\t\treturn parent.findNextSiblingDomNode(index);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nFind the first DOM node generated by a widget or its children\n*/\nWidget.prototype.findFirstDomNode = function() {\n\t// Return the first dom node of this widget, if we've got one\n\tif(this.domNodes.length > 0) {\n\t\treturn this.domNodes[0];\n\t}\n\t// Otherwise, recursively call our children\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar domNode = this.children[t].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRemove any DOM nodes created by this widget or its children\n*/\nWidget.prototype.removeChildDomNodes = function() {\n\t// If this widget has directly created DOM nodes, delete them and exit. This assumes that any child widgets are contained within the created DOM nodes, which would normally be the case\n\tif(this.domNodes.length > 0) {\n\t\t$tw.utils.each(this.domNodes,function(domNode) {\n\t\t\tdomNode.parentNode.removeChild(domNode);\n\t\t});\n\t\tthis.domNodes = [];\n\t} else {\n\t\t// Otherwise, ask the child widgets to delete their DOM nodes\n\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\tchildWidget.removeChildDomNodes();\n\t\t});\n\t}\n};\n\n/*\nInvoke the action widgets that are descendents of the current widget.\n*/\nWidget.prototype.invokeActions = function(triggeringWidget,event) {\n\tvar handled = false;\n\t// For each child widget\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar child = this.children[t];\n\t\t// Invoke the child if it is an action widget\n\t\tif(child.invokeAction) {\n\t\t\tchild.refreshSelf();\n\t\t\tif(child.invokeAction(triggeringWidget,event)) {\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t}\n\t\t// Propagate through through the child if it permits it\n\t\tif(child.allowActionPropagation() && child.invokeActions(triggeringWidget,event)) {\n\t\t\thandled = true;\n\t\t}\n\t}\n\treturn handled;\n};\n\n/*\nInvoke the action widgets defined in a string\n*/\nWidget.prototype.invokeActionString = function(actions,triggeringWidget,event,variables) {\n\tactions = actions || \"\";\n\tvar parser = this.wiki.parseText(\"text/vnd.tiddlywiki\",actions,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document\n\t\t}),\n\t\twidgetNode = this.wiki.makeWidget(parser,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document,\n\t\t\tvariables: variables\n\t\t});\n\tvar container = this.document.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn widgetNode.invokeActions(this,event);\n};\n\nWidget.prototype.allowActionPropagation = function() {\n\treturn true;\n};\n\nexports.widget = Widget;\n\n})();\n",
            "title": "$:/core/modules/widgets/widget.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/wikify.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/wikify.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to wikify text into a variable\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar WikifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nWikifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nWikifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWikifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.wikifyName = this.getAttribute(\"name\");\n\tthis.wikifyText = this.getAttribute(\"text\");\n\tthis.wikifyType = this.getAttribute(\"type\");\n\tthis.wikifyMode = this.getAttribute(\"mode\",\"block\");\n\tthis.wikifyOutput = this.getAttribute(\"output\",\"text\");\n\t// Create the parse tree\n\tthis.wikifyParser = this.wiki.parseText(this.wikifyType,this.wikifyText,{\n\t\t\tparseAsInline: this.wikifyMode === \"inline\"\n\t\t});\n\t// Create the widget tree \n\tthis.wikifyWidgetNode = this.wiki.makeWidget(this.wikifyParser,{\n\t\t\tdocument: $tw.fakeDocument,\n\t\t\tparentWidget: this\n\t\t});\n\t// Render the widget tree to the container\n\tthis.wikifyContainer = $tw.fakeDocument.createElement(\"div\");\n\tthis.wikifyWidgetNode.render(this.wikifyContainer,null);\n\tthis.wikifyResult = this.getResult();\n\t// Set context variable\n\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nReturn the result string\n*/\nWikifyWidget.prototype.getResult = function() {\n\tvar result;\n\tswitch(this.wikifyOutput) {\n\t\tcase \"text\":\n\t\t\tresult = this.wikifyContainer.textContent;\n\t\t\tbreak;\n\t\tcase \"formattedtext\":\n\t\t\tresult = this.wikifyContainer.formattedTextContent;\n\t\t\tbreak;\n\t\tcase \"html\":\n\t\t\tresult = this.wikifyContainer.innerHTML;\n\t\t\tbreak;\n\t\tcase \"parsetree\":\n\t\t\tresult = JSON.stringify(this.wikifyParser.tree,0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t\tcase \"widgettree\":\n\t\t\tresult = JSON.stringify(this.getWidgetTree(),0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t}\n\treturn result;\n};\n\n/*\nReturn a string of the widget tree\n*/\nWikifyWidget.prototype.getWidgetTree = function() {\n\tvar copyNode = function(widgetNode,resultNode) {\n\t\t\tvar type = widgetNode.parseTreeNode.type;\n\t\t\tresultNode.type = type;\n\t\t\tswitch(type) {\n\t\t\t\tcase \"element\":\n\t\t\t\t\tresultNode.tag = widgetNode.parseTreeNode.tag;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"text\":\n\t\t\t\t\tresultNode.text = widgetNode.parseTreeNode.text;\n\t\t\t\t\tbreak;\t\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.attributes || {}).length > 0) {\n\t\t\t\tresultNode.attributes = {};\n\t\t\t\t$tw.utils.each(widgetNode.attributes,function(attr,attrName) {\n\t\t\t\t\tresultNode.attributes[attrName] = widgetNode.getAttribute(attrName);\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.children || {}).length > 0) {\n\t\t\t\tresultNode.children = [];\n\t\t\t\t$tw.utils.each(widgetNode.children,function(widgetChildNode) {\n\t\t\t\t\tvar node = {};\n\t\t\t\t\tresultNode.children.push(node);\n\t\t\t\t\tcopyNode(widgetChildNode,node);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tresults = {};\n\tcopyNode(this.wikifyWidgetNode,results);\n\treturn results;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWikifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh ourselves entirely if any of our attributes have changed\n\tif(changedAttributes.name || changedAttributes.text || changedAttributes.type || changedAttributes.mode || changedAttributes.output) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\t// Refresh the widget tree\n\t\tif(this.wikifyWidgetNode.refresh(changedTiddlers)) {\n\t\t\t// Check if there was any change\n\t\t\tvar result = this.getResult();\n\t\t\tif(result !== this.wikifyResult) {\n\t\t\t\t// If so, save the change\n\t\t\t\tthis.wikifyResult = result;\n\t\t\t\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t\t\t\t// Refresh each of our child widgets\n\t\t\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\t\t\tchildWidget.refreshSelf();\n\t\t\t\t});\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t// Just refresh the children\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.wikify = WikifyWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/wikify.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/wiki-bulkops.js": {
            "text": "/*\\\ntitle: $:/core/modules/wiki-bulkops.js\ntype: application/javascript\nmodule-type: wikimethod\n\nBulk tiddler operations such as rename.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRename a tiddler, and relink any tags or lists that reference it.\n*/\nfunction renameTiddler(fromTitle,toTitle,options) {\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\t// Rename the tiddler itself\n\t\tvar oldTiddler = this.getTiddler(fromTitle),\n\t\t\tnewTiddler = new $tw.Tiddler(oldTiddler,{title: toTitle},this.getModificationFields());\n\t\tnewTiddler = $tw.hooks.invokeHook(\"th-renaming-tiddler\",newTiddler,oldTiddler);\n\t\tthis.addTiddler(newTiddler);\n\t\tthis.deleteTiddler(fromTitle);\n\t\t// Rename any tags or lists that reference it\n\t\tthis.relinkTiddler(fromTitle,toTitle,options)\n\t}\n}\n\n/*\nRelink any tags or lists that reference a given tiddler\n*/\nfunction relinkTiddler(fromTitle,toTitle,options) {\n\tvar self = this;\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\tthis.each(function(tiddler,title) {\n\t\t\tvar type = tiddler.fields.type || \"\";\n\t\t\t// Don't touch plugins or JavaScript modules\n\t\t\tif(!tiddler.fields[\"plugin-type\"] && type !== \"application/javascript\") {\n\t\t\t\tvar tags = (tiddler.fields.tags || []).slice(0),\n\t\t\t\t\tlist = (tiddler.fields.list || []).slice(0),\n\t\t\t\t\tisModified = false;\n\t\t\t\tif(!options.dontRenameInTags) {\n\t\t\t\t\t// Rename tags\n\t\t\t\t\t$tw.utils.each(tags,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming tag '\" + tags[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\ttags[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(!options.dontRenameInLists) {\n\t\t\t\t\t// Rename lists\n\t\t\t\t\t$tw.utils.each(list,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming list item '\" + list[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\tlist[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(isModified) {\n\t\t\t\t\tvar newTiddler = new $tw.Tiddler(tiddler,{tags: tags, list: list},self.getModificationFields())\n\t\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-relinking-tiddler\",newTiddler,tiddler);\n\t\t\t\t\tself.addTiddler(newTiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\nexports.renameTiddler = renameTiddler;\nexports.relinkTiddler = relinkTiddler;\n\n})();\n",
            "title": "$:/core/modules/wiki-bulkops.js",
            "type": "application/javascript",
            "module-type": "wikimethod"
        },
        "$:/core/modules/wiki.js": {
            "text": "/*\\\ntitle: $:/core/modules/wiki.js\ntype: application/javascript\nmodule-type: wikimethod\n\nExtension methods for the $tw.Wiki object\n\nAdds the following properties to the wiki object:\n\n* `eventListeners` is a hashmap by type of arrays of listener functions\n* `changedTiddlers` is a hashmap describing changes to named tiddlers since wiki change events were last dispatched. Each entry is a hashmap containing two fields:\n\tmodified: true/false\n\tdeleted: true/false\n* `changeCount` is a hashmap by tiddler title containing a numerical index that starts at zero and is incremented each time a tiddler is created changed or deleted\n* `caches` is a hashmap by tiddler title containing a further hashmap of named cache objects. Caches are automatically cleared when a tiddler is modified or deleted\n* `globalCache` is a hashmap by cache name of cache objects that are cleared whenever any tiddler change occurs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar USER_NAME_TITLE = \"$:/status/UserName\",\n\tTIMESTAMP_DISABLE_TITLE = \"$:/config/TimestampDisable\";\n\n/*\nGet the value of a text reference. Text references can have any of these forms:\n\t<tiddlertitle>\n\t<tiddlertitle>!!<fieldname>\n\t!!<fieldname> - specifies a field of the current tiddlers\n\t<tiddlertitle>##<index>\n*/\nexports.getTextReference = function(textRef,defaultText,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tif(tr.field) {\n\t\tvar tiddler = this.getTiddler(title);\n\t\tif(tr.field === \"title\") { // Special case so we can return the title of a non-existent tiddler\n\t\t\treturn title;\n\t\t} else if(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\treturn tiddler.getFieldString(tr.field);\n\t\t} else {\n\t\t\treturn defaultText;\n\t\t}\n\t} else if(tr.index) {\n\t\treturn this.extractTiddlerDataItem(title,tr.index,defaultText);\n\t} else {\n\t\treturn this.getTiddlerText(title,defaultText);\n\t}\n};\n\nexports.setTextReference = function(textRef,value,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tthis.setText(title,tr.field,tr.index,value);\n};\n\nexports.setText = function(title,field,index,value,options) {\n\toptions = options || {};\n\tvar creationFields = options.suppressTimestamp ? {} : this.getCreationFields(),\n\t\tmodificationFields = options.suppressTimestamp ? {} : this.getModificationFields();\n\t// Check if it is a reference to a tiddler field\n\tif(index) {\n\t\tvar data = this.getTiddlerData(title,Object.create(null));\n\t\tif(value !== undefined) {\n\t\t\tdata[index] = value;\n\t\t} else {\n\t\t\tdelete data[index];\n\t\t}\n\t\tthis.setTiddlerData(title,data,modificationFields);\n\t} else {\n\t\tvar tiddler = this.getTiddler(title),\n\t\t\tfields = {title: title};\n\t\tfields[field || \"text\"] = value;\n\t\tthis.addTiddler(new $tw.Tiddler(creationFields,tiddler,fields,modificationFields));\n\t}\n};\n\nexports.deleteTextReference = function(textRef,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle,tiddler,fields;\n\t// Check if it is a reference to a tiddler\n\tif(tr.title && !tr.field) {\n\t\tthis.deleteTiddler(tr.title);\n\t// Else check for a field reference\n\t} else if(tr.field) {\n\t\ttitle = tr.title || currTiddlerTitle;\n\t\ttiddler = this.getTiddler(title);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\tfields = Object.create(null);\n\t\t\tfields[tr.field] = undefined;\n\t\t\tthis.addTiddler(new $tw.Tiddler(tiddler,fields,this.getModificationFields()));\n\t\t}\n\t}\n};\n\nexports.addEventListener = function(type,listener) {\n\tthis.eventListeners = this.eventListeners || {};\n\tthis.eventListeners[type] = this.eventListeners[type]  || [];\n\tthis.eventListeners[type].push(listener);\t\n};\n\nexports.removeEventListener = function(type,listener) {\n\tvar listeners = this.eventListeners[type];\n\tif(listeners) {\n\t\tvar p = listeners.indexOf(listener);\n\t\tif(p !== -1) {\n\t\t\tlisteners.splice(p,1);\n\t\t}\n\t}\n};\n\nexports.dispatchEvent = function(type /*, args */) {\n\tvar args = Array.prototype.slice.call(arguments,1),\n\t\tlisteners = this.eventListeners[type];\n\tif(listeners) {\n\t\tfor(var p=0; p<listeners.length; p++) {\n\t\t\tvar listener = listeners[p];\n\t\t\tlistener.apply(listener,args);\n\t\t}\n\t}\n};\n\n/*\nCauses a tiddler to be marked as changed, incrementing the change count, and triggers event handlers.\nThis method should be called after the changes it describes have been made to the wiki.tiddlers[] array.\n\ttitle: Title of tiddler\n\tisDeleted: defaults to false (meaning the tiddler has been created or modified),\n\t\ttrue if the tiddler has been deleted\n*/\nexports.enqueueTiddlerEvent = function(title,isDeleted) {\n\t// Record the touch in the list of changed tiddlers\n\tthis.changedTiddlers = this.changedTiddlers || Object.create(null);\n\tthis.changedTiddlers[title] = this.changedTiddlers[title] || Object.create(null);\n\tthis.changedTiddlers[title][isDeleted ? \"deleted\" : \"modified\"] = true;\n\t// Increment the change count\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\tthis.changeCount[title]++;\n\t} else {\n\t\tthis.changeCount[title] = 1;\n\t}\n\t// Trigger events\n\tthis.eventListeners = this.eventListeners || {};\n\tif(!this.eventsTriggered) {\n\t\tvar self = this;\n\t\t$tw.utils.nextTick(function() {\n\t\t\tvar changes = self.changedTiddlers;\n\t\t\tself.changedTiddlers = Object.create(null);\n\t\t\tself.eventsTriggered = false;\n\t\t\tif($tw.utils.count(changes) > 0) {\n\t\t\t\tself.dispatchEvent(\"change\",changes);\n\t\t\t}\n\t\t});\n\t\tthis.eventsTriggered = true;\n\t}\n};\n\nexports.getSizeOfTiddlerEventQueue = function() {\n\treturn $tw.utils.count(this.changedTiddlers);\n};\n\nexports.clearTiddlerEventQueue = function() {\n\tthis.changedTiddlers = Object.create(null);\n\tthis.changeCount = Object.create(null);\n};\n\nexports.getChangeCount = function(title) {\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\treturn this.changeCount[title];\n\t} else {\n\t\treturn 0;\n\t}\n};\n\n/*\nGenerate an unused title from the specified base\n*/\nexports.generateNewTitle = function(baseTitle,options) {\n\toptions = options || {};\n\tvar c = 0,\n\t\ttitle = baseTitle;\n\twhile(this.tiddlerExists(title) || this.isShadowTiddler(title) || this.findDraft(title)) {\n\t\ttitle = baseTitle + \n\t\t\t(options.prefix || \" \") + \n\t\t\t(++c);\n\t}\n\treturn title;\n};\n\nexports.isSystemTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/\") === 0;\n};\n\nexports.isTemporaryTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/temp/\") === 0;\n};\n\nexports.isImageTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.flags.indexOf(\"image\") !== -1;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLike addTiddler() except it will silently reject any plugin tiddlers that are older than the currently loaded version. Returns true if the tiddler was imported\n*/\nexports.importTiddler = function(tiddler) {\n\tvar existingTiddler = this.getTiddler(tiddler.fields.title);\n\t// Check if we're dealing with a plugin\n\tif(tiddler && tiddler.hasField(\"plugin-type\") && tiddler.hasField(\"version\") && existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t// Reject the incoming plugin if it is older\n\t\tif(!$tw.utils.checkVersions(tiddler.fields.version,existingTiddler.fields.version)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Fall through to adding the tiddler\n\tthis.addTiddler(tiddler);\n\treturn true;\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is created\n*/\nexports.getCreationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = {\n\t\t\t\tcreated: new Date()\n\t\t\t},\n\t\t\tcreator = this.getTiddlerText(USER_NAME_TITLE);\n\t\tif(creator) {\n\t\t\tfields.creator = creator;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is modified\n*/\nexports.getModificationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = Object.create(null),\n\t\t\tmodifier = this.getTiddlerText(USER_NAME_TITLE);\n\t\tfields.modified = new Date();\n\t\tif(modifier) {\n\t\t\tfields.modifier = modifier;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a sorted array of tiddler titles.  Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.getTiddlers = function(options) {\n\toptions = options || Object.create(null);\n\tvar self = this,\n\t\tsortField = options.sortField || \"title\",\n\t\ttiddlers = [], t, titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tif(options.includeSystem || !self.isSystemTiddler(title)) {\n\t\t\tif(!options.excludeTag || !tiddler.hasTag(options.excludeTag)) {\n\t\t\t\ttiddlers.push(tiddler);\n\t\t\t}\n\t\t}\n\t});\n\ttiddlers.sort(function(a,b) {\n\t\tvar aa = a.fields[sortField].toLowerCase() || \"\",\n\t\t\tbb = b.fields[sortField].toLowerCase() || \"\";\n\t\tif(aa < bb) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(aa > bb) {\n\t\t\t\treturn 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n\tfor(t=0; t<tiddlers.length; t++) {\n\t\ttitles.push(tiddlers[t].fields.title);\n\t}\n\treturn titles;\n};\n\nexports.countTiddlers = function(excludeTag) {\n\tvar tiddlers = this.getTiddlers({excludeTag: excludeTag});\n\treturn $tw.utils.count(tiddlers);\n};\n\n/*\nReturns a function iterator(callback) that iterates through the specified titles, and invokes the callback with callback(tiddler,title)\n*/\nexports.makeTiddlerIterator = function(titles) {\n\tvar self = this;\n\tif(!$tw.utils.isArray(titles)) {\n\t\ttitles = Object.keys(titles);\n\t} else {\n\t\ttitles = titles.slice(0);\n\t}\n\treturn function(callback) {\n\t\ttitles.forEach(function(title) {\n\t\t\tcallback(self.getTiddler(title),title);\n\t\t});\n\t};\n};\n\n/*\nSort an array of tiddler titles by a specified field\n\ttitles: array of titles (sorted in place)\n\tsortField: name of field to sort by\n\tisDescending: true if the sort should be descending\n\tisCaseSensitive: true if the sort should consider upper and lower case letters to be different\n*/\nexports.sortTiddlers = function(titles,sortField,isDescending,isCaseSensitive,isNumeric) {\n\tvar self = this;\n\ttitles.sort(function(a,b) {\n\t\tvar x,y,\n\t\t\tcompareNumbers = function(x,y) {\n\t\t\t\tvar result = \n\t\t\t\t\tisNaN(x) && !isNaN(y) ? (isDescending ? -1 : 1) :\n\t\t\t\t\t!isNaN(x) && isNaN(y) ? (isDescending ? 1 : -1) :\n\t\t\t\t\t\t\t\t\t\t\t(isDescending ? y - x :  x - y);\n\t\t\t\treturn result;\n\t\t\t};\n\t\tif(sortField !== \"title\") {\n\t\t\tvar tiddlerA = self.getTiddler(a),\n\t\t\t\ttiddlerB = self.getTiddler(b);\n\t\t\tif(tiddlerA) {\n\t\t\t\ta = tiddlerA.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\ta = \"\";\n\t\t\t}\n\t\t\tif(tiddlerB) {\n\t\t\t\tb = tiddlerB.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\tb = \"\";\n\t\t\t}\n\t\t}\n\t\tx = Number(a);\n\t\ty = Number(b);\n\t\tif(isNumeric && (!isNaN(x) || !isNaN(y))) {\n\t\t\treturn compareNumbers(x,y);\n\t\t} else if($tw.utils.isDate(a) && $tw.utils.isDate(b)) {\n\t\t\treturn isDescending ? b - a : a - b;\n\t\t} else {\n\t\t\ta = String(a);\n\t\t\tb = String(b);\n\t\t\tif(!isCaseSensitive) {\n\t\t\t\ta = a.toLowerCase();\n\t\t\t\tb = b.toLowerCase();\n\t\t\t}\n\t\t\treturn isDescending ? b.localeCompare(a) : a.localeCompare(b);\n\t\t}\n\t});\n};\n\n/*\nFor every tiddler invoke a callback(title,tiddler) with `this` set to the wiki object. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.forEachTiddler = function(/* [options,]callback */) {\n\tvar arg = 0,\n\t\toptions = arguments.length >= 2 ? arguments[arg++] : {},\n\t\tcallback = arguments[arg++],\n\t\ttitles = this.getTiddlers(options),\n\t\tt, tiddler;\n\tfor(t=0; t<titles.length; t++) {\n\t\ttiddler = this.getTiddler(titles[t]);\n\t\tif(tiddler) {\n\t\t\tcallback.call(this,tiddler.fields.title,tiddler);\n\t\t}\n\t}\n};\n\n/*\nReturn an array of tiddler titles that are directly linked from the specified tiddler\n*/\nexports.getTiddlerLinks = function(title) {\n\tvar self = this;\n\t// We'll cache the links so they only get computed if the tiddler changes\n\treturn this.getCacheForTiddler(title,\"links\",function() {\n\t\t// Parse the tiddler\n\t\tvar parser = self.parseTiddler(title);\n\t\t// Count up the links\n\t\tvar links = [],\n\t\t\tcheckParseTree = function(parseTree) {\n\t\t\t\tfor(var t=0; t<parseTree.length; t++) {\n\t\t\t\t\tvar parseTreeNode = parseTree[t];\n\t\t\t\t\tif(parseTreeNode.type === \"link\" && parseTreeNode.attributes.to && parseTreeNode.attributes.to.type === \"string\") {\n\t\t\t\t\t\tvar value = parseTreeNode.attributes.to.value;\n\t\t\t\t\t\tif(links.indexOf(value) === -1) {\n\t\t\t\t\t\t\tlinks.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(parseTreeNode.children) {\n\t\t\t\t\t\tcheckParseTree(parseTreeNode.children);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\tif(parser) {\n\t\t\tcheckParseTree(parser.tree);\n\t\t}\n\t\treturn links;\n\t});\n};\n\n/*\nReturn an array of tiddler titles that link to the specified tiddler\n*/\nexports.getTiddlerBacklinks = function(targetTitle) {\n\tvar self = this,\n\t\tbacklinks = [];\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\tif(links.indexOf(targetTitle) !== -1) {\n\t\t\tbacklinks.push(title);\n\t\t}\n\t});\n\treturn backlinks;\n};\n\n/*\nReturn a hashmap of tiddler titles that are referenced but not defined. Each value is the number of times the missing tiddler is referenced\n*/\nexports.getMissingTitles = function() {\n\tvar self = this,\n\t\tmissing = [];\n// We should cache the missing tiddler list, even if we recreate it every time any tiddler is modified\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tif((!self.tiddlerExists(link) && !self.isShadowTiddler(link)) && missing.indexOf(link) === -1) {\n\t\t\t\tmissing.push(link);\n\t\t\t}\n\t\t});\n\t});\n\treturn missing;\n};\n\nexports.getOrphanTitles = function() {\n\tvar self = this,\n\t\torphans = this.getTiddlers();\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tvar p = orphans.indexOf(link);\n\t\t\tif(p !== -1) {\n\t\t\t\torphans.splice(p,1);\n\t\t\t}\n\t\t});\n\t});\n\treturn orphans; // Todo\n};\n\n/*\nRetrieves a list of the tiddler titles that are tagged with a given tag\n*/\nexports.getTiddlersWithTag = function(tag) {\n\tvar self = this;\n\treturn this.getGlobalCache(\"taglist-\" + tag,function() {\n\t\tvar tagmap = self.getTagMap();\n\t\treturn self.sortByList(tagmap[tag],tag);\n\t});\n};\n\n/*\nGet a hashmap by tag of arrays of tiddler titles\n*/\nexports.getTagMap = function() {\n\tvar self = this;\n\treturn this.getGlobalCache(\"tagmap\",function() {\n\t\tvar tags = Object.create(null),\n\t\t\tstoreTags = function(tagArray,title) {\n\t\t\t\tif(tagArray) {\n\t\t\t\t\tfor(var index=0; index<tagArray.length; index++) {\n\t\t\t\t\t\tvar tag = tagArray[index];\n\t\t\t\t\t\tif($tw.utils.hop(tags,tag)) {\n\t\t\t\t\t\t\ttags[tag].push(title);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttags[tag] = [title];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttitle, tiddler;\n\t\t// Collect up all the tags\n\t\tself.eachShadow(function(tiddler,title) {\n\t\t\tif(!self.tiddlerExists(title)) {\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t\t}\n\t\t});\n\t\tself.each(function(tiddler,title) {\n\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t});\n\t\treturn tags;\n\t});\n};\n\n/*\nLookup a given tiddler and return a list of all the tiddlers that include it in the specified list field\n*/\nexports.findListingsOfTiddler = function(targetTitle,fieldName) {\n\tfieldName = fieldName || \"list\";\n\tvar titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tvar list = $tw.utils.parseStringArray(tiddler.fields[fieldName]);\n\t\tif(list && list.indexOf(targetTitle) !== -1) {\n\t\t\ttitles.push(title);\n\t\t}\n\t});\n\treturn titles;\n};\n\n/*\nSorts an array of tiddler titles according to an ordered list\n*/\nexports.sortByList = function(array,listTitle) {\n\tvar list = this.getTiddlerList(listTitle);\n\tif(!array || array.length === 0) {\n\t\treturn [];\n\t} else {\n\t\tvar titles = [], t, title;\n\t\t// First place any entries that are present in the list\n\t\tfor(t=0; t<list.length; t++) {\n\t\t\ttitle = list[t];\n\t\t\tif(array.indexOf(title) !== -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Then place any remaining entries\n\t\tfor(t=0; t<array.length; t++) {\n\t\t\ttitle = array[t];\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Finally obey the list-before and list-after fields of each tiddler in turn\n\t\tvar sortedTitles = titles.slice(0);\n\t\tfor(t=0; t<sortedTitles.length; t++) {\n\t\t\ttitle = sortedTitles[t];\n\t\t\tvar currPos = titles.indexOf(title),\n\t\t\t\tnewPos = -1,\n\t\t\t\ttiddler = this.getTiddler(title);\n\t\t\tif(tiddler) {\n\t\t\t\tvar beforeTitle = tiddler.fields[\"list-before\"],\n\t\t\t\t\tafterTitle = tiddler.fields[\"list-after\"];\n\t\t\t\tif(beforeTitle === \"\") {\n\t\t\t\t\tnewPos = 0;\n\t\t\t\t} else if(beforeTitle) {\n\t\t\t\t\tnewPos = titles.indexOf(beforeTitle);\n\t\t\t\t} else if(afterTitle) {\n\t\t\t\t\tnewPos = titles.indexOf(afterTitle);\n\t\t\t\t\tif(newPos >= 0) {\n\t\t\t\t\t\t++newPos;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(newPos === -1) {\n\t\t\t\t\tnewPos = currPos;\n\t\t\t\t}\n\t\t\t\tif(newPos !== currPos) {\n\t\t\t\t\ttitles.splice(currPos,1);\n\t\t\t\t\tif(newPos >= currPos) {\n\t\t\t\t\t\tnewPos--;\n\t\t\t\t\t}\n\t\t\t\t\ttitles.splice(newPos,0,title);\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\treturn titles;\n\t}\n};\n\nexports.getSubTiddler = function(title,subTiddlerTitle) {\n\tvar bundleInfo = this.getPluginInfo(title) || this.getTiddlerDataCached(title);\n\tif(bundleInfo && bundleInfo.tiddlers) {\n\t\tvar subTiddler = bundleInfo.tiddlers[subTiddlerTitle];\n\t\tif(subTiddler) {\n\t\t\treturn new $tw.Tiddler(subTiddler);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRetrieve a tiddler as a JSON string of the fields\n*/\nexports.getTiddlerAsJson = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\tvar fields = Object.create(null);\n\t\t$tw.utils.each(tiddler.fields,function(value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\treturn JSON.stringify(fields);\n\t} else {\n\t\treturn JSON.stringify({title: title});\n\t}\n};\n\n/*\nGet the content of a tiddler as a JavaScript object. How this is done depends on the type of the tiddler:\n\napplication/json: the tiddler JSON is parsed into an object\napplication/x-tiddler-dictionary: the tiddler is parsed as sequence of name:value pairs\n\nOther types currently just return null.\n\ntitleOrTiddler: string tiddler title or a tiddler object\ndefaultData: default data to be returned if the tiddler is missing or doesn't contain data\n\nNote that the same value is returned for repeated calls for the same tiddler data. The value is frozen to prevent modification; otherwise modifications would be visible to all callers\n*/\nexports.getTiddlerDataCached = function(titleOrTiddler,defaultData) {\n\tvar self = this,\n\t\ttiddler = titleOrTiddler;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler) {\n\t\treturn this.getCacheForTiddler(tiddler.fields.title,\"data\",function() {\n\t\t\t// Return the frozen value\n\t\t\tvar value = self.getTiddlerData(tiddler.fields.title,undefined);\n\t\t\t$tw.utils.deepFreeze(value);\n\t\t\treturn value;\n\t\t}) || defaultData;\n\t} else {\n\t\treturn defaultData;\n\t}\n};\n\n/*\nAlternative, uncached version of getTiddlerDataCached(). The return value can be mutated freely and reused\n*/\nexports.getTiddlerData = function(titleOrTiddler,defaultData) {\n\tvar tiddler = titleOrTiddler,\n\t\tdata;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler && tiddler.fields.text) {\n\t\tswitch(tiddler.fields.type) {\n\t\t\tcase \"application/json\":\n\t\t\t\t// JSON tiddler\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse(tiddler.fields.text);\n\t\t\t\t} catch(ex) {\n\t\t\t\t\treturn defaultData;\n\t\t\t\t}\n\t\t\t\treturn data;\n\t\t\tcase \"application/x-tiddler-dictionary\":\n\t\t\t\treturn $tw.utils.parseFields(tiddler.fields.text);\n\t\t}\n\t}\n\treturn defaultData;\n};\n\n/*\nExtract an indexed field from within a data tiddler\n*/\nexports.extractTiddlerDataItem = function(titleOrTiddler,index,defaultText) {\n\tvar data = this.getTiddlerDataCached(titleOrTiddler,Object.create(null)),\n\t\ttext;\n\tif(data && $tw.utils.hop(data,index)) {\n\t\ttext = data[index];\n\t}\n\tif(typeof text === \"string\" || typeof text === \"number\") {\n\t\treturn text.toString();\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nSet a tiddlers content to a JavaScript object. Currently this is done by setting the tiddler's type to \"application/json\" and setting the text to the JSON text of the data.\ntitle: title of tiddler\ndata: object that can be serialised to JSON\nfields: optional hashmap of additional tiddler fields to be set\n*/\nexports.setTiddlerData = function(title,data,fields) {\n\tvar existingTiddler = this.getTiddler(title),\n\t\tnewFields = {\n\t\t\ttitle: title\n\t};\n\tif(existingTiddler && existingTiddler.fields.type === \"application/x-tiddler-dictionary\") {\n\t\tnewFields.text = $tw.utils.makeTiddlerDictionary(data);\n\t} else {\n\t\tnewFields.type = \"application/json\";\n\t\tnewFields.text = JSON.stringify(data,null,$tw.config.preferences.jsonSpaces);\n\t}\n\tthis.addTiddler(new $tw.Tiddler(this.getCreationFields(),existingTiddler,fields,newFields,this.getModificationFields()));\n};\n\n/*\nReturn the content of a tiddler as an array containing each line\n*/\nexports.getTiddlerList = function(title,field,index) {\n\tif(index) {\n\t\treturn $tw.utils.parseStringArray(this.extractTiddlerDataItem(title,index,\"\"));\n\t}\n\tfield = field || \"list\";\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\treturn ($tw.utils.parseStringArray(tiddler.fields[field]) || []).slice(0);\n\t}\n\treturn [];\n};\n\n// Return a named global cache object. Global cache objects are cleared whenever a tiddler change occurs\nexports.getGlobalCache = function(cacheName,initializer) {\n\tthis.globalCache = this.globalCache || Object.create(null);\n\tif($tw.utils.hop(this.globalCache,cacheName)) {\n\t\treturn this.globalCache[cacheName];\n\t} else {\n\t\tthis.globalCache[cacheName] = initializer();\n\t\treturn this.globalCache[cacheName];\n\t}\n};\n\nexports.clearGlobalCache = function() {\n\tthis.globalCache = Object.create(null);\n};\n\n// Return the named cache object for a tiddler. If the cache doesn't exist then the initializer function is invoked to create it\nexports.getCacheForTiddler = function(title,cacheName,initializer) {\n\tthis.caches = this.caches || Object.create(null);\n\tvar caches = this.caches[title];\n\tif(caches && caches[cacheName]) {\n\t\treturn caches[cacheName];\n\t} else {\n\t\tif(!caches) {\n\t\t\tcaches = Object.create(null);\n\t\t\tthis.caches[title] = caches;\n\t\t}\n\t\tcaches[cacheName] = initializer();\n\t\treturn caches[cacheName];\n\t}\n};\n\n// Clear all caches associated with a particular tiddler, or, if the title is null, clear all the caches for all the tiddlers\nexports.clearCache = function(title) {\n\tif(title) {\n\t\tthis.caches = this.caches || Object.create(null);\n\t\tif($tw.utils.hop(this.caches,title)) {\n\t\t\tdelete this.caches[title];\n\t\t}\n\t} else {\n\t\tthis.caches = Object.create(null);\n\t}\n};\n\nexports.initParsers = function(moduleType) {\n\t// Install the parser modules\n\t$tw.Wiki.parsers = {};\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(\"parser\",function(title,module) {\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\t$tw.Wiki.parsers[f] = module[f]; // Store the parser class\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nParse a block of text of a specified MIME type\n\ttype: content type of text to be parsed\n\ttext: text\n\toptions: see below\nOptions include:\n\tparseAsInline: if true, the text of the tiddler will be parsed as an inline run\n\t_canonical_uri: optional string of the canonical URI of this content\n*/\nexports.parseText = function(type,text,options) {\n\ttext = text || \"\";\n\toptions = options || {};\n\t// Select a parser\n\tvar Parser = $tw.Wiki.parsers[type];\n\tif(!Parser && $tw.utils.getFileExtensionInfo(type)) {\n\t\tParser = $tw.Wiki.parsers[$tw.utils.getFileExtensionInfo(type).type];\n\t}\n\tif(!Parser) {\n\t\tParser = $tw.Wiki.parsers[options.defaultType || \"text/vnd.tiddlywiki\"];\n\t}\n\tif(!Parser) {\n\t\treturn null;\n\t}\n\t// Return the parser instance\n\treturn new Parser(type,text,{\n\t\tparseAsInline: options.parseAsInline,\n\t\twiki: this,\n\t\t_canonical_uri: options._canonical_uri\n\t});\n};\n\n/*\nParse a tiddler according to its MIME type\n*/\nexports.parseTiddler = function(title,options) {\n\toptions = $tw.utils.extend({},options);\n\tvar cacheType = options.parseAsInline ? \"inlineParseTree\" : \"blockParseTree\",\n\t\ttiddler = this.getTiddler(title),\n\t\tself = this;\n\treturn tiddler ? this.getCacheForTiddler(title,cacheType,function() {\n\t\t\tif(tiddler.hasField(\"_canonical_uri\")) {\n\t\t\t\toptions._canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t}\n\t\t\treturn self.parseText(tiddler.fields.type,tiddler.fields.text,options);\n\t\t}) : null;\n};\n\nexports.parseTextReference = function(title,field,index,options) {\n\tvar tiddler,text;\n\tif(options.subTiddler) {\n\t\ttiddler = this.getSubTiddler(title,options.subTiddler);\n\t} else {\n\t\ttiddler = this.getTiddler(title);\n\t\tif(field === \"text\" || (!field && !index)) {\n\t\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\t\treturn this.parseTiddler(title,options);\n\t\t}\n\t}\n\tif(field === \"text\" || (!field && !index)) {\n\t\tif(tiddler && tiddler.fields) {\n\t\t\treturn this.parseText(tiddler.fields.type || \"text/vnd.tiddlywiki\",tiddler.fields.text,options);\t\t\t\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t} else if(field) {\n\t\tif(field === \"title\") {\n\t\t\ttext = title;\n\t\t} else {\n\t\t\tif(!tiddler || !tiddler.hasField(field)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\ttext = tiddler.fields[field];\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text.toString(),options);\n\t} else if(index) {\n\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\ttext = this.extractTiddlerDataItem(tiddler,index,undefined);\n\t\tif(text === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text,options);\n\t}\n};\n\n/*\nMake a widget tree for a parse tree\nparser: parser object\noptions: see below\nOptions include:\ndocument: optional document to use\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.makeWidget = function(parser,options) {\n\toptions = options || {};\n\tvar widgetNode = {\n\t\t\ttype: \"widget\",\n\t\t\tchildren: []\n\t\t},\n\t\tcurrWidgetNode = widgetNode;\n\t// Create set variable widgets for each variable\n\t$tw.utils.each(options.variables,function(value,name) {\n\t\tvar setVariableWidget = {\n\t\t\ttype: \"set\",\n\t\t\tattributes: {\n\t\t\t\tname: {type: \"string\", value: name},\n\t\t\t\tvalue: {type: \"string\", value: value}\n\t\t\t},\n\t\t\tchildren: []\n\t\t};\n\t\tcurrWidgetNode.children = [setVariableWidget];\n\t\tcurrWidgetNode = setVariableWidget;\n\t});\n\t// Add in the supplied parse tree nodes\n\tcurrWidgetNode.children = parser ? parser.tree : [];\n\t// Create the widget\n\treturn new widget.widget(widgetNode,{\n\t\twiki: this,\n\t\tdocument: options.document || $tw.fakeDocument,\n\t\tparentWidget: options.parentWidget\n\t});\n};\n\n/*\nMake a widget tree for transclusion\ntitle: target tiddler title\noptions: as for wiki.makeWidget() plus:\noptions.field: optional field to transclude (defaults to \"text\")\noptions.mode: transclusion mode \"inline\" or \"block\"\noptions.children: optional array of children for the transclude widget\noptions.importVariables: optional importvariables filter string for macros to be included\noptions.importPageMacros: optional boolean; if true, equivalent to passing \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\" to options.importVariables\n*/\nexports.makeTranscludeWidget = function(title,options) {\n\toptions = options || {};\n\tvar parseTreeDiv = {tree: [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"div\",\n\t\t\tchildren: []}]},\n\t\tparseTreeImportVariables = {\n\t\t\ttype: \"importvariables\",\n\t\t\tattributes: {\n\t\t\t\tfilter: {\n\t\t\t\t\tname: \"filter\",\n\t\t\t\t\ttype: \"string\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tisBlock: false,\n\t\t\tchildren: []},\n\t\tparseTreeTransclude = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {\n\t\t\t\t\tname: \"tiddler\",\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title}},\n\t\t\tisBlock: !options.parseAsInline};\n\tif(options.importVariables || options.importPageMacros) {\n\t\tif(options.importVariables) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = options.importVariables;\n\t\t} else if(options.importPageMacros) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\";\n\t\t}\n\t\tparseTreeDiv.tree[0].children.push(parseTreeImportVariables);\n\t\tparseTreeImportVariables.children.push(parseTreeTransclude);\n\t} else {\n\t\tparseTreeDiv.tree[0].children.push(parseTreeTransclude);\n\t}\n\tif(options.field) {\n\t\tparseTreeTransclude.attributes.field = {type: \"string\", value: options.field};\n\t}\n\tif(options.mode) {\n\t\tparseTreeTransclude.attributes.mode = {type: \"string\", value: options.mode};\n\t}\n\tif(options.children) {\n\t\tparseTreeTransclude.children = options.children;\n\t}\n\treturn $tw.wiki.makeWidget(parseTreeDiv,options);\n};\n\n/*\nParse text in a specified format and render it into another format\n\toutputType: content type for the output\n\ttextType: content type of the input text\n\ttext: input text\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderText = function(outputType,textType,text,options) {\n\toptions = options || {};\n\tvar parser = this.parseText(textType,text,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : container.textContent;\n};\n\n/*\nParse text from a tiddler and render it into another format\n\toutputType: content type for the output\n\ttitle: title of the tiddler to be rendered\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderTiddler = function(outputType,title,options) {\n\toptions = options || {};\n\tvar parser = this.parseTiddler(title,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : (outputType === \"text/plain-formatted\" ? container.formattedTextContent : container.textContent);\n};\n\n/*\nReturn an array of tiddler titles that match a search string\n\ttext: The text string to search for\n\toptions: see below\nOptions available:\n\tsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\n\texclude: An array of tiddler titles to exclude from the search\n\tinvert: If true returns tiddlers that do not contain the specified string\n\tcaseSensitive: If true forces a case sensitive search\n\tliteral: If true, searches for literal string, rather than separate search terms\n\tfield: If specified, restricts the search to the specified field\n*/\nexports.search = function(text,options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tt,\n\t\tinvert = !!options.invert;\n\t// Convert the search string into a regexp for each term\n\tvar terms, searchTermsRegExps,\n\t\tflags = options.caseSensitive ? \"\" : \"i\";\n\tif(options.literal) {\n\t\tif(text.length === 0) {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + $tw.utils.escapeRegExp(text) + \")\",flags)];\n\t\t}\n\t} else {\n\t\tterms = text.split(/ +/);\n\t\tif(terms.length === 1 && terms[0] === \"\") {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [];\n\t\t\tfor(t=0; t<terms.length; t++) {\n\t\t\t\tsearchTermsRegExps.push(new RegExp(\"(\" + $tw.utils.escapeRegExp(terms[t]) + \")\",flags));\n\t\t\t}\n\t\t}\n\t}\n\t// Function to check a given tiddler for the search term\n\tvar searchTiddler = function(title) {\n\t\tif(!searchTermsRegExps) {\n\t\t\treturn true;\n\t\t}\n\t\tvar tiddler = self.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\ttiddler = new $tw.Tiddler({title: title, text: \"\", type: \"text/vnd.tiddlywiki\"});\n\t\t}\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type] || $tw.config.contentTypeInfo[\"text/vnd.tiddlywiki\"],\n\t\t\tmatch;\n\t\tfor(var t=0; t<searchTermsRegExps.length; t++) {\n\t\t\tmatch = false;\n\t\t\tif(options.field) {\n\t\t\t\tmatch = searchTermsRegExps[t].test(tiddler.getFieldString(options.field));\n\t\t\t} else {\n\t\t\t\t// Search title, tags and body\n\t\t\t\tif(contentTypeInfo.encoding === \"utf8\") {\n\t\t\t\t\tmatch = match || searchTermsRegExps[t].test(tiddler.fields.text);\n\t\t\t\t}\n\t\t\t\tvar tags = tiddler.fields.tags ? tiddler.fields.tags.join(\"\\0\") : \"\";\n\t\t\t\tmatch = match || searchTermsRegExps[t].test(tags) || searchTermsRegExps[t].test(tiddler.fields.title);\n\t\t\t}\n\t\t\tif(!match) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t};\n\t// Loop through all the tiddlers doing the search\n\tvar results = [],\n\t\tsource = options.source || this.each;\n\tsource(function(tiddler,title) {\n\t\tif(searchTiddler(title) !== options.invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\t// Remove any of the results we have to exclude\n\tif(options.exclude) {\n\t\tfor(t=0; t<options.exclude.length; t++) {\n\t\t\tvar p = results.indexOf(options.exclude[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tresults.splice(p,1);\n\t\t\t}\n\t\t}\n\t}\n\treturn results;\n};\n\n/*\nTrigger a load for a tiddler if it is skinny. Returns the text, or undefined if the tiddler is missing, null if the tiddler is being lazily loaded.\n*/\nexports.getTiddlerText = function(title,defaultText) {\n\tvar tiddler = this.getTiddler(title);\n\t// Return undefined if the tiddler isn't found\n\tif(!tiddler) {\n\t\treturn defaultText;\n\t}\n\tif(tiddler.fields.text !== undefined) {\n\t\t// Just return the text if we've got it\n\t\treturn tiddler.fields.text;\n\t} else {\n\t\t// Tell any listeners about the need to lazily load this tiddler\n\t\tthis.dispatchEvent(\"lazyLoad\",title);\n\t\t// Indicate that the text is being loaded\n\t\treturn null;\n\t}\n};\n\n/*\nCheck whether the text of a tiddler matches a given value. By default, the comparison is case insensitive, and any spaces at either end of the tiddler text is trimmed\n*/\nexports.checkTiddlerText = function(title,targetText,options) {\n\toptions = options || {};\n\tvar text = this.getTiddlerText(title,\"\");\n\tif(!options.noTrim) {\n\t\ttext = text.trim();\n\t}\n\tif(!options.caseSensitive) {\n\t\ttext = text.toLowerCase();\n\t\ttargetText = targetText.toLowerCase();\n\t}\n\treturn text === targetText;\n}\n\n/*\nRead an array of browser File objects, invoking callback(tiddlerFieldsArray) once they're all read\n*/\nexports.readFiles = function(files,callback) {\n\tvar result = [],\n\t\toutstanding = files.length;\n\tfor(var f=0; f<files.length; f++) {\n\t\tthis.readFile(files[f],function(tiddlerFieldsArray) {\n\t\t\tresult.push.apply(result,tiddlerFieldsArray);\n\t\t\tif(--outstanding === 0) {\n\t\t\t\tcallback(result);\n\t\t\t}\n\t\t});\n\t}\n\treturn files.length;\n};\n\n/*\nRead a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFile = function(file,callback) {\n\t// Get the type, falling back to the filename extension\n\tvar self = this,\n\t\ttype = file.type;\n\tif(type === \"\" || !type) {\n\t\tvar dotPos = file.name.lastIndexOf(\".\");\n\t\tif(dotPos !== -1) {\n\t\t\tvar fileExtensionInfo = $tw.utils.getFileExtensionInfo(file.name.substr(dotPos));\n\t\t\tif(fileExtensionInfo) {\n\t\t\t\ttype = fileExtensionInfo.type;\n\t\t\t}\n\t\t}\n\t}\n\t// Figure out if we're reading a binary file\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[type],\n\t\tisBinary = contentTypeInfo ? contentTypeInfo.encoding === \"base64\" : false;\n\t// Log some debugging information\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Importing file '\" + file.name + \"', type: '\" + type + \"', isBinary: \" + isBinary);\n\t}\n\t// Create the FileReader\n\tvar reader = new FileReader();\n\t// Onload\n\treader.onload = function(event) {\n\t\tvar text = event.target.result,\n\t\t\ttiddlerFields = {title: file.name || \"Untitled\", type: type};\n\t\tif(isBinary) {\n\t\t\tvar commaPos = text.indexOf(\",\");\n\t\t\tif(commaPos !== -1) {\n\t\t\t\ttext = text.substr(commaPos + 1);\n\t\t\t}\n\t\t}\n\t\t// Check whether this is an encrypted TiddlyWiki file\n\t\tvar encryptedJson = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedJson) {\n\t\t\t// If so, attempt to decrypt it with the current password\n\t\t\t$tw.utils.decryptStoreAreaInteractive(encryptedJson,function(tiddlers) {\n\t\t\t\tcallback(tiddlers);\n\t\t\t});\n\t\t} else {\n\t\t\t// Otherwise, just try to deserialise any tiddlers in the file\n\t\t\tcallback(self.deserializeTiddlers(type,text,tiddlerFields));\n\t\t}\n\t};\n\t// Kick off the read\n\tif(isBinary) {\n\t\treader.readAsDataURL(file);\n\t} else {\n\t\treader.readAsText(file);\n\t}\n};\n\n/*\nFind any existing draft of a specified tiddler\n*/\nexports.findDraft = function(targetTitle) {\n\tvar draftTitle = undefined;\n\tthis.forEachTiddler({includeSystem: true},function(title,tiddler) {\n\t\tif(tiddler.fields[\"draft.title\"] && tiddler.fields[\"draft.of\"] === targetTitle) {\n\t\t\tdraftTitle = title;\n\t\t}\n\t});\n\treturn draftTitle;\n}\n\n/*\nCheck whether the specified draft tiddler has been modified.\nIf the original tiddler doesn't exist, create  a vanilla tiddler variable,\nto check if additional fields have been added.\n*/\nexports.isDraftModified = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(!tiddler.isDraft()) {\n\t\treturn false;\n\t}\n\tvar ignoredFields = [\"created\", \"modified\", \"title\", \"draft.title\", \"draft.of\"],\n\t\torigTiddler = this.getTiddler(tiddler.fields[\"draft.of\"]) || new $tw.Tiddler({text:\"\", tags:[]}),\n\t\ttitleModified = tiddler.fields[\"draft.title\"] !== tiddler.fields[\"draft.of\"];\n\treturn titleModified || !tiddler.isEqual(origTiddler,ignoredFields);\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\nhistoryTitle: title of history tiddler (defaults to $:/HistoryList)\n*/\nexports.addToHistory = function(title,fromPageRect,historyTitle) {\n\tvar story = new $tw.Story({wiki: this, historyTitle: historyTitle});\n\tstory.addToHistory(title,fromPageRect);\n};\n\n/*\nInvoke the available upgrader modules\ntitles: array of tiddler titles to be processed\ntiddlers: hashmap by title of tiddler fields of pending import tiddlers. These can be modified by the upgraders. An entry with no fields indicates a tiddler that was pending import has been suppressed. When entries are added to the pending import the tiddlers hashmap may have entries that are not present in the titles array\nReturns a hashmap of messages keyed by tiddler title.\n*/\nexports.invokeUpgraders = function(titles,tiddlers) {\n\t// Collect up the available upgrader modules\n\tvar self = this;\n\tif(!this.upgraderModules) {\n\t\tthis.upgraderModules = [];\n\t\t$tw.modules.forEachModuleOfType(\"upgrader\",function(title,module) {\n\t\t\tif(module.upgrade) {\n\t\t\t\tself.upgraderModules.push(module);\n\t\t\t}\n\t\t});\n\t}\n\t// Invoke each upgrader in turn\n\tvar messages = {};\n\tfor(var t=0; t<this.upgraderModules.length; t++) {\n\t\tvar upgrader = this.upgraderModules[t],\n\t\t\tupgraderMessages = upgrader.upgrade(this,titles,tiddlers);\n\t\t$tw.utils.extend(messages,upgraderMessages);\n\t}\n\treturn messages;\n};\n\n})();\n\n",
            "title": "$:/core/modules/wiki.js",
            "type": "application/javascript",
            "module-type": "wikimethod"
        },
        "$:/palettes/Blanca": {
            "title": "$:/palettes/Blanca",
            "name": "Blanca",
            "description": "A clean white palette to let you focus",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #66cccc\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ffffff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #7897f3\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ccc\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #ffffff\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #7897f3\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #eeeeee\ntab-border-selected: #cccccc\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffeedd\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: #eee\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #ff9900\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/Blue": {
            "title": "$:/palettes/Blue",
            "name": "Blue",
            "description": "A blue theme",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333353\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ddddff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #5959c0\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: #ccccdd\ntab-border-selected: #ccccdd\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #eeeeff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #666666\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #ffffff\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #ffffff\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #5959c0\ntoolbar-new-button: #5eb95e\ntoolbar-options-button: rgb(128, 88, 165)\ntoolbar-save-button: #0e90d2\ntoolbar-info-button: #0e90d2\ntoolbar-edit-button: rgb(243, 123, 29)\ntoolbar-close-button: #dd514c\ntoolbar-delete-button: #dd514c\ntoolbar-cancel-button: rgb(243, 123, 29)\ntoolbar-done-button: #5eb95e\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/Muted": {
            "title": "$:/palettes/Muted",
            "name": "Muted",
            "description": "Bright tiddlers on a muted background",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #6f6f70\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #29a6ee\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #c2c1c2\nsidebar-foreground-shadow: rgba(255,255,255,0)\nsidebar-foreground: #d3d2d4\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #6f6f70\nsidebar-tab-background: #666667\nsidebar-tab-border-selected: #999\nsidebar-tab-border: #515151\nsidebar-tab-divider: #999\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: #999\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #d1d0d2\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #d5ad34\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/ContrastLight": {
            "title": "$:/palettes/ContrastLight",
            "name": "Contrast (Light)",
            "description": "High contrast and unambiguous (light version)",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #000\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #000\ntag-foreground: #fff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/ContrastDark": {
            "title": "$:/palettes/ContrastDark",
            "name": "Contrast (Dark)",
            "description": "High contrast and unambiguous (dark version)",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #000\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #fff\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #fff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/DarkPhotos": {
            "created": "20150402111612188",
            "description": "Good with dark photo backgrounds",
            "modified": "20150402112344080",
            "name": "DarkPhotos",
            "tags": "$:/tags/Palette",
            "title": "$:/palettes/DarkPhotos",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: \nbutton-foreground: \nbutton-border: \ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #ddd\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #336438\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #ccf\nsidebar-controls-foreground: #fff\nsidebar-foreground-shadow: rgba(0,0,0, 0.5)\nsidebar-foreground: #fff\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #eee\nsidebar-tab-background-selected: rgba(255,255,255, 0.8)\nsidebar-tab-background: rgba(255,255,255, 0.4)\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: rgba(255,255,255, 0.2)\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #aaf\nsidebar-tiddler-link-foreground: #ddf\nsite-title-foreground: #fff\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/Rocker": {
            "title": "$:/palettes/Rocker",
            "name": "Rocker",
            "description": "A dark theme",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #000\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #cc0000\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.0)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #000\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #ffbb99\nsidebar-tiddler-link-foreground: #cc0000\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffbb99\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #cc0000\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/SolarFlare": {
            "title": "$:/palettes/SolarFlare",
            "name": "Solar Flare",
            "description": "Warm, relaxing earth colours",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": ": Background Tones\n\nbase03: #002b36\nbase02: #073642\n\n: Content Tones\n\nbase01: #586e75\nbase00: #657b83\nbase0: #839496\nbase1: #93a1a1\n\n: Background Tones\n\nbase2: #eee8d5\nbase3: #fdf6e3\n\n: Accent Colors\n\nyellow: #b58900\norange: #cb4b16\nred: #dc322f\nmagenta: #d33682\nviolet: #6c71c4\nblue: #268bd2\ncyan: #2aa198\ngreen: #859900\n\n: Additional Tones (RA)\n\nbase10: #c0c4bb\nviolet-muted: #7c81b0\nblue-muted: #4e7baa\n\nyellow-hot: #ffcc44\norange-hot: #eb6d20\nred-hot: #ff2222\nblue-hot: #2298ee\ngreen-hot: #98ee22\n\n: Palette\n\n: Do not use colour macro for background and foreground\nbackground: #fdf6e3\n    download-foreground: <<colour background>>\n    dragger-foreground: <<colour background>>\n    dropdown-background: <<colour background>>\n    modal-background: <<colour background>>\n    sidebar-foreground-shadow: <<colour background>>\n    tiddler-background: <<colour background>>\n    tiddler-border: <<colour background>>\n    tiddler-link-background: <<colour background>>\n    tab-background-selected: <<colour background>>\n        dropdown-tab-background-selected: <<colour tab-background-selected>>\nforeground: #657b83\n    dragger-background: <<colour foreground>>\n    tab-foreground: <<colour foreground>>\n        tab-foreground-selected: <<colour tab-foreground>>\n            sidebar-tab-foreground-selected: <<colour tab-foreground-selected>>\n        sidebar-tab-foreground: <<colour tab-foreground>>\n    sidebar-button-foreground: <<colour foreground>>\n    sidebar-controls-foreground: <<colour foreground>>\n    sidebar-foreground: <<colour foreground>>\n: base03\n: base02\n: base01\n    alert-muted-foreground: <<colour base01>>\n: base00\n    code-foreground: <<colour base00>>\n    message-foreground: <<colour base00>>\n    tag-foreground: <<colour base00>>\n: base0\n    sidebar-tiddler-link-foreground: <<colour base0>>\n: base1\n    muted-foreground: <<colour base1>>\n        blockquote-bar: <<colour muted-foreground>>\n        dropdown-border: <<colour muted-foreground>>\n        sidebar-muted-foreground: <<colour muted-foreground>>\n        tiddler-title-foreground: <<colour muted-foreground>>\n            site-title-foreground: <<colour tiddler-title-foreground>>\n: base2\n    modal-footer-background: <<colour base2>>\n    page-background: <<colour base2>>\n        modal-backdrop: <<colour page-background>>\n        notification-background: <<colour page-background>>\n        code-background: <<colour page-background>>\n            code-border: <<colour code-background>>\n        pre-background: <<colour page-background>>\n            pre-border: <<colour pre-background>>\n        sidebar-tab-background-selected: <<colour page-background>>\n    table-header-background: <<colour base2>>\n    tag-background: <<colour base2>>\n    tiddler-editor-background: <<colour base2>>\n    tiddler-info-background: <<colour base2>>\n    tiddler-info-tab-background: <<colour base2>>\n    tab-background: <<colour base2>>\n        dropdown-tab-background: <<colour tab-background>>\n: base3\n    alert-background: <<colour base3>>\n    message-background: <<colour base3>>\n: yellow\n: orange\n: red\n: magenta\n    alert-highlight: <<colour magenta>>\n: violet\n    external-link-foreground: <<colour violet>>\n: blue\n: cyan\n: green\n: base10\n    tiddler-controls-foreground: <<colour base10>>\n: violet-muted\n    external-link-foreground-visited: <<colour violet-muted>>\n: blue-muted\n    primary: <<colour blue-muted>>\n        download-background: <<colour primary>>\n        tiddler-link-foreground: <<colour primary>>\n\nalert-border: #b99e2f\ndirty-indicator: #ff0000\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nmessage-border: #cfd6e6\nmodal-border: #999999\nsidebar-controls-foreground-hover:\nsidebar-muted-foreground-hover:\nsidebar-tab-background: #ded8c5\nsidebar-tiddler-link-foreground-hover:\nstatic-alert-foreground: #aaaaaa\ntab-border: #cccccc\n    modal-footer-border: <<colour tab-border>>\n    modal-header-border: <<colour tab-border>>\n    notification-border: <<colour tab-border>>\n    sidebar-tab-border: <<colour tab-border>>\n    tab-border-selected: <<colour tab-border>>\n        sidebar-tab-border-selected: <<colour tab-border-selected>>\ntab-divider: #d8d8d8\n    sidebar-tab-divider: <<colour tab-divider>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-border: #dddddd\ntiddler-subtitle-foreground: #c0c0c0\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/Vanilla": {
            "title": "$:/palettes/Vanilla",
            "name": "Vanilla",
            "description": "Pale and unobtrusive",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #f4f4f4\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #aaaaaa\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #f4f4f4\nsidebar-tab-background: #e0e0e0\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: #e4e4e4\nsidebar-tab-foreground-selected:\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #999999\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/core/readme": {
            "title": "$:/core/readme",
            "text": "This plugin contains TiddlyWiki's core components, comprising:\n\n* JavaScript code modules\n* Icons\n* Templates needed to create TiddlyWiki's user interface\n* British English (''en-GB'') translations of the localisable strings used by the core\n"
        },
        "$:/library/sjcl.js/license": {
            "title": "$:/library/sjcl.js/license",
            "type": "text/plain",
            "text": "SJCL is open. You can use, modify and redistribute it under a BSD\nlicense or under the GNU GPL, version 2.0.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/BSD-2-Clause\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n1. Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\nnotice, this list of conditions and the following disclaimer in the\ndocumentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\nIS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\nTO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\nPARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/GPL-2.0\n\nThe Stanford Javascript Crypto Library (hosted here on GitHub) is a\nproject by the Stanford Computer Security Lab to build a secure,\npowerful, fast, small, easy-to-use, cross-browser library for\ncryptography in Javascript.\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University.\n\nThis program is free software; you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the\nFree Software Foundation; either version 2 of the License, or (at your\noption) any later version.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\nPublic License for more details.\n\nYou should have received a copy of the GNU General Public License along\nwith this program; if not, write to the Free Software Foundation, Inc.,\n59 Temple Place, Suite 330, Boston, MA 02111-1307 USA"
        },
        "$:/core/templates/MOTW.html": {
            "title": "$:/core/templates/MOTW.html",
            "text": "\\rules only filteredtranscludeinline transcludeinline entity\n<!-- The following comment is called a MOTW comment and is necessary for the TiddlyIE Internet Explorer extension -->\n<!-- saved from url=(0021)http://tiddlywiki.com -->&#13;&#10;"
        },
        "$:/core/templates/alltiddlers.template.html": {
            "title": "$:/core/templates/alltiddlers.template.html",
            "type": "text/vnd.tiddlywiki-html",
            "text": "<!-- This template is provided for backwards compatibility with older versions of TiddlyWiki -->\n\n<$set name=\"exportFilter\" value=\"[!is[system]sort[title]]\">\n\n{{$:/core/templates/exporters/StaticRiver}}\n\n</$set>\n"
        },
        "$:/core/templates/canonical-uri-external-image": {
            "title": "$:/core/templates/canonical-uri-external-image",
            "text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external images.\n\nChange the `./images/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./images/<$view field=\"title\" format=\"doubleurlencoded\"/>"
        },
        "$:/core/templates/canonical-uri-external-text": {
            "title": "$:/core/templates/canonical-uri-external-text",
            "text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external text files.\n\nChange the `./text/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./text/<$view field=\"title\" format=\"doubleurlencoded\"/>.tid"
        },
        "$:/core/templates/css-tiddler": {
            "title": "$:/core/templates/css-tiddler",
            "text": "<!--\n\nThis template is used for saving CSS tiddlers as a style tag with data attributes representing the tiddler fields.\n\n-->`<style`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/css\">`<$view field=\"text\" format=\"text\" />`</style>`"
        },
        "$:/core/templates/exporters/CsvFile": {
            "title": "$:/core/templates/exporters/CsvFile",
            "tags": "$:/tags/Exporter",
            "description": "{{$:/language/Exporters/CsvFile}}",
            "extension": ".csv",
            "text": "\\define renderContent()\n<$text text=<<csvtiddlers filter:\"\"\"$(exportFilter)$\"\"\" format:\"quoted-comma-sep\">>/>\n\\end\n<<renderContent>>\n"
        },
        "$:/core/templates/exporters/JsonFile": {
            "title": "$:/core/templates/exporters/JsonFile",
            "tags": "$:/tags/Exporter",
            "description": "{{$:/language/Exporters/JsonFile}}",
            "extension": ".json",
            "text": "\\define renderContent()\n<$text text=<<jsontiddlers filter:\"\"\"$(exportFilter)$\"\"\">>/>\n\\end\n<<renderContent>>\n"
        },
        "$:/core/templates/exporters/StaticRiver": {
            "title": "$:/core/templates/exporters/StaticRiver",
            "tags": "$:/tags/Exporter",
            "description": "{{$:/language/Exporters/StaticRiver}}",
            "extension": ".html",
            "text": "\\define tv-wikilink-template() #$uri_encoded$\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n<section class=\"tc-story-river\">\n{{$:/core/templates/exporters/StaticRiver/Content||$:/core/templates/html-tiddler}}\n</section>\n</body>\n</html>\n"
        },
        "$:/core/templates/exporters/StaticRiver/Content": {
            "title": "$:/core/templates/exporters/StaticRiver/Content",
            "text": "\\define renderContent()\n{{{ $(exportFilter)$ ||$:/core/templates/static-tiddler}}}\n\\end\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n<<renderContent>>\n</$importvariables>\n"
        },
        "$:/core/templates/exporters/TidFile": {
            "title": "$:/core/templates/exporters/TidFile",
            "tags": "$:/tags/Exporter",
            "description": "{{$:/language/Exporters/TidFile}}",
            "extension": ".tid",
            "text": "\\define renderContent()\n{{{ $(exportFilter)$ +[limit[1]] ||$:/core/templates/tid-tiddler}}}\n\\end\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\"><<renderContent>></$importvariables>"
        },
        "$:/core/templates/html-div-tiddler": {
            "title": "$:/core/templates/html-div-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers as an HTML DIV tag with attributes representing the tiddler fields.\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre>`<$view field=\"text\" format=\"htmlencoded\" />`</pre>\n</div>`\n"
        },
        "$:/core/templates/html-tiddler": {
            "title": "$:/core/templates/html-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers as raw HTML\n\n--><$view field=\"text\" format=\"htmlwikified\" />"
        },
        "$:/core/templates/javascript-tiddler": {
            "title": "$:/core/templates/javascript-tiddler",
            "text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields.\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\">`<$view field=\"text\" format=\"text\" />`</script>`"
        },
        "$:/core/templates/json-tiddler": {
            "title": "$:/core/templates/json-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers as raw JSON\n\n--><$text text=<<jsontiddler>>/>"
        },
        "$:/core/templates/module-tiddler": {
            "title": "$:/core/templates/module-tiddler",
            "text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields. The body of the tiddler is wrapped in a call to the `$tw.modules.define` function in order to define the body of the tiddler as a module\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\" data-module=\"yes\">$tw.modules.define(\"`<$view field=\"title\" format=\"jsencoded\" />`\",\"`<$view field=\"module-type\" format=\"jsencoded\" />`\",function(module,exports,require) {`<$view field=\"text\" format=\"text\" />`});\n</script>`"
        },
        "$:/core/templates/plain-text-tiddler": {
            "title": "$:/core/templates/plain-text-tiddler",
            "text": "<$view field=\"text\" format=\"text\" />"
        },
        "$:/core/templates/raw-static-tiddler": {
            "title": "$:/core/templates/raw-static-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers as static HTML\n\n--><$view field=\"text\" format=\"plainwikified\" />"
        },
        "$:/core/save/all": {
            "title": "$:/core/save/all",
            "text": "\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
        },
        "$:/core/save/empty": {
            "title": "$:/core/save/empty",
            "text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
        },
        "$:/core/save/lazy-all": {
            "title": "$:/core/save/lazy-all",
            "text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] \n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
        },
        "$:/core/save/lazy-images": {
            "title": "$:/core/save/lazy-images",
            "text": "\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] -[!is[system]is[image]] +[sort[title]] \n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
        },
        "$:/core/templates/single.tiddler.window": {
            "title": "$:/core/templates/single.tiddler.window",
            "text": "<$set name=\"themeTitle\" value={{$:/view}}>\n\n<$set name=\"tempCurrentTiddler\" value=<<currentTiddler>>>\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$set name=\"currentTiddler\" value=<<tempCurrentTiddler>>>\n\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n\n<$transclude mode=\"block\"/>\n\n</$navigator>\n\n</$importvariables>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n"
        },
        "$:/core/templates/split-recipe": {
            "title": "$:/core/templates/split-recipe",
            "text": "<$list filter=\"[!is[system]]\">\ntiddler: <$view field=\"title\" format=\"urlencoded\"/>.tid\n</$list>\n"
        },
        "$:/core/templates/static-tiddler": {
            "title": "$:/core/templates/static-tiddler",
            "text": "<a name=<<currentTiddler>>>\n<$transclude tiddler=\"$:/core/ui/ViewTemplate\"/>\n</a>"
        },
        "$:/core/templates/static.area": {
            "title": "$:/core/templates/static.area",
            "text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawStaticContent]!has[draft.of]] ||$:/core/templates/raw-static-tiddler}}}\n{{$:/core/templates/static.content||$:/core/templates/html-tiddler}}\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\nThis file contains an encrypted ~TiddlyWiki. Enable ~JavaScript and enter the decryption password when prompted.\n</$reveal>\n"
        },
        "$:/core/templates/static.content": {
            "title": "$:/core/templates/static.content",
            "type": "text/vnd.tiddlywiki",
            "text": "<!-- For Google, and people without JavaScript-->\nThis [[TiddlyWiki|http://tiddlywiki.com]] contains the following tiddlers:\n\n<ul>\n<$list filter=<<saveTiddlerFilter>>>\n<li><$view field=\"title\" format=\"text\"></$view></li>\n</$list>\n</ul>\n"
        },
        "$:/core/templates/static.template.css": {
            "title": "$:/core/templates/static.template.css",
            "text": "{{$:/boot/boot.css||$:/core/templates/plain-text-tiddler}}\n\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n"
        },
        "$:/core/templates/static.template.html": {
            "title": "$:/core/templates/static.template.html",
            "type": "text/vnd.tiddlywiki-html",
            "text": "\\define tv-wikilink-template() static/$uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n{{$:/core/ui/PageTemplate||$:/core/templates/html-tiddler}}\n</body>\n</html>\n"
        },
        "$:/core/templates/static.tiddler.html": {
            "title": "$:/core/templates/static.tiddler.html",
            "text": "\\define tv-wikilink-template() $uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n`<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"static.css\">\n<title>`<$view field=\"caption\"><$view field=\"title\"/></$view>: {{$:/core/wiki/title}}`</title>\n</head>\n<body class=\"tc-body\">\n`{{$:/StaticBanner||$:/core/templates/html-tiddler}}`\n<section class=\"tc-story-river\">\n`<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n<$view tiddler=\"$:/core/ui/ViewTemplate\" format=\"htmlwikified\"/>\n</$importvariables>`\n</section>\n</body>\n</html>\n`"
        },
        "$:/core/templates/store.area.template.html": {
            "title": "$:/core/templates/store.area.template.html",
            "text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n`<div id=\"storeArea\" style=\"display:none;\">`\n<$list filter=<<saveTiddlerFilter>> template=\"$:/core/templates/html-div-tiddler\"/>\n`</div>`\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n`<!--~~ Encrypted tiddlers ~~-->`\n`<pre id=\"encryptedStoreArea\" type=\"text/plain\" style=\"display:none;\">`\n<$encrypt filter=<<saveTiddlerFilter>>/>\n`</pre>`\n</$reveal>"
        },
        "$:/core/templates/tid-tiddler": {
            "title": "$:/core/templates/tid-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers in TiddlyWeb *.tid format\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>`\n`<$view field=\"text\" format=\"text\" />"
        },
        "$:/core/templates/tiddler-metadata": {
            "title": "$:/core/templates/tiddler-metadata",
            "text": "<!--\n\nThis template is used for saving tiddler metadata *.meta files\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>"
        },
        "$:/core/templates/tiddlywiki5.html": {
            "title": "$:/core/templates/tiddlywiki5.html",
            "text": "\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n{{$:/core/templates/MOTW.html}}<html>\n<head>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\">\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"{{$:/core/copyright.txt}}\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/core/wiki/rawmarkup]] [all[shadows+tiddlers]tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}\n</head>\n<body class=\"tc-body\">\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n{{$:/core/templates/static.area}}\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n{{$:/core/templates/store.area.template.html}}\n<!--~~ Library modules ~~-->\n<div id=\"libraryModules\" style=\"display:none;\">\n{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/javascript-tiddler}}}\n</div>\n<!--~~ Boot kernel prologue ~~-->\n<div id=\"bootKernelPrefix\" style=\"display:none;\">\n{{ $:/boot/bootprefix.js ||$:/core/templates/javascript-tiddler}}\n</div>\n<!--~~ Boot kernel ~~-->\n<div id=\"bootKernel\" style=\"display:none;\">\n{{ $:/boot/boot.js ||$:/core/templates/javascript-tiddler}}\n</div>\n</body>\n</html>\n"
        },
        "$:/core/templates/version": {
            "title": "$:/core/templates/version",
            "text": "<<version>>"
        },
        "$:/core/templates/wikified-tiddler": {
            "title": "$:/core/templates/wikified-tiddler",
            "text": "<$transclude />"
        },
        "$:/core/ui/AboveStory/tw2-plugin-check": {
            "title": "$:/core/ui/AboveStory/tw2-plugin-check",
            "tags": "$:/tags/AboveStory",
            "text": "\\define lingo-base() $:/language/AboveStory/ClassicPlugin/\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]limit[1]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n<ul>\n\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]]\">\n\n<li>\n\n<$link><$view field=\"title\"/></$link>\n\n</li>\n\n</$list>\n\n</ul>\n\n</div>\n\n</$list>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter": {
            "title": "$:/core/ui/AdvancedSearch/Filter",
            "tags": "$:/tags/AdvancedSearch",
            "caption": "{{$:/language/Search/Filter/Caption}}",
            "text": "\\define lingo-base() $:/language/Search/\n<<lingo Filter/Hint>>\n\n<div class=\"tc-search tc-advanced-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch/FilterButton]!has[draft.of]]\"><$transclude/></$list>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\n<div class=\"tc-search-results\">\n<<lingo Filter/Matches>>\n<$list filter={{$:/temp/advancedsearch}} template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$set>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear": {
            "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear",
            "tags": "$:/tags/AdvancedSearch/FilterButton",
            "text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete": {
            "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete",
            "tags": "$:/tags/AdvancedSearch/FilterButton",
            "text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button popup=<<qualify \"$:/state/filterDeleteDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/delete-button}}\n</$button>\n</$reveal>\n\n<$reveal state=<<qualify \"$:/state/filterDeleteDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\nAre you sure you wish to delete <<resultCount>> tiddler(s)?\n</$set>\n</div>\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn\">\n<$action-deletetiddler $filter={{$:/temp/advancedsearch}}/>\nDelete these tiddlers\n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown": {
            "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown",
            "tags": "$:/tags/AdvancedSearch/FilterButton",
            "text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/filterDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</span>\n\n<$reveal state=<<qualify \"$:/state/filterDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Filter]]\"><$link to={{!!filter}}><$transclude field=\"description\"/></$link>\n</$list>\n</div>\n</div>\n</$linkcatcher>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter/FilterButtons/export": {
            "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/export",
            "tags": "$:/tags/AdvancedSearch/FilterButton",
            "text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$macrocall $name=\"exportButton\" exportFilter={{$:/temp/advancedsearch}} lingoBase=\"$:/language/Buttons/ExportTiddlers/\"/>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Shadows": {
            "title": "$:/core/ui/AdvancedSearch/Shadows",
            "tags": "$:/tags/AdvancedSearch",
            "caption": "{{$:/language/Search/Shadows/Caption}}",
            "text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Shadows/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[all[shadows]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo Shadows/Matches>>\n\n<$list filter=\"[all[shadows]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Standard": {
            "title": "$:/core/ui/AdvancedSearch/Standard",
            "tags": "$:/tags/AdvancedSearch",
            "caption": "{{$:/language/Search/Standard/Caption}}",
            "text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Standard/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$set name=\"searchTiddler\" value=\"$:/temp/advancedsearch\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude/>\n</$list>\n\"\"\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}}/>\n</$list>\n</$set>\n</$list>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/System": {
            "title": "$:/core/ui/AdvancedSearch/System",
            "tags": "$:/tags/AdvancedSearch",
            "caption": "{{$:/language/Search/System/Caption}}",
            "text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo System/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[is[system]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo System/Matches>>\n\n<$list filter=\"[is[system]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
        },
        "$:/AdvancedSearch": {
            "title": "$:/AdvancedSearch",
            "icon": "$:/core/images/advanced-search-button",
            "color": "#bbb",
            "text": "<div class=\"tc-advanced-search\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch]!has[draft.of]]\" \"$:/core/ui/AdvancedSearch/System\">>\n</div>\n"
        },
        "$:/core/ui/AlertTemplate": {
            "title": "$:/core/ui/AlertTemplate",
            "text": "<div class=\"tc-alert\">\n<div class=\"tc-alert-toolbar\">\n<$button class=\"tc-btn-invisible\"><$action-deletetiddler $tiddler=<<currentTiddler>>/>{{$:/core/images/delete-button}}</$button>\n</div>\n<div class=\"tc-alert-subtitle\">\n<$view field=\"component\"/> - <$view field=\"modified\" format=\"date\" template=\"0hh:0mm:0ss DD MM YYYY\"/> <$reveal type=\"nomatch\" state=\"!!count\" text=\"\"><span class=\"tc-alert-highlight\">({{$:/language/Count}}: <$view field=\"count\"/>)</span></$reveal>\n</div>\n<div class=\"tc-alert-body\">\n\n<$transclude/>\n\n</div>\n</div>\n"
        },
        "$:/core/ui/BinaryWarning": {
            "title": "$:/core/ui/BinaryWarning",
            "text": "\\define lingo-base() $:/language/BinaryWarning/\n<div class=\"tc-binary-warning\">\n\n<<lingo Prompt>>\n\n</div>\n"
        },
        "$:/core/ui/Components/plugin-info": {
            "title": "$:/core/ui/Components/plugin-info",
            "text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define popup-state-macro()\n$(qualified-state)$-$(currentTiddler)$\n\\end\n\n\\define tabs-state-macro()\n$(popup-state)$-$(pluginInfoType)$\n\\end\n\n\\define plugin-icon-title()\n$(currentTiddler)$/icon\n\\end\n\n\\define plugin-disable-title()\n$:/config/Plugins/Disabled/$(currentTiddler)$\n\\end\n\n\\define plugin-table-body(type,disabledMessage,default-popup-state)\n<div class=\"tc-plugin-info-chunk tc-small-icon\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<plugin-icon-title>>>\n<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\n</$transclude>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<h1>\n''<$view field=\"description\"><$view field=\"title\"/></$view>'' $disabledMessage$\n</h1>\n<h2>\n<$view field=\"title\"/>\n</h2>\n<h2>\n<div><em><$view field=\"version\"/></em></div>\n</h2>\n</div>\n\\end\n\n\\define plugin-info(type,default-popup-state)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info tc-plugin-info-disabled\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\" disabledMessage:\"<$macrocall $name='lingo' title='Disabled/Status'/>\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>> default=\"\"\"$default-popup-state$\"\"\">\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-body\">\n<$list filter=\"[all[current]] -[[$:/core]]\">\n<div style=\"float:right;\">\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"yes\" tooltip={{$:/language/ControlPanel/Plugins/Disable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Disable/Caption}}>\n<<lingo Disable/Caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"no\" tooltip={{$:/language/ControlPanel/Plugins/Enable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Enable/Caption}}>\n<<lingo Enable/Caption>>\n</$button>\n</$reveal>\n</div>\n</$list>\n<$reveal type=\"nomatch\" text=\"\" state=\"!!list\">\n<$set name=\"tabsList\" filter=\"[<currentTiddler>list[]] contents\">\n<$macrocall $name=\"tabs\" state=<<tabs-state-macro>> tabsList=<<tabsList>> default=\"readme\" template=\"$:/core/ui/PluginInfo\"/>\n</$set>\n</$reveal>\n<$reveal type=\"match\" text=\"\" state=\"!!list\">\n<<lingo NoInformation/Hint>>\n</$reveal>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end\n\n<$macrocall $name=\"plugin-info\" type=<<plugin-type>> default-popup-state=<<default-popup-state>>/>\n"
        },
        "$:/core/ui/Components/tag-link": {
            "title": "$:/core/ui/Components/tag-link",
            "text": "<$link>\n<$set name=\"backgroundColor\" value={{!!color}}>\n<span style=<<tag-styles>> class=\"tc-tag-label\">\n<$view field=\"title\" format=\"text\"/>\n</span>\n</$set>\n</$link>"
        },
        "$:/core/ui/ControlPanel/Advanced": {
            "title": "$:/core/ui/ControlPanel/Advanced",
            "tags": "$:/tags/ControlPanel/Info",
            "caption": "{{$:/language/ControlPanel/Advanced/Caption}}",
            "text": "{{$:/language/ControlPanel/Advanced/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Advanced]!has[draft.of]]\" \"$:/core/ui/ControlPanel/TiddlerFields\">>\n</div>\n"
        },
        "$:/core/ui/ControlPanel/Appearance": {
            "title": "$:/core/ui/ControlPanel/Appearance",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Appearance/Caption}}",
            "text": "{{$:/language/ControlPanel/Appearance/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Appearance]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Theme\">>\n</div>\n"
        },
        "$:/core/ui/ControlPanel/Basics": {
            "title": "$:/core/ui/ControlPanel/Basics",
            "tags": "$:/tags/ControlPanel/Info",
            "caption": "{{$:/language/ControlPanel/Basics/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Basics/\n\n\\define show-filter-count(filter)\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $value=\"\"\"$filter$\"\"\"/>\n<$action-setfield $tiddler=\"$:/state/tab--1498284803\" $value=\"$:/core/ui/AdvancedSearch/Filter\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n''<$count filter=\"\"\"$filter$\"\"\"/>''\n{{$:/core/images/advanced-search-button}}\n</$button>\n\\end\n\n|<<lingo Version/Prompt>> |''<<version>>'' |\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/status/UserName\"><<lingo Username/Prompt>></$link> |<$edit-text tiddler=\"$:/status/UserName\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/AnimationDuration\"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler=\"$:/config/AnimationDuration\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\" class=\"tc-edit-texteditor\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n|<$link to=\"$:/config/NewJournal/Title\"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Title\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Text\"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler=\"$:/config/NewJournal/Text\" tag=\"textarea\" class=\"tc-edit-texteditor\" default=\"\"/> |\n|<$link to=\"$:/config/NewJournal/Tags\"><<lingo NewJournal/Tags/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Tags\" default=\"\" tag=\"input\"/> |\n|<<lingo Language/Prompt>> |{{$:/snippets/minilanguageswitcher}} |\n|<<lingo Tiddlers/Prompt>> |<<show-filter-count \"[!is[system]sort[title]]\">> |\n|<<lingo Tags/Prompt>> |<<show-filter-count \"[tags[]sort[title]]\">> |\n|<<lingo SystemTiddlers/Prompt>> |<<show-filter-count \"[is[system]sort[title]]\">> |\n|<<lingo ShadowTiddlers/Prompt>> |<<show-filter-count \"[all[shadows]sort[title]]\">> |\n|<<lingo OverriddenShadowTiddlers/Prompt>> |<<show-filter-count \"[is[tiddler]is[shadow]sort[title]]\">> |\n"
        },
        "$:/core/ui/ControlPanel/EditorTypes": {
            "title": "$:/core/ui/ControlPanel/EditorTypes",
            "tags": "$:/tags/ControlPanel/Advanced",
            "caption": "{{$:/language/ControlPanel/EditorTypes/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/EditorTypes/\n\n<<lingo Hint>>\n\n<table>\n<tbody>\n<tr>\n<th><<lingo Type/Caption>></th>\n<th><<lingo Editor/Caption>></th>\n</tr>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/config/EditorTypeMappings/]sort[title]]\">\n<tr>\n<td>\n<$link>\n<$list filter=\"[all[current]removeprefix[$:/config/EditorTypeMappings/]]\">\n<$text text={{!!title}}/>\n</$list>\n</$link>\n</td>\n<td>\n<$view field=\"text\"/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/ControlPanel/Info": {
            "title": "$:/core/ui/ControlPanel/Info",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Info/Caption}}",
            "text": "{{$:/language/ControlPanel/Info/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Info]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Basics\">>\n</div>\n"
        },
        "$:/core/ui/ControlPanel/KeyboardShortcuts": {
            "title": "$:/core/ui/ControlPanel/KeyboardShortcuts",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/KeyboardShortcuts/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/KeyboardShortcuts/\n\n\\define new-shortcut(title)\n<div class=\"tc-dropdown-item-plain\">\n<$edit-shortcut tiddler=\"$title$\" placeholder={{$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt}} style=\"width:auto;\"/> <$button>\n<<lingo Add/Caption>>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"[{$title$}]\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"$title$\"\n/>\n</$button>\n</div>\n\\end\n\n\\define shortcut-list-item(caption)\n<td>\n</td>\n<td style=\"text-align:right;font-size:0.7em;\">\n<<lingo Platform/$caption$>>\n</td>\n<td>\n<div style=\"position:relative;\">\n<$button popup=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> class=\"tc-btn-invisible\">\n{{$:/core/images/edit-button}}\n</$button>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutTitle)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\n<$reveal state=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown tc-popup-keep\">\n<$list filter=\"[list[$(shortcutTitle)$!!text]sort[title]]\" variable=\"shortcut\" emptyMessage=\"\"\"\n<div class=\"tc-dropdown-item-plain\">\n//<<lingo NoShortcuts/Caption>>//\n</div>\n\"\"\">\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn-invisible\" tooltip=<<lingo Remove/Hint>>>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"+[remove<shortcut>]\"\n/>\n&times;\n</$button>\n<kbd>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts=<<shortcut>>/>\n</kbd>\n</div>\n</$list>\n<hr/>\n<$macrocall $name=\"new-shortcut\" title=<<qualify \"$:/state/new-shortcut/$(shortcutTitle)$\">>/>\n</div>\n</div>\n</$reveal>\n</div>\n</td>\n\\end\n\n\\define shortcut-list(caption,prefix)\n<tr>\n<$list filter=\"[all[tiddlers+shadows][$prefix$$(shortcutName)$]]\" variable=\"shortcutTitle\">\n<<shortcut-list-item \"$caption$\">>\n</$list>\n</tr>\n\\end\n\n\\define shortcut-editor()\n<<shortcut-list \"All\" \"$:/config/shortcuts/\">>\n<<shortcut-list \"Mac\" \"$:/config/shortcuts-mac/\">>\n<<shortcut-list \"NonMac\" \"$:/config/shortcuts-not-mac/\">>\n<<shortcut-list \"Linux\" \"$:/config/shortcuts-linux/\">>\n<<shortcut-list \"NonLinux\" \"$:/config/shortcuts-not-linux/\">>\n<<shortcut-list \"Windows\" \"$:/config/shortcuts-windows/\">>\n<<shortcut-list \"NonWindows\" \"$:/config/shortcuts-not-windows/\">>\n\\end\n\n\\define shortcut-preview()\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutPrefix)$$(shortcutName)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\\end\n\n\\define shortcut-item-inner()\n<tr>\n<td>\n<$reveal type=\"nomatch\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"open\"\n/>\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"close\"\n/>\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n''<$text text=<<shortcutName>>/>''\n</td>\n<td>\n<$transclude tiddler=\"$:/config/ShortcutInfo/$(shortcutName)$\"/>\n</td>\n<td>\n<$list filter=\"$:/config/shortcuts/ $:/config/shortcuts-mac/ $:/config/shortcuts-not-mac/ $:/config/shortcuts-linux/ $:/config/shortcuts-not-linux/ $:/config/shortcuts-windows/ $:/config/shortcuts-not-windows/\" variable=\"shortcutPrefix\">\n<<shortcut-preview>>\n</$list>\n</td>\n</tr>\n<$set name=\"dropdownState\" value={{$(dropdownStateTitle)$}}>\n<$list filter=\"[<dropdownState>prefix[open]]\" variable=\"listItem\">\n<<shortcut-editor>>\n</$list>\n</$set>\n\\end\n\n\\define shortcut-item()\n<$set name=\"dropdownStateTitle\" value=<<qualify \"$:/state/dropdown/keyboardshortcut/$(shortcutName)$\">>>\n<<shortcut-item-inner>>\n</$set>\n\\end\n\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]removeprefix[$:/config/ShortcutInfo/]]\" variable=\"shortcutName\">\n<<shortcut-item>>\n</$list>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/ControlPanel/LoadedModules": {
            "title": "$:/core/ui/ControlPanel/LoadedModules",
            "tags": "$:/tags/ControlPanel/Advanced",
            "caption": "{{$:/language/ControlPanel/LoadedModules/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/\n<<lingo LoadedModules/Hint>>\n\n{{$:/snippets/modules}}\n"
        },
        "$:/core/ui/ControlPanel/Modals/AddPlugins": {
            "title": "$:/core/ui/ControlPanel/Modals/AddPlugins",
            "subtitle": "{{$:/core/images/download-button}} {{$:/language/ControlPanel/Plugins/Add/Caption}}",
            "text": "\\define install-plugin-button()\n<$button>\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url={{!!url}} title={{$(assetInfo)$!!original-title}}/>\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\" emptyMessage=\"\"\"{{$:/language/ControlPanel/Plugins/Install/Caption}}\"\"\">\n{{$:/language/ControlPanel/Plugins/Reinstall/Caption}}\n</$list>\n</$button>\n\\end\n\n\\define popup-state-macro()\n$:/state/add-plugin-info/$(connectionTiddler)$/$(assetInfo)$\n\\end\n\n\\define display-plugin-info(type)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<div class=\"tc-plugin-info\">\n<div class=\"tc-plugin-info-chunk tc-small-icon\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<$list filter=\"[<assetInfo>has[icon]]\" emptyMessage=\"\"\"<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\"\"\">\n<img src={{$(assetInfo)$!!icon}}/>\n</$list>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<h1><$view tiddler=<<assetInfo>> field=\"description\"/></h1>\n<h2><$view tiddler=<<assetInfo>> field=\"original-title\"/></h2>\n<div><em><$view tiddler=<<assetInfo>> field=\"version\"/></em></div>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<<install-plugin-button>>\n</div>\n</div>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>>>\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-message\">\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\" emptyMessage=\"\"\"{{$:/language/ControlPanel/Plugins/NotInstalled/Hint}}\"\"\">\n<em>\n{{$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint}}\n</em>\n</$list>\n</div>\n<div class=\"tc-plugin-info-dropdown-body\">\n<$transclude tiddler=<<assetInfo>> field=\"readme\" mode=\"block\"/>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end\n\n\\define load-plugin-library-button()\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-load-plugin-library\" url={{!!url}} infoTitlePrefix=\"$:/temp/RemoteAssetInfo/\"/>\n{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Plugins/OpenPluginLibrary}}\n</$button>\n\\end\n\n\\define display-server-assets(type)\n{{$:/language/Search/Search}}: <$edit-text tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" default=\"\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n<div class=\"tc-plugin-library-listing\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]search{$:/temp/RemoteAssetSearch/$(currentTiddler)$}sort[description]]\" variable=\"assetInfo\">\n<<display-plugin-info \"$type$\">>\n</$list>\n</div>\n\\end\n\n\\define display-server-connection()\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/ServerConnection]suffix{!!url}]\" variable=\"connectionTiddler\" emptyMessage=<<load-plugin-library-button>>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Add/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Add/Themes]] [[$:/core/ui/ControlPanel/Plugins/Add/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Add/Plugins\">>\n\n</$list>\n\\end\n\n\\define close-library-button()\n<$reveal type='nomatch' state='$:/temp/ServerConnection/$(PluginLibraryURL)$' text=''>\n<$button class='tc-btn-big-green'>\n<$action-sendmessage $message=\"tm-unload-plugin-library\" url={{!!url}}/>\n{{$:/core/images/chevron-left}} {{$:/language/ControlPanel/Plugins/ClosePluginLibrary}}\n<$action-deletetiddler $filter=\"[prefix[$:/temp/ServerConnection/$(PluginLibraryURL)$]][prefix[$:/temp/RemoteAssetInfo/$(PluginLibraryURL)$]]\"/>\n</$button>\n</$reveal>\n\\end\n\n\\define plugin-library-listing()\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<div class=\"tc-plugin-library\">\n\n!! <$link><$transclude field=\"caption\"><$view field=\"title\"/></$transclude></$link>\n\n//<$view field=\"url\"/>//\n\n<$transclude/>\n\n<$set name=PluginLibraryURL value={{!!url}}>\n<<close-library-button>>\n</$set>\n\n<<display-server-connection>>\n</div>\n</$list>\n\\end\n\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<div>\n<<plugin-library-listing>>\n</div>\n\n</$importvariables>\n"
        },
        "$:/core/ui/ControlPanel/Palette": {
            "title": "$:/core/ui/ControlPanel/Palette",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ControlPanel/Palette/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Palette/\n\n{{$:/snippets/paletteswitcher}}\n\n<$reveal type=\"nomatch\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"yes\"><<lingo ShowEditor/Caption>></$button>\n\n</$reveal>\n\n<$reveal type=\"match\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"no\"><<lingo HideEditor/Caption>></$button>\n{{$:/snippets/paletteeditor}}\n\n</$reveal>\n\n"
        },
        "$:/core/ui/ControlPanel/Parsing": {
            "title": "$:/core/ui/ControlPanel/Parsing",
            "tags": "$:/tags/ControlPanel/Advanced",
            "caption": "{{$:/language/ControlPanel/Parsing/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Parsing/\n\n\\define toggle(Type)\n<$checkbox\ntiddler=\"\"\"$:/config/WikiParserRules/$Type$/$(rule)$\"\"\"\nfield=\"text\"\nchecked=\"enable\"\nunchecked=\"disable\"\ndefault=\"enable\">\n<<rule>>\n</$checkbox>\n\\end\n\n\\define rules(type,Type)\n<$list filter=\"[wikiparserrules[$type$]]\" variable=\"rule\">\n<dd><<toggle $Type$>></dd>\n</$list>\n\\end\n\n<<lingo Hint>>\n\n<dl>\n<dt><<lingo Pragma/Caption>></dt>\n<<rules pragma Pragma>>\n<dt><<lingo Inline/Caption>></dt>\n<<rules inline Inline>>\n<dt><<lingo Block/Caption>></dt>\n<<rules block Block>>\n</dl>"
        },
        "$:/core/ui/ControlPanel/Plugins/Add/Languages": {
            "title": "$:/core/ui/ControlPanel/Plugins/Add/Languages",
            "caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[language]]\"/>)",
            "text": "<<display-server-assets language>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Add/Plugins": {
            "title": "$:/core/ui/ControlPanel/Plugins/Add/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}}  (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[plugin]]\"/>)",
            "text": "<<display-server-assets plugin>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Add/Themes": {
            "title": "$:/core/ui/ControlPanel/Plugins/Add/Themes",
            "caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}}  (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[theme]]\"/>)",
            "text": "<<display-server-assets theme>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/AddPlugins": {
            "title": "$:/core/ui/ControlPanel/Plugins/AddPlugins",
            "text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n<$button message=\"tm-modal\" param=\"$:/core/ui/ControlPanel/Modals/AddPlugins\" tooltip={{$:/language/ControlPanel/Plugins/Add/Hint}} class=\"tc-btn-big-green\" style=\"background:blue;\">\n{{$:/core/images/download-button}} <<lingo Add/Caption>>\n</$button>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Installed/Languages": {
            "title": "$:/core/ui/ControlPanel/Plugins/Installed/Languages",
            "caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[language]]\"/>)",
            "text": "<<plugin-table language>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Installed/Plugins": {
            "title": "$:/core/ui/ControlPanel/Plugins/Installed/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[plugin]]\"/>)",
            "text": "<<plugin-table plugin>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Installed/Themes": {
            "title": "$:/core/ui/ControlPanel/Plugins/Installed/Themes",
            "caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[theme]]\"/>)",
            "text": "<<plugin-table theme>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins": {
            "title": "$:/core/ui/ControlPanel/Plugins",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define plugin-table(type)\n<$set name=\"plugin-type\" value=\"\"\"$type$\"\"\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n<$list filter=\"[!has[draft.of]plugin-type[$type$]sort[description]]\" emptyMessage=<<lingo \"Empty/Hint\">> template=\"$:/core/ui/Components/plugin-info\"/>\n</$set>\n</$set>\n\\end\n\n{{$:/core/ui/ControlPanel/Plugins/AddPlugins}}\n\n<<lingo Installed/Hint>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Installed/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Installed/Themes]] [[$:/core/ui/ControlPanel/Plugins/Installed/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Installed/Plugins\">>\n"
        },
        "$:/core/ui/ControlPanel/Saving/DownloadSaver": {
            "title": "$:/core/ui/ControlPanel/Saving/DownloadSaver",
            "tags": "$:/tags/ControlPanel/Saving",
            "caption": "{{$:/language/ControlPanel/Saving/DownloadSaver/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Saving/DownloadSaver/\n\n<<lingo Hint>>\n\n!! <$link to=\"$:/config/DownloadSaver/AutoSave\"><<lingo AutoSave/Hint>></$link>\n\n<$checkbox tiddler=\"$:/config/DownloadSaver/AutoSave\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <<lingo AutoSave/Description>> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Saving/General": {
            "title": "$:/core/ui/ControlPanel/Saving/General",
            "tags": "$:/tags/ControlPanel/Saving",
            "caption": "{{$:/language/ControlPanel/Saving/General/Caption}}",
            "list-before": "",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n{{$:/language/ControlPanel/Saving/General/Hint}}\n\n!! <$link to=\"$:/config/AutoSave\"><<lingo AutoSave/Caption>></$link>\n\n<<lingo AutoSave/Hint>>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"yes\"> <<lingo AutoSave/Enabled/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"no\"> <<lingo AutoSave/Disabled/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Saving/TiddlySpot": {
            "title": "$:/core/ui/ControlPanel/Saving/TiddlySpot",
            "tags": "$:/tags/ControlPanel/Saving",
            "caption": "{{$:/language/ControlPanel/Saving/TiddlySpot/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Saving/TiddlySpot/\n\n\\define backupURL()\nhttp://$(userName)$.tiddlyspot.com/backup/\n\\end\n\\define backupLink()\n<$reveal type=\"nomatch\" state=\"$:/UploadName\" text=\"\">\n<$set name=\"userName\" value={{$:/UploadName}}>\n<$reveal type=\"match\" state=\"$:/UploadURL\" text=\"\">\n<<backupURL>>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/UploadURL\" text=\"\">\n<$macrocall $name=resolvePath source={{$:/UploadBackupDir}} root={{$:/UploadURL}}>>\n</$reveal>\n</$set>\n</$reveal>\n\\end\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/UploadName\" default=\"\" tag=\"input\"/> |\n|<<lingo Password>> |<$password name=\"upload\"/> |\n|<<lingo Backups>> |<<backupLink>> |\n\n''<<lingo Advanced/Heading>>''\n\n|<<lingo ServerURL>>  |<$edit-text tiddler=\"$:/UploadURL\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/UploadFilename\" default=\"index.html\" tag=\"input\"/> |\n|<<lingo UploadDir>> |<$edit-text tiddler=\"$:/UploadDir\" default=\".\" tag=\"input\"/> |\n|<<lingo BackupDir>> |<$edit-text tiddler=\"$:/UploadBackupDir\" default=\".\" tag=\"input\"/> |\n\n<<lingo TiddlySpot/Hint>>"
        },
        "$:/core/ui/ControlPanel/Saving": {
            "title": "$:/core/ui/ControlPanel/Saving",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Saving/Caption}}",
            "text": "{{$:/language/ControlPanel/Saving/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Saving]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Saving/General\">>\n</div>\n"
        },
        "$:/core/buttonstyles/Borderless": {
            "title": "$:/core/buttonstyles/Borderless",
            "tags": "$:/tags/ToolbarButtonStyle",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless}}",
            "text": "tc-btn-invisible"
        },
        "$:/core/buttonstyles/Boxed": {
            "title": "$:/core/buttonstyles/Boxed",
            "tags": "$:/tags/ToolbarButtonStyle",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed}}",
            "text": "tc-btn-boxed"
        },
        "$:/core/buttonstyles/Rounded": {
            "title": "$:/core/buttonstyles/Rounded",
            "tags": "$:/tags/ToolbarButtonStyle",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded}}",
            "text": "tc-btn-rounded"
        },
        "$:/core/ui/ControlPanel/Settings/CamelCase": {
            "title": "$:/core/ui/ControlPanel/Settings/CamelCase",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/CamelCase/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/CamelCase/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/WikiParserRules/Inline/wikilink\" field=\"text\" checked=\"enable\" unchecked=\"disable\" default=\"enable\"> <$link to=\"$:/config/WikiParserRules/Inline/wikilink\"><<lingo Description>></$link> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Settings/DefaultSidebarTab": {
            "caption": "{{$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption}}",
            "tags": "$:/tags/ControlPanel/Settings",
            "title": "$:/core/ui/ControlPanel/Settings/DefaultSidebarTab",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultSidebarTab/\n\n<$link to=\"$:/config/DefaultSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"
        },
        "$:/core/ui/ControlPanel/Settings/EditorToolbar": {
            "title": "$:/core/ui/ControlPanel/Settings/EditorToolbar",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/EditorToolbar/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/EditorToolbar/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/TextEditor/EnableToolbar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/TextEditor/EnableToolbar\"><<lingo Description>></$link> </$checkbox>\n\n"
        },
        "$:/core/ui/ControlPanel/Settings/InfoPanelMode": {
            "title": "$:/core/ui/ControlPanel/Settings/InfoPanelMode",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/InfoPanelMode/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/InfoPanelMode/\n<$link to=\"$:/config/TiddlerInfo/Mode\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"popup\"> <<lingo Popup/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"sticky\"> <<lingo Sticky/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Settings/LinkToBehaviour": {
            "title": "$:/core/ui/ControlPanel/Settings/LinkToBehaviour",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/LinkToBehaviour/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/LinkToBehaviour/\n\n<$link to=\"$:/config/Navigation/openLinkFromInsideRiver\"><<lingo \"InsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromInsideRiver\">\n  <option value=\"above\"><<lingo \"OpenAbove\">></option>\n  <option value=\"below\"><<lingo \"OpenBelow\">></option>\n  <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n  <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n\n<$link to=\"$:/config/Navigation/openLinkFromOutsideRiver\"><<lingo \"OutsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromOutsideRiver\">\n  <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n  <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n"
        },
        "$:/core/ui/ControlPanel/Settings/MissingLinks": {
            "title": "$:/core/ui/ControlPanel/Settings/MissingLinks",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/MissingLinks/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/MissingLinks/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/MissingLinks\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/MissingLinks\"><<lingo Description>></$link> </$checkbox>\n\n"
        },
        "$:/core/ui/ControlPanel/Settings/NavigationAddressBar": {
            "title": "$:/core/ui/ControlPanel/Settings/NavigationAddressBar",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/NavigationAddressBar/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationAddressBar/\n\n<$link to=\"$:/config/Navigation/UpdateAddressBar\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permaview\"> <<lingo Permaview/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permalink\"> <<lingo Permalink/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Settings/NavigationHistory": {
            "title": "$:/core/ui/ControlPanel/Settings/NavigationHistory",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/NavigationHistory/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationHistory/\n<$link to=\"$:/config/Navigation/UpdateHistory\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation": {
            "title": "$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/PerformanceInstrumentation/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Performance/Instrumentation\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Performance/Instrumentation\"><<lingo Description>></$link> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Settings/TitleLinks": {
            "title": "$:/core/ui/ControlPanel/Settings/TitleLinks",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/TitleLinks/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/TitleLinks/\n<$link to=\"$:/config/Tiddlers/TitleLinks\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle": {
            "title": "$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtonStyle/\n<$link to=\"$:/config/Toolbar/ButtonClass\"><<lingo \"Hint\">></$link>\n\n<$select tiddler=\"$:/config/Toolbar/ButtonClass\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ToolbarButtonStyle]]\">\n<option value={{!!text}}>{{!!caption}}</option>\n</$list>\n</$select>\n"
        },
        "$:/core/ui/ControlPanel/Settings/ToolbarButtons": {
            "title": "$:/core/ui/ControlPanel/Settings/ToolbarButtons",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtons/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtons/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Icons\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Toolbar/Icons\"><<lingo Icons/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Text\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Toolbar/Text\"><<lingo Text/Description>></$link> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Settings": {
            "title": "$:/core/ui/ControlPanel/Settings",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Settings/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n<<lingo Hint>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n"
        },
        "$:/core/ui/ControlPanel/StoryView": {
            "title": "$:/core/ui/ControlPanel/StoryView",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ControlPanel/StoryView/Caption}}",
            "text": "{{$:/snippets/viewswitcher}}\n"
        },
        "$:/core/ui/ControlPanel/Theme": {
            "title": "$:/core/ui/ControlPanel/Theme",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ControlPanel/Theme/Caption}}",
            "text": "{{$:/snippets/themeswitcher}}\n"
        },
        "$:/core/ui/ControlPanel/TiddlerFields": {
            "title": "$:/core/ui/ControlPanel/TiddlerFields",
            "tags": "$:/tags/ControlPanel/Advanced",
            "caption": "{{$:/language/ControlPanel/TiddlerFields/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo TiddlerFields/Hint>>\n\n{{$:/snippets/allfields}}"
        },
        "$:/core/ui/ControlPanel/Toolbars/EditToolbar": {
            "title": "$:/core/ui/ControlPanel/Toolbars/EditToolbar",
            "tags": "$:/tags/ControlPanel/Toolbars",
            "caption": "{{$:/language/ControlPanel/Toolbars/EditToolbar/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>"
        },
        "$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate": {
            "title": "$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate",
            "text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"><$transclude tiddler={{!!icon}}/></span> <$transclude field=\"caption\"/> -- <i class=\"tc-muted\"><$transclude field=\"description\"/></i>\n</$draggable>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars/EditorToolbar": {
            "title": "$:/core/ui/ControlPanel/Toolbars/EditorToolbar",
            "tags": "$:/tags/ControlPanel/Toolbars",
            "caption": "{{$:/language/ControlPanel/Toolbars/EditorToolbar/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditorToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditorToolbar/Hint}}\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditorToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate\"/>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars/ItemTemplate": {
            "title": "$:/core/ui/ControlPanel/Toolbars/ItemTemplate",
            "text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"> <$transclude field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude field=\"description\"/></i></span>\n</$draggable>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars/PageControls": {
            "title": "$:/core/ui/ControlPanel/Toolbars/PageControls",
            "tags": "$:/tags/ControlPanel/Toolbars",
            "caption": "{{$:/language/ControlPanel/Toolbars/PageControls/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/PageControlButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/PageControls/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/PageControls\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars/ViewToolbar": {
            "title": "$:/core/ui/ControlPanel/Toolbars/ViewToolbar",
            "tags": "$:/tags/ControlPanel/Toolbars",
            "caption": "{{$:/language/ControlPanel/Toolbars/ViewToolbar/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/ViewToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/ViewToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/ViewToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars": {
            "title": "$:/core/ui/ControlPanel/Toolbars",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ControlPanel/Toolbars/Caption}}",
            "text": "{{$:/language/ControlPanel/Toolbars/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Toolbars]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Toolbars/ViewToolbar\" \"$:/state/tabs/controlpanel/toolbars\" \"tc-vertical\">>\n</div>\n"
        },
        "$:/ControlPanel": {
            "title": "$:/ControlPanel",
            "icon": "$:/core/images/options-button",
            "color": "#bbb",
            "text": "<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Info\">>\n</div>\n"
        },
        "$:/core/ui/DefaultSearchResultList": {
            "title": "$:/core/ui/DefaultSearchResultList",
            "tags": "$:/tags/SearchResults",
            "caption": "{{$:/language/Search/DefaultResults/Caption}}",
            "text": "\\define searchResultList()\n//<small>{{$:/language/Search/Matches/Title}}</small>//\n\n<$list filter=\"[!is[system]search:title{$(searchTiddler)$}sort[title]limit[250]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n//<small>{{$:/language/Search/Matches/All}}</small>//\n\n<$list filter=\"[!is[system]search{$(searchTiddler)$}sort[title]limit[250]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n\\end\n<<searchResultList>>\n"
        },
        "$:/core/ui/EditTemplate/body/preview/output": {
            "title": "$:/core/ui/EditTemplate/body/preview/output",
            "tags": "$:/tags/EditPreview",
            "caption": "{{$:/language/EditTemplate/Body/Preview/Type/Output}}",
            "text": "<$set name=\"tv-tiddler-preview\" value=\"yes\">\n\n<$transclude />\n\n</$set>\n"
        },
        "$:/core/ui/EditTemplate/body/editor": {
            "title": "$:/core/ui/EditTemplate/body/editor",
            "text": "<$edit\n\n  field=\"text\"\n  class=\"tc-edit-texteditor\"\n  placeholder={{$:/language/EditTemplate/Body/Placeholder}}\n\n><$set\n\n  name=\"targetTiddler\"\n  value=<<currentTiddler>>\n\n><$list\n\n  filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]]\"\n\n><$reveal\n\n  type=\"nomatch\"\n  state=<<config-visibility-title>>\n  text=\"hide\"\n  class=\"tc-text-editor-toolbar-item-wrapper\"\n\n><$transclude\n\n  tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\"\n  mode=\"inline\"\n\n/></$reveal></$list></$set></$edit>\n"
        },
        "$:/core/ui/EditTemplate/body/toolbar/button": {
            "title": "$:/core/ui/EditTemplate/body/toolbar/button",
            "text": "\\define toolbar-button-icon()\n<$list\n\n  filter=\"[all[current]!has[custom-icon]]\"\n  variable=\"no-custom-icon\"\n\n><$transclude\n\n  tiddler={{!!icon}}\n\n/></$list>\n\\end\n\n\\define toolbar-button-tooltip()\n{{!!description}}<$macrocall $name=\"displayshortcuts\" $output=\"text/plain\" shortcuts={{!!shortcuts}} prefix=\"` - [\" separator=\"] [\" suffix=\"]`\"/>\n\\end\n\n\\define toolbar-button()\n<$list\n\n  filter={{!!condition}}\n  variable=\"list-condition\"\n\n><$wikify\n\n  name=\"tooltip-text\"\n  text=<<toolbar-button-tooltip>>\n  mode=\"inline\"\n  output=\"text\"\n\n><$list\n\n  filter=\"[all[current]!has[dropdown]]\"\n  variable=\"no-dropdown\"\n\n><$button\n\n  class=\"tc-btn-invisible $(buttonClasses)$\"\n  tooltip=<<tooltip-text>>\n\n><span\n\n  data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n  tiddler=<<currentTiddler>>\n  field=\"text\"\n\n/></$button></$list><$list\n\n  filter=\"[all[current]has[dropdown]]\"\n  variable=\"dropdown\"\n\n><$set\n\n  name=\"dropdown-state\"\n  value=<<qualify \"$:/state/EditorToolbarDropdown\">>\n\n><$button\n\n  popup=<<dropdown-state>>\n  class=\"tc-popup-keep tc-btn-invisible $(buttonClasses)$\"\n  selectedClass=\"tc-selected\"\n  tooltip=<<tooltip-text>>\n\n><span\n\n  data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n  tiddler=<<currentTiddler>>\n  field=\"text\"\n\n/></$button><$reveal\n\n  state=<<dropdown-state>>\n  type=\"popup\"\n  position=\"below\"\n  animate=\"yes\"\n  tag=\"span\"\n\n><div\n\n  class=\"tc-drop-down tc-popup-keep\"\n\n><$transclude\n\n  tiddler={{!!dropdown}}\n  mode=\"block\"\n\n/></div></$reveal></$set></$list></$wikify></$list>\n\\end\n\n\\define toolbar-button-outer()\n<$set\n\n  name=\"buttonClasses\"\n  value={{!!button-classes}}\n\n><<toolbar-button>></$set>\n\\end\n\n<<toolbar-button-outer>>"
        },
        "$:/core/ui/EditTemplate/body": {
            "title": "$:/core/ui/EditTemplate/body",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/EditTemplate/Body/\n\\define config-visibility-title()\n$:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$\n\\end\n<$list filter=\"[is[current]has[_canonical_uri]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo External/Hint>>\n\n<a href={{!!_canonical_uri}}><$text text={{!!_canonical_uri}}/></a>\n\n<$edit-text field=\"_canonical_uri\" class=\"tc-edit-fields\"></$edit-text>\n\n</div>\n\n</$list>\n\n<$list filter=\"[is[current]!has[_canonical_uri]]\">\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\">\n\n<div class=\"tc-tiddler-preview\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n<div class=\"tc-tiddler-preview-preview\">\n\n<$transclude tiddler={{$:/state/editpreviewtype}} mode=\"inline\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/preview/output\" mode=\"inline\"/>\n\n</$transclude>\n\n</div>\n\n</div>\n\n</$reveal>\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n"
        },
        "$:/core/ui/EditTemplate/controls": {
            "title": "$:/core/ui/EditTemplate/controls",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define config-title()\n$:/config/EditToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title tc-tiddler-edit-title\">\n<$view field=\"title\"/>\n<span class=\"tc-tiddler-controls tc-titlebar\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$transclude tiddler=<<listItem>>/></$reveal></$list></span>\n<div style=\"clear: both;\"></div>\n</div>\n"
        },
        "$:/core/ui/EditTemplate/fields": {
            "title": "$:/core/ui/EditTemplate/fields",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/EditTemplate/\n\\define config-title()\n$:/config/EditTemplateFields/Visibility/$(currentField)$\n\\end\n\n\\define config-filter()\n[[hide]] -[title{$(config-title)$}]\n\\end\n\n\\define new-field-inner()\n<$reveal type=\"nomatch\" text=\"\" default=<<name>>>\n<$button>\n<$action-sendmessage $message=\"tm-add-field\" $name=<<name>> $value=<<value>>/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldname\"/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldvalue\"/>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" text=\"\" default=<<name>>>\n<$button>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n\\end\n\n\\define new-field()\n<$set name=\"name\" value={{$:/temp/newfieldname}}>\n<$set name=\"value\" value={{$:/temp/newfieldvalue}}>\n<<new-field-inner>>\n</$set>\n</$set>\n\\end\n\n<div class=\"tc-edit-fields\">\n<table class=\"tc-edit-fields\">\n<tbody>\n<$list filter=\"[all[current]fields[]] +[sort[title]]\" variable=\"currentField\">\n<$list filter=<<config-filter>> variable=\"temp\">\n<tr class=\"tc-edit-field\">\n<td class=\"tc-edit-field-name\">\n<$text text=<<currentField>>/>:</td>\n<td class=\"tc-edit-field-value\">\n<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}}/>\n</td>\n<td class=\"tc-edit-field-remove\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>\n<$action-deletefield $field=<<currentField>>/>\n{{$:/core/images/delete-button}}\n</$button>\n</td>\n</tr>\n</$list>\n</$list>\n</tbody>\n</table>\n</div>\n\n<$fieldmangler>\n<div class=\"tc-edit-field-add\">\n<em class=\"tc-edit\">\n<<lingo Fields/Add/Prompt>>\n</em>\n<span class=\"tc-edit-field-add-name\">\n<$edit-text tiddler=\"$:/temp/newfieldname\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}} focusPopup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-edit-texteditor tc-popup-handle\"/>\n</span>\n<$button popup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/field-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"$:/temp/newfieldname\">\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/User>>\n</div>\n<$list filter=\"[!is[shadow]!is[system]fields[]search:title{$:/temp/newfieldname}sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type\"  variable=\"currentField\">\n<$link to=<<currentField>>>\n<<currentField>>\n</$link>\n</$list>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/System>>\n</div>\n<$list filter=\"[fields[]search:title{$:/temp/newfieldname}sort[]] -[!is[shadow]!is[system]fields[]]\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<<currentField>>\n</$link>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n<span class=\"tc-edit-field-add-value\">\n<$edit-text tiddler=\"$:/temp/newfieldvalue\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class=\"tc-edit-texteditor\"/>\n</span>\n<span class=\"tc-edit-field-add-button\">\n<$macrocall $name=\"new-field\"/>\n</span>\n</div>\n</$fieldmangler>\n"
        },
        "$:/core/ui/EditTemplate/shadow": {
            "title": "$:/core/ui/EditTemplate/shadow",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/EditTemplate/Shadow/\n\\define pluginLinkBody()\n<$link to=\"\"\"$(pluginTitle)$\"\"\">\n<$text text=\"\"\"$(pluginTitle)$\"\"\"/>\n</$link>\n\\end\n<$list filter=\"[all[current]get[draft.of]is[shadow]!is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>\n\n<$list filter=\"[all[current]get[draft.of]is[shadow]is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo OverriddenWarning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>"
        },
        "$:/core/ui/EditTemplate/tags": {
            "title": "$:/core/ui/EditTemplate/tags",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/EditTemplate/\n\n\\define tag-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-body-inner(colour,fallbackTarget,colourA,colourB)\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<span style=<<tag-styles>> class=\"tc-tag-label\">\n<$view field=\"title\" format=\"text\" />\n<$button message=\"tm-remove-tag\" param={{!!title}} class=\"tc-btn-invisible tc-remove-tag-button\">&times;</$button>\n</span>\n</$vars>\n\\end\n\n\\define tag-body(colour,palette)\n<$macrocall $name=\"tag-body-inner\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}}/>\n\\end\n\n\\define tag-picker-actions()\n<$action-listops\n\t$tiddler=<<currentTiddler>>\n\t$field=\"tags\"\n\t$subfilter=\"[<tag>] [all[current]tags[]]\"\n/>\n\\end\n\n<div class=\"tc-edit-tags\">\n<$fieldmangler>\n<$list filter=\"[all[current]tags[]sort[title]]\" storyview=\"pop\">\n<$macrocall $name=\"tag-body\" colour={{!!color}} palette={{$:/palette}}/>\n</$list>\n</$fieldmangler>\n<$macrocall $name=\"tag-picker\" actions=<<tag-picker-actions>>/>\n</div>\n"
        },
        "$:/core/ui/EditTemplate/title": {
            "title": "$:/core/ui/EditTemplate/title",
            "tags": "$:/tags/EditTemplate",
            "text": "<$edit-text field=\"draft.title\" class=\"tc-titlebar tc-edit-texteditor\" focus=\"true\"/>\n\n<$vars pattern=\"\"\"[\\|\\[\\]{}]\"\"\" bad-chars=\"\"\"`| [ ] { }`\"\"\">\n\n<$list filter=\"[is[current]regexp:draft.title<pattern>]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/BadCharacterWarning}}\n\n</div>\n\n</$list>\n\n</$vars>\n\n<$reveal state=\"!!draft.title\" type=\"nomatch\" text={{!!draft.of}} tag=\"div\">\n\n<$list filter=\"[{!!draft.title}!is[missing]]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/Exists/Prompt}}\n\n</div>\n\n</$list>\n\n<$list filter=\"[{!!draft.of}!is[missing]]\" variable=\"listItem\">\n\n<$vars fromTitle={{!!draft.of}} toTitle={{!!draft.title}}>\n\n<$checkbox tiddler=\"$:/config/RelinkOnRename\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> {{$:/language/EditTemplate/Title/Relink/Prompt}}</$checkbox>\n\n</$vars>\n\n</$list>\n\n</$reveal>\n\n\n"
        },
        "$:/core/ui/EditTemplate/type": {
            "title": "$:/core/ui/EditTemplate/type",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/EditTemplate/\n<div class=\"tc-type-selector\"><$fieldmangler>\n<em class=\"tc-edit\"><<lingo Type/Prompt>></em> <$edit-text field=\"type\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Type/Placeholder}} focusPopup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-edit-typeeditor tc-popup-handle\"/> <$button popup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Type/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Type/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <$button message=\"tm-remove-field\" param=\"type\" class=\"tc-btn-invisible tc-btn-icon\" tooltip={{$:/language/EditTemplate/Type/Delete/Hint}} aria-label={{$:/language/EditTemplate/Type/Delete/Caption}}>{{$:/core/images/delete-button}}</$button>\n</$fieldmangler></div>\n\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/popup/type-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"!!type\">\n<$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]each[group]sort[group-sort]]'>\n<div class=\"tc-dropdown-item\">\n<$text text={{!!group}}/>\n</div>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]group{!!group}] +[sort[description]]\"><$link to={{!!name}}><$view field=\"description\"/> (<$view field=\"name\"/>)</$link>\n</$list>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>"
        },
        "$:/core/ui/EditTemplate": {
            "title": "$:/core/ui/EditTemplate",
            "text": "\\define actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{$:/temp/NewTagName}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n<$action-sendmessage $message=\"tm-add-field\" $name={{$:/temp/newfieldname}} $value={{$:/temp/newfieldvalue}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldname\"/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldvalue\"/>\n<$action-sendmessage $message=\"tm-save-tiddler\"/>\n\\end\n\\define frame-classes()\ntc-tiddler-frame tc-tiddler-edit-frame $(missingTiddlerClass)$ $(shadowTiddlerClass)$ $(systemTiddlerClass)$\n\\end\n<div class=<<frame-classes>>>\n<$fieldmangler>\n<$set name=\"storyTiddler\" value=<<currentTiddler>>>\n<$keyboard key=\"((cancel-edit-tiddler))\" message=\"tm-cancel-tiddler\">\n<$keyboard key=\"((save-tiddler))\" actions=<<actions>>>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditTemplate]!has[draft.of]]\" variable=\"listItem\">\n<$transclude tiddler=<<listItem>>/>\n</$list>\n</$keyboard>\n</$keyboard>\n</$set>\n</$fieldmangler>\n</div>\n"
        },
        "$:/core/ui/Buttons/cancel": {
            "title": "$:/core/ui/Buttons/cancel",
            "tags": "$:/tags/EditToolbar",
            "caption": "{{$:/core/images/cancel-button}} {{$:/language/Buttons/Cancel/Caption}}",
            "description": "{{$:/language/Buttons/Cancel/Hint}}",
            "text": "<$button message=\"tm-cancel-tiddler\" tooltip={{$:/language/Buttons/Cancel/Hint}} aria-label={{$:/language/Buttons/Cancel/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/cancel-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Cancel/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/delete": {
            "title": "$:/core/ui/Buttons/delete",
            "tags": "$:/tags/EditToolbar $:/tags/ViewToolbar",
            "caption": "{{$:/core/images/delete-button}} {{$:/language/Buttons/Delete/Caption}}",
            "description": "{{$:/language/Buttons/Delete/Hint}}",
            "text": "<$button message=\"tm-delete-tiddler\" tooltip={{$:/language/Buttons/Delete/Hint}} aria-label={{$:/language/Buttons/Delete/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/delete-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Delete/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/save": {
            "title": "$:/core/ui/Buttons/save",
            "tags": "$:/tags/EditToolbar",
            "caption": "{{$:/core/images/done-button}} {{$:/language/Buttons/Save/Caption}}",
            "description": "{{$:/language/Buttons/Save/Hint}}",
            "text": "<$fieldmangler><$button tooltip={{$:/language/Buttons/Save/Hint}} aria-label={{$:/language/Buttons/Save/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-add-tag\" $param={{$:/temp/NewTagName}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n<$action-sendmessage $message=\"tm-add-field\" $name={{$:/temp/newfieldname}} $value={{$:/temp/newfieldvalue}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldname\"/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldvalue\"/>\n<$action-sendmessage $message=\"tm-save-tiddler\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/done-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Save/Caption}}/></span>\n</$list>\n</$button>\n</$fieldmangler>\n"
        },
        "$:/core/ui/EditorToolbar/bold": {
            "title": "$:/core/ui/EditorToolbar/bold",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/bold",
            "caption": "{{$:/language/Buttons/Bold/Caption}}",
            "description": "{{$:/language/Buttons/Bold/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((bold))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"''\"\n\tsuffix=\"''\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/clear-dropdown": {
            "title": "$:/core/ui/EditorToolbar/clear-dropdown",
            "text": "''{{$:/language/Buttons/Clear/Hint}}''\n\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"clear\"\n\tcolour=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n\n</div>\n"
        },
        "$:/core/ui/EditorToolbar/clear": {
            "title": "$:/core/ui/EditorToolbar/clear",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/erase",
            "caption": "{{$:/language/Buttons/Clear/Caption}}",
            "description": "{{$:/language/Buttons/Clear/Hint}}",
            "condition": "[<targetTiddler>is[image]]",
            "dropdown": "$:/core/ui/EditorToolbar/clear-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/editor-height-dropdown": {
            "title": "$:/core/ui/EditorToolbar/editor-height-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/EditorHeight/\n''<<lingo Hint>>''\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"auto\"> {{$:/core/images/auto-height}} <<lingo Caption/Auto>></$radio>\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"fixed\"> {{$:/core/images/fixed-height}} <<lingo Caption/Fixed>> <$edit-text tag=\"input\" tiddler=\"$:/config/TextEditor/EditorHeight/Height\" default=\"100px\"/></$radio>\n"
        },
        "$:/core/ui/EditorToolbar/editor-height": {
            "title": "$:/core/ui/EditorToolbar/editor-height",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/fixed-height",
            "custom-icon": "yes",
            "caption": "{{$:/language/Buttons/EditorHeight/Caption}}",
            "description": "{{$:/language/Buttons/EditorHeight/Hint}}",
            "condition": "[<targetTiddler>!is[image]]",
            "dropdown": "$:/core/ui/EditorToolbar/editor-height-dropdown",
            "text": "<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n{{$:/core/images/fixed-height}}\n</$reveal>\n<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n{{$:/core/images/auto-height}}\n</$reveal>\n"
        },
        "$:/core/ui/EditorToolbar/excise-dropdown": {
            "title": "$:/core/ui/EditorToolbar/excise-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/Excise/\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<<lingo Caption/NewTitle>> <$edit-text tag=\"input\" tiddler=\"$config-title$/new-title\" default=\"\" focus=\"true\"/>\n\n<$set name=\"new-title\" value={{$config-title$/new-title}}>\n<$list filter=\"\"\"[<new-title>is[tiddler]]\"\"\">\n<div class=\"tc-error\">\n<<lingo Caption/TiddlerExists>>\n</div>\n</$list>\n</$set>\n\n<$checkbox tiddler=\"\"\"$config-title$/tagnew\"\"\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"false\"> <<lingo Caption/Tag>></$checkbox>\n\n<<lingo Caption/Replace>> <$select tiddler=\"\"\"$config-title$/type\"\"\" default=\"transclude\">\n<option value=\"link\"><<lingo Caption/Replace/Link>></option>\n<option value=\"transclude\"><<lingo Caption/Replace/Transclusion>></option>\n<option value=\"macro\"><<lingo Caption/Replace/Macro>></option>\n</$select>\n\n<$reveal state=\"\"\"$config-title$/type\"\"\" type=\"match\" text=\"macro\">\n<<lingo Caption/MacroName>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/macro-title\"\"\" default=\"translink\"/>\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"excise\"\n\ttitle={{$config-title$/new-title}}\n\ttype={{$config-title$/type}}\n\tmacro={{$config-title$/macro-title}}\n\ttagnew={{$config-title$/tagnew}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"$config-title$/new-title\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Excise>>\n</$button>\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Excise/\">>/>\n"
        },
        "$:/core/ui/EditorToolbar/excise": {
            "title": "$:/core/ui/EditorToolbar/excise",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/excise",
            "caption": "{{$:/language/Buttons/Excise/Caption}}",
            "description": "{{$:/language/Buttons/Excise/Hint}}",
            "condition": "[<targetTiddler>!is[image]]",
            "shortcuts": "((excise))",
            "dropdown": "$:/core/ui/EditorToolbar/excise-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/heading-1": {
            "title": "$:/core/ui/EditorToolbar/heading-1",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-1",
            "caption": "{{$:/language/Buttons/Heading1/Caption}}",
            "description": "{{$:/language/Buttons/Heading1/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "button-classes": "tc-text-editor-toolbar-item-start-group",
            "shortcuts": "((heading-1))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-2": {
            "title": "$:/core/ui/EditorToolbar/heading-2",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-2",
            "caption": "{{$:/language/Buttons/Heading2/Caption}}",
            "description": "{{$:/language/Buttons/Heading2/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-2))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"2\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-3": {
            "title": "$:/core/ui/EditorToolbar/heading-3",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-3",
            "caption": "{{$:/language/Buttons/Heading3/Caption}}",
            "description": "{{$:/language/Buttons/Heading3/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-3))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"3\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-4": {
            "title": "$:/core/ui/EditorToolbar/heading-4",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-4",
            "caption": "{{$:/language/Buttons/Heading4/Caption}}",
            "description": "{{$:/language/Buttons/Heading4/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-4))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"4\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-5": {
            "title": "$:/core/ui/EditorToolbar/heading-5",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-5",
            "caption": "{{$:/language/Buttons/Heading5/Caption}}",
            "description": "{{$:/language/Buttons/Heading5/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-5))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"5\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-6": {
            "title": "$:/core/ui/EditorToolbar/heading-6",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-6",
            "caption": "{{$:/language/Buttons/Heading6/Caption}}",
            "description": "{{$:/language/Buttons/Heading6/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-6))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"6\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/italic": {
            "title": "$:/core/ui/EditorToolbar/italic",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/italic",
            "caption": "{{$:/language/Buttons/Italic/Caption}}",
            "description": "{{$:/language/Buttons/Italic/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((italic))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"//\"\n\tsuffix=\"//\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/line-width-dropdown": {
            "title": "$:/core/ui/EditorToolbar/line-width-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/LineWidth/\n\n\\define toolbar-line-width-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(line-width)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/LineWidth\"\n\t$value=\"$(line-width)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; margin: 4px calc(80px - $(line-width)$); background-color: #000; width: calc(100px + $(line-width)$ * 2); height: $(line-width)$; border-radius: 120px; vertical-align: middle;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(line-width)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/LineWidth\" type=\"match\" text=\"\"\"$(line-width)$\"\"\" tag=\"span\">\n\n<$entity entity=\"&nbsp;\"/>\n\n<$entity entity=\"&#x2713;\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/LineWidths}} variable=\"line-width\">\n\n<<toolbar-line-width-inner>>\n\n</$list>\n"
        },
        "$:/core/ui/EditorToolbar/line-width": {
            "title": "$:/core/ui/EditorToolbar/line-width",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/line-width",
            "caption": "{{$:/language/Buttons/LineWidth/Caption}}",
            "description": "{{$:/language/Buttons/LineWidth/Hint}}",
            "condition": "[<targetTiddler>is[image]]",
            "dropdown": "$:/core/ui/EditorToolbar/line-width-dropdown",
            "text": "<$text text={{$:/config/BitmapEditor/LineWidth}}/>"
        },
        "$:/core/ui/EditorToolbar/link-dropdown": {
            "title": "$:/core/ui/EditorToolbar/link-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/Link/\n\n\\define link-actions()\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"make-link\"\n\ttext={{$(linkTiddler)$}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<searchTiddler>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<linkTiddler>>\n/>\n\\end\n\n\\define external-link()\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\">\n<$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"make-link\" text={{$(searchTiddler)$}}\n/>\n{{$:/core/images/chevron-right}}\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<searchTiddler>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<linkTiddler>>\n/>\n</$button>\n\\end\n\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<$vars searchTiddler=\"\"\"$config-title$/search\"\"\" linkTiddler=\"\"\"$config-title$/link\"\"\" linktext=\"\" >\n\n<$edit-text tiddler=<<searchTiddler>> type=\"search\" tag=\"input\" focus=\"true\" placeholder={{$:/language/Search/Search}} default=\"\"/>\n<$reveal tag=\"span\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n<<external-link>>\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\">\n<$action-setfield $tiddler=<<searchTiddler>> text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n\n<$reveal tag=\"div\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n\n<$linkcatcher actions=<<link-actions>> to=<<linkTiddler>>>\n\n{{$:/core/ui/SearchResults}}\n\n</$linkcatcher>\n\n</$reveal>\n\n</$vars>\n\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Link/\">>/>"
        },
        "$:/core/ui/EditorToolbar/link": {
            "title": "$:/core/ui/EditorToolbar/link",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/link",
            "caption": "{{$:/language/Buttons/Link/Caption}}",
            "description": "{{$:/language/Buttons/Link/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "button-classes": "tc-text-editor-toolbar-item-start-group",
            "shortcuts": "((link))",
            "dropdown": "$:/core/ui/EditorToolbar/link-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/list-bullet": {
            "title": "$:/core/ui/EditorToolbar/list-bullet",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/list-bullet",
            "caption": "{{$:/language/Buttons/ListBullet/Caption}}",
            "description": "{{$:/language/Buttons/ListBullet/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((list-bullet))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"*\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/list-number": {
            "title": "$:/core/ui/EditorToolbar/list-number",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/list-number",
            "caption": "{{$:/language/Buttons/ListNumber/Caption}}",
            "description": "{{$:/language/Buttons/ListNumber/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((list-number))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/mono-block": {
            "title": "$:/core/ui/EditorToolbar/mono-block",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/mono-block",
            "caption": "{{$:/language/Buttons/MonoBlock/Caption}}",
            "description": "{{$:/language/Buttons/MonoBlock/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "button-classes": "tc-text-editor-toolbar-item-start-group",
            "shortcuts": "((mono-block))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n```\"\n\tsuffix=\"```\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/mono-line": {
            "title": "$:/core/ui/EditorToolbar/mono-line",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/mono-line",
            "caption": "{{$:/language/Buttons/MonoLine/Caption}}",
            "description": "{{$:/language/Buttons/MonoLine/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((mono-line))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"`\"\n\tsuffix=\"`\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/more-dropdown": {
            "title": "$:/core/ui/EditorToolbar/more-dropdown",
            "text": "\\define config-title()\n$:/config/EditorToolbarButtons/Visibility/$(toolbarItem)$\n\\end\n\n\\define conditional-button()\n<$list filter={{$(toolbarItem)$!!condition}} variable=\"condition\">\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\" mode=\"inline\"/> <$transclude tiddler=<<toolbarItem>> field=\"description\"/>\n</$list>\n\\end\n\n<div class=\"tc-text-editor-toolbar-more\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]] -[[$:/core/ui/EditorToolbar/more]]\">\n<$reveal type=\"match\" state=<<config-visibility-title>> text=\"hide\" tag=\"div\">\n<<conditional-button>>\n</$reveal>\n</$list>\n</div>\n"
        },
        "$:/core/ui/EditorToolbar/more": {
            "title": "$:/core/ui/EditorToolbar/more",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/down-arrow",
            "caption": "{{$:/language/Buttons/More/Caption}}",
            "description": "{{$:/language/Buttons/More/Hint}}",
            "condition": "[<targetTiddler>]",
            "dropdown": "$:/core/ui/EditorToolbar/more-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/opacity-dropdown": {
            "title": "$:/core/ui/EditorToolbar/opacity-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/Opacity/\n\n\\define toolbar-opacity-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(opacity)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Opacity\"\n\t$value=\"$(opacity)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(current-paint-colour)$; opacity: $(opacity)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(opacity)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/Opacity\" type=\"match\" text=\"\"\"$(opacity)$\"\"\" tag=\"span\">\n\n<$entity entity=\"&nbsp;\"/>\n\n<$entity entity=\"&#x2713;\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n\\define toolbar-opacity()\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/Opacities}} variable=\"opacity\">\n\n<<toolbar-opacity-inner>>\n\n</$list>\n\\end\n\n<$set name=\"current-paint-colour\" value={{$:/config/BitmapEditor/Colour}}>\n\n<$set name=\"current-opacity\" value={{$:/config/BitmapEditor/Opacity}}>\n\n<<toolbar-opacity>>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/EditorToolbar/opacity": {
            "title": "$:/core/ui/EditorToolbar/opacity",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/opacity",
            "caption": "{{$:/language/Buttons/Opacity/Caption}}",
            "description": "{{$:/language/Buttons/Opacity/Hint}}",
            "condition": "[<targetTiddler>is[image]]",
            "dropdown": "$:/core/ui/EditorToolbar/opacity-dropdown",
            "text": "<$text text={{$:/config/BitmapEditor/Opacity}}/>\n"
        },
        "$:/core/ui/EditorToolbar/paint-dropdown": {
            "title": "$:/core/ui/EditorToolbar/paint-dropdown",
            "text": "''{{$:/language/Buttons/Paint/Hint}}''\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Colour\"\n\t$value=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
        },
        "$:/core/ui/EditorToolbar/paint": {
            "title": "$:/core/ui/EditorToolbar/paint",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/paint",
            "caption": "{{$:/language/Buttons/Paint/Caption}}",
            "description": "{{$:/language/Buttons/Paint/Hint}}",
            "condition": "[<targetTiddler>is[image]]",
            "dropdown": "$:/core/ui/EditorToolbar/paint-dropdown",
            "text": "\\define toolbar-paint()\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(colour-picker-value)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\\end\n<$set name=\"colour-picker-value\" value={{$:/config/BitmapEditor/Colour}}>\n<<toolbar-paint>>\n</$set>\n"
        },
        "$:/core/ui/EditorToolbar/picture-dropdown": {
            "title": "$:/core/ui/EditorToolbar/picture-dropdown",
            "text": "\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n''{{$:/language/Buttons/Picture/Hint}}''\n\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext=<<replacement-text>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
        },
        "$:/core/ui/EditorToolbar/picture": {
            "title": "$:/core/ui/EditorToolbar/picture",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/picture",
            "caption": "{{$:/language/Buttons/Picture/Caption}}",
            "description": "{{$:/language/Buttons/Picture/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((picture))",
            "dropdown": "$:/core/ui/EditorToolbar/picture-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/preview-type-dropdown": {
            "title": "$:/core/ui/EditorToolbar/preview-type-dropdown",
            "text": "\\define preview-type-button()\n<$button tag=\"a\">\n\n<$action-setfield $tiddler=\"$:/state/editpreviewtype\" $value=\"$(previewType)$\"/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<previewType>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<previewType>> field=\"title\" mode=\"inline\"/>\n\n</$transclude> \n\n<$reveal tag=\"span\" state=\"$:/state/editpreviewtype\" type=\"match\" text=<<previewType>> default=\"$:/core/ui/EditTemplate/body/preview/output\">\n\n<$entity entity=\"&nbsp;\"/>\n\n<$entity entity=\"&#x2713;\"/>\n\n</$reveal>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]]\" variable=\"previewType\">\n\n<<preview-type-button>>\n\n</$list>\n"
        },
        "$:/core/ui/EditorToolbar/preview-type": {
            "title": "$:/core/ui/EditorToolbar/preview-type",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/chevron-down",
            "caption": "{{$:/language/Buttons/PreviewType/Caption}}",
            "description": "{{$:/language/Buttons/PreviewType/Hint}}",
            "condition": "[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]butfirst[]limit[1]]",
            "button-classes": "tc-text-editor-toolbar-item-adjunct",
            "dropdown": "$:/core/ui/EditorToolbar/preview-type-dropdown"
        },
        "$:/core/ui/EditorToolbar/preview": {
            "title": "$:/core/ui/EditorToolbar/preview",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/preview-open",
            "custom-icon": "yes",
            "caption": "{{$:/language/Buttons/Preview/Caption}}",
            "description": "{{$:/language/Buttons/Preview/Hint}}",
            "condition": "[<targetTiddler>]",
            "button-classes": "tc-text-editor-toolbar-item-start-group",
            "shortcuts": "((preview))",
            "text": "<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-open}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"no\"/>\n</$reveal>\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-closed}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"yes\"/>\n</$reveal>\n"
        },
        "$:/core/ui/EditorToolbar/quote": {
            "title": "$:/core/ui/EditorToolbar/quote",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/quote",
            "caption": "{{$:/language/Buttons/Quote/Caption}}",
            "description": "{{$:/language/Buttons/Quote/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((quote))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n<<<\"\n\tsuffix=\"<<<\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/size-dropdown": {
            "title": "$:/core/ui/EditorToolbar/size-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/Size/\n\n\\define toolbar-button-size-preset(config-title)\n<$set name=\"width\" filter=\"$(sizePair)$ +[first[]]\">\n\n<$set name=\"height\" filter=\"$(sizePair)$ +[last[]]\">\n\n<$button tag=\"a\">\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n\t$value=<<width>>\n/>\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n\t$value=<<height>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/presets-popup\"\"\"\n/>\n\n<$text text=<<width>>/> &times; <$text text=<<height>>/>\n\n</$button>\n\n</$set>\n\n</$set>\n\\end\n\n\\define toolbar-button-size(config-title)\n''{{$:/language/Buttons/Size/Hint}}''\n\n<<lingo Caption/Width>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-width\"\"\" default=<<tv-bitmap-editor-width>> focus=\"true\" size=\"8\"/> <<lingo Caption/Height>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-height\"\"\" default=<<tv-bitmap-editor-height>> size=\"8\"/> <$button popup=\"\"\"$config-title$/presets-popup\"\"\" class=\"tc-btn-invisible tc-popup-keep\" style=\"width: auto; display: inline-block; background-colour: inherit;\" selectedClass=\"tc-selected\">\n{{$:/core/images/down-arrow}}\n</$button>\n\n<$reveal tag=\"span\" state=\"\"\"$config-title$/presets-popup\"\"\" type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down tc-popup-keep\">\n\n<$list filter={{$:/config/BitmapEditor/ImageSizes}} variable=\"sizePair\">\n\n<$macrocall $name=\"toolbar-button-size-preset\" config-title=\"$config-title$\"/>\n\n</$list>\n\n</div>\n\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"resize\"\n\twidth={{$config-title$/new-width}}\n\theight={{$config-title$/new-height}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Resize>>\n</$button>\n\\end\n\n<$macrocall $name=\"toolbar-button-size\" config-title=<<qualify \"$:/state/Size/\">>/>\n"
        },
        "$:/core/ui/EditorToolbar/size": {
            "title": "$:/core/ui/EditorToolbar/size",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/size",
            "caption": "{{$:/language/Buttons/Size/Caption}}",
            "description": "{{$:/language/Buttons/Size/Hint}}",
            "condition": "[<targetTiddler>is[image]]",
            "dropdown": "$:/core/ui/EditorToolbar/size-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/stamp-dropdown": {
            "title": "$:/core/ui/EditorToolbar/stamp-dropdown",
            "text": "\\define toolbar-button-stamp-inner()\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext={{$(snippetTitle)$}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$view tiddler=<<snippetTitle>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<snippetTitle>> field=\"title\" mode=\"inline\"/>\n\n</$view>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TextEditor/Snippet]!has[draft.of]sort[caption]]\" variable=\"snippetTitle\">\n\n<<toolbar-button-stamp-inner>>\n\n</$list>\n\n----\n\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-new-tiddler\"\n\ttags=\"$:/tags/TextEditor/Snippet\"\n\tcaption={{$:/language/Buttons/Stamp/New/Title}}\n\ttext={{$:/language/Buttons/Stamp/New/Text}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<em>\n\n<$text text={{$:/language/Buttons/Stamp/Caption/New}}/>\n\n</em>\n\n</$button>\n"
        },
        "$:/core/ui/EditorToolbar/stamp": {
            "title": "$:/core/ui/EditorToolbar/stamp",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/stamp",
            "caption": "{{$:/language/Buttons/Stamp/Caption}}",
            "description": "{{$:/language/Buttons/Stamp/Hint}}",
            "condition": "[<targetTiddler>!is[image]]",
            "shortcuts": "((stamp))",
            "dropdown": "$:/core/ui/EditorToolbar/stamp-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/strikethrough": {
            "title": "$:/core/ui/EditorToolbar/strikethrough",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/strikethrough",
            "caption": "{{$:/language/Buttons/Strikethrough/Caption}}",
            "description": "{{$:/language/Buttons/Strikethrough/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((strikethrough))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"~~\"\n\tsuffix=\"~~\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/subscript": {
            "title": "$:/core/ui/EditorToolbar/subscript",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/subscript",
            "caption": "{{$:/language/Buttons/Subscript/Caption}}",
            "description": "{{$:/language/Buttons/Subscript/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((subscript))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\",,\"\n\tsuffix=\",,\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/superscript": {
            "title": "$:/core/ui/EditorToolbar/superscript",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/superscript",
            "caption": "{{$:/language/Buttons/Superscript/Caption}}",
            "description": "{{$:/language/Buttons/Superscript/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((superscript))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"^^\"\n\tsuffix=\"^^\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/underline": {
            "title": "$:/core/ui/EditorToolbar/underline",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/underline",
            "caption": "{{$:/language/Buttons/Underline/Caption}}",
            "description": "{{$:/language/Buttons/Underline/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((underline))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"__\"\n\tsuffix=\"__\"\n/>\n"
        },
        "$:/core/Filters/AllTags": {
            "title": "$:/core/Filters/AllTags",
            "tags": "$:/tags/Filter",
            "filter": "[tags[]!is[system]sort[title]]",
            "description": "{{$:/language/Filters/AllTags}}",
            "text": ""
        },
        "$:/core/Filters/AllTiddlers": {
            "title": "$:/core/Filters/AllTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[!is[system]sort[title]]",
            "description": "{{$:/language/Filters/AllTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/Drafts": {
            "title": "$:/core/Filters/Drafts",
            "tags": "$:/tags/Filter",
            "filter": "[has[draft.of]sort[title]]",
            "description": "{{$:/language/Filters/Drafts}}",
            "text": ""
        },
        "$:/core/Filters/Missing": {
            "title": "$:/core/Filters/Missing",
            "tags": "$:/tags/Filter",
            "filter": "[all[missing]sort[title]]",
            "description": "{{$:/language/Filters/Missing}}",
            "text": ""
        },
        "$:/core/Filters/Orphans": {
            "title": "$:/core/Filters/Orphans",
            "tags": "$:/tags/Filter",
            "filter": "[all[orphans]sort[title]]",
            "description": "{{$:/language/Filters/Orphans}}",
            "text": ""
        },
        "$:/core/Filters/OverriddenShadowTiddlers": {
            "title": "$:/core/Filters/OverriddenShadowTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[is[shadow]]",
            "description": "{{$:/language/Filters/OverriddenShadowTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/RecentSystemTiddlers": {
            "title": "$:/core/Filters/RecentSystemTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[has[modified]!sort[modified]limit[50]]",
            "description": "{{$:/language/Filters/RecentSystemTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/RecentTiddlers": {
            "title": "$:/core/Filters/RecentTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[!is[system]has[modified]!sort[modified]limit[50]]",
            "description": "{{$:/language/Filters/RecentTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/ShadowTiddlers": {
            "title": "$:/core/Filters/ShadowTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[all[shadows]sort[title]]",
            "description": "{{$:/language/Filters/ShadowTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/StoryList": {
            "title": "$:/core/Filters/StoryList",
            "tags": "$:/tags/Filter",
            "filter": "[list[$:/StoryList]] -$:/AdvancedSearch",
            "description": "{{$:/language/Filters/StoryList}}",
            "text": ""
        },
        "$:/core/Filters/SystemTags": {
            "title": "$:/core/Filters/SystemTags",
            "tags": "$:/tags/Filter",
            "filter": "[all[shadows+tiddlers]tags[]is[system]sort[title]]",
            "description": "{{$:/language/Filters/SystemTags}}",
            "text": ""
        },
        "$:/core/Filters/SystemTiddlers": {
            "title": "$:/core/Filters/SystemTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[is[system]sort[title]]",
            "description": "{{$:/language/Filters/SystemTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/TypedTiddlers": {
            "title": "$:/core/Filters/TypedTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[!is[system]has[type]each[type]sort[type]] -[type[text/vnd.tiddlywiki]]",
            "description": "{{$:/language/Filters/TypedTiddlers}}",
            "text": ""
        },
        "$:/core/ui/ImportListing": {
            "title": "$:/core/ui/ImportListing",
            "text": "\\define lingo-base() $:/language/Import/\n\n\\define messageField()\nmessage-$(payloadTiddler)$\n\\end\n\n\\define selectionField()\nselection-$(payloadTiddler)$\n\\end\n\n\\define previewPopupState()\n$(currentTiddler)$!!popup-$(payloadTiddler)$\n\\end\n\n\\define select-all-actions()\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<$action-setfield $field={{{ [<payloadTiddler>addprefix[selection-]] }}} $value={{$:/state/import/select-all}}/>\n</$list>\n\\end\n\n<table>\n<tbody>\n<tr>\n<th>\n<$checkbox tiddler=\"$:/state/import/select-all\" field=\"text\" checked=\"checked\" unchecked=\"unchecked\" default=\"checked\" actions=<<select-all-actions>>>\n<<lingo Listing/Select/Caption>>\n</$checkbox>\n</th>\n<th>\n<<lingo Listing/Title/Caption>>\n</th>\n<th>\n<<lingo Listing/Status/Caption>>\n</th>\n</tr>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<tr>\n<td>\n<$checkbox field=<<selectionField>> checked=\"checked\" unchecked=\"unchecked\" default=\"checked\"/>\n</td>\n<td>\n<$reveal type=\"nomatch\" state=<<previewPopupState>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<previewPopupState>> setTo=\"yes\">\n{{$:/core/images/right-arrow}}&nbsp;<$text text=<<payloadTiddler>>/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<previewPopupState>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<previewPopupState>> setTo=\"no\">\n{{$:/core/images/down-arrow}}&nbsp;<$text text=<<payloadTiddler>>/>\n</$button>\n</$reveal>\n</td>\n<td>\n<$view field=<<messageField>>/>\n</td>\n</tr>\n<tr>\n<td colspan=\"3\">\n<$reveal type=\"match\" text=\"yes\" state=<<previewPopupState>>>\n<$transclude subtiddler=<<payloadTiddler>> mode=\"block\"/>\n</$reveal>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/ListItemTemplate": {
            "title": "$:/core/ui/ListItemTemplate",
            "text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</div>"
        },
        "$:/Manager/ItemMain/Fields": {
            "title": "$:/Manager/ItemMain/Fields",
            "tags": "$:/tags/Manager/ItemMain",
            "caption": "{{$:/language/Manager/Item/Fields}}",
            "text": "<table>\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
        },
        "$:/Manager/ItemMain/RawText": {
            "title": "$:/Manager/ItemMain/RawText",
            "tags": "$:/tags/Manager/ItemMain",
            "caption": "{{$:/language/Manager/Item/RawText}}",
            "text": "<pre><code><$view/></code></pre>\n"
        },
        "$:/Manager/ItemMain/WikifiedText": {
            "title": "$:/Manager/ItemMain/WikifiedText",
            "tags": "$:/tags/Manager/ItemMain",
            "caption": "{{$:/language/Manager/Item/WikifiedText}}",
            "text": "<$transclude mode=\"block\"/>\n"
        },
        "$:/Manager/ItemSidebar/Colour": {
            "title": "$:/Manager/ItemSidebar/Colour",
            "tags": "$:/tags/Manager/ItemSidebar",
            "caption": "{{$:/language/Manager/Item/Colour}}",
            "text": "\\define swatch-styles()\nheight: 1em;\nbackground-color: $(colour)$\n\\end\n\n<$vars colour={{!!color}}>\n<p style=<<swatch-styles>>/>\n</$vars>\n<p>\n<$edit-text field=\"color\" tag=\"input\" type=\"color\"/> / <$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/>\n</p>\n"
        },
        "$:/Manager/ItemSidebar/Icon": {
            "title": "$:/Manager/ItemSidebar/Icon",
            "tags": "$:/tags/Manager/ItemSidebar",
            "caption": "{{$:/language/Manager/Item/Icon}}",
            "text": "<p>\n<div class=\"tc-manager-icon-editor\">\n<$button popup=<<qualify \"$:/state/popup/image-picker\">> class=\"tc-btn-invisible\">\n<$transclude tiddler={{!!icon}}>\n{{$:/language/Manager/Item/Icon/None}}\n</$transclude>\n</$button>\n<div class=\"tc-block-dropdown-wrapper\" style=\"position: static;\">\n<$reveal state=<<qualify \"$:/state/popup/image-picker\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-popup\">\n<div class=\"tc-block-dropdown tc-popup-keep\" style=\"width: 80%; left: 10%; right: 10%; padding: 0.5em;\">\n<$macrocall $name=\"image-picker-include-tagged-images\" actions=\"\"\"\n<$action-setfield $field=\"icon\" $value=<<imageTitle>>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/image-picker\">>/>\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n</div>\n</p>\n"
        },
        "$:/Manager/ItemSidebar/Tags": {
            "title": "$:/Manager/ItemSidebar/Tags",
            "tags": "$:/tags/Manager/ItemSidebar",
            "caption": "{{$:/language/Manager/Item/Tags}}",
            "text": "\\define tag-checkbox-actions()\n<$action-listops\n\t$tiddler=\"$:/config/Manager/RecentTags\"\n\t$subfilter=\"[<tag>] [list[$:/config/Manager/RecentTags]] +[limit[12]]\"\n/>\n\\end\n\n\\define tag-picker-actions()\n<<tag-checkbox-actions>>\n<$action-listops\n\t$tiddler=<<currentTiddler>>\n\t$field=\"tags\"\n\t$subfilter=\"[<tag>] [all[current]tags[]]\"\n/>\n\\end\n\n<p>\n<$list filter=\"[is[current]tags[]] [list[$:/config/Manager/RecentTags]] +[sort[title]] \" variable=\"tag\">\n<div>\n<$checkbox tiddler=<<currentTiddler>> tag=<<tag>> actions=<<tag-checkbox-actions>>>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$checkbox>\n</div>\n</$list>\n</p>\n<p>\n<$macrocall $name=\"tag-picker\" actions=<<tag-picker-actions>>/>\n</p>\n"
        },
        "$:/Manager/ItemSidebar/Tools": {
            "title": "$:/Manager/ItemSidebar/Tools",
            "tags": "$:/tags/Manager/ItemSidebar",
            "caption": "{{$:/language/Manager/Item/Tools}}",
            "text": "<p>\n<$button to=<<currentTiddler>>>{{$:/core/images/link}} open</$button>\n</p>\n<p>\n<$button message=\"tm-edit-tiddler\" param=<<currentTiddler>>>{{$:/core/images/edit-button}} edit</$button>\n</p>\n"
        },
        "$:/Manager": {
            "title": "$:/Manager",
            "icon": "$:/core/images/list",
            "color": "#bbb",
            "text": "\\define lingo-base() $:/language/Manager/\n\n\\define list-item-content-item()\n<div class=\"tc-manager-list-item-content-item\">\n\t<$vars state-title=\"\"\"$:/state/popup/manager/item/$(listItem)$\"\"\">\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"hide\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/down-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"nomatch\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"show\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/right-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\" class=\"tc-manager-list-item-content-item-body\">\n\t\t\t<$transclude tiddler=<<listItem>>/>\n\t\t</$reveal>\n\t</$vars>\n</div>\n\\end\n\n<div class=\"tc-manager-wrapper\">\n\t<div class=\"tc-manager-controls\">\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Show/Prompt>> <$select tiddler=\"$:/config/Manager/Show\" default=\"tiddlers\">\n\t\t\t\t<option value=\"tiddlers\"><<lingo Controls/Show/Option/Tiddlers>></option>\n\t\t\t\t<option value=\"tags\"><<lingo Controls/Show/Option/Tags>></option>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Search/Prompt>> <$edit-text tiddler=\"$:/config/Manager/Filter\" tag=\"input\" default=\"\" placeholder={{$:/language/Manager/Controls/Search/Placeholder}}/>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/FilterByTag/Prompt>> <$select tiddler=\"$:/config/Manager/Tag\" default=\"\">\n\t\t\t\t<option value=\"\"><<lingo Controls/FilterByTag/None>></option>\n\t\t\t\t<$list filter=\"[!is{$:/config/Manager/System}tags[]!is[system]sort[title]]\" variable=\"tag\">\n\t\t\t\t\t<option value=<<tag>>><$text text=<<tag>>/></option>\n\t\t\t\t</$list>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Sort/Prompt>> <$select tiddler=\"$:/config/Manager/Sort\" default=\"title\">\n\t\t\t\t<optgroup label=\"Common\">\n\t\t\t\t\t<$list filter=\"title modified modifier created creator created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t\t<optgroup label=\"All\">\n\t\t\t\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}fields[]sort[title]] -title -modified -modifier -created -creator -created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t</$select>\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/Order\" field=\"text\" checked=\"reverse\" unchecked=\"forward\" default=\"forward\">\n\t\t\t\t<<lingo Controls/Order/Prompt>>\n\t\t\t</$checkbox>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/System\" field=\"text\" checked=\"\" unchecked=\"system\" default=\"system\">\n\t\t\t\t{{$:/language/SystemTiddlers/Include/Prompt}}\n\t\t\t</$checkbox>\n\t\t</div>\n\t</div>\n\t<div class=\"tc-manager-list\">\n\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}search{$:/config/Manager/Filter}tag:strict{$:/config/Manager/Tag}sort{$:/config/Manager/Sort}order{$:/config/Manager/Order}]\">\n\t\t\t<$vars transclusion=<<currentTiddler>>>\n\t\t\t\t<div style=\"tc-manager-list-item\">\n\t\t\t\t\t<$button popup=<<qualify \"$:/state/manager/popup\">> class=\"tc-btn-invisible tc-manager-list-item-heading\" selectedClass=\"tc-manager-list-item-heading-selected\">\n\t\t\t\t\t\t<$text text=<<currentTiddler>>/>\n\t\t\t\t\t</$button>\n\t\t\t\t\t<$reveal state=<<qualify \"$:/state/manager/popup\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-manager-list-item-content tc-popup-handle\">\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-tiddler\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemMain]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-sidebar\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemSidebar]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</$reveal>\n\t\t\t\t</div>\n\t\t\t</$vars>\n\t\t</$list>\n\t</div>\n</div>\n"
        },
        "$:/core/ui/MissingTemplate": {
            "title": "$:/core/ui/MissingTemplate",
            "text": "<div class=\"tc-tiddler-missing\">\n<$button popup=<<qualify \"$:/state/popup/missing\">> class=\"tc-btn-invisible tc-missing-tiddler-label\">\n<$view field=\"title\" format=\"text\" />\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/missing\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n<hr>\n<$list filter=\"[all[current]backlinks[]sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n</div>\n"
        },
        "$:/core/ui/MoreSideBar/All": {
            "title": "$:/core/ui/MoreSideBar/All",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/All/Caption}}",
            "text": "<$list filter={{$:/core/Filters/AllTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Drafts": {
            "title": "$:/core/ui/MoreSideBar/Drafts",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Drafts/Caption}}",
            "text": "<$list filter={{$:/core/Filters/Drafts!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Missing": {
            "title": "$:/core/ui/MoreSideBar/Missing",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Missing/Caption}}",
            "text": "<$list filter={{$:/core/Filters/Missing!!filter}} template=\"$:/core/ui/MissingTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Orphans": {
            "title": "$:/core/ui/MoreSideBar/Orphans",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Orphans/Caption}}",
            "text": "<$list filter={{$:/core/Filters/Orphans!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Plugins": {
            "title": "$:/core/ui/MoreSideBar/Plugins",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
            "text": "\n{{$:/language/ControlPanel/Plugins/Installed/Hint}}\n\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar/Plugins]!has[draft.of]]\" \"$:/core/ui/MoreSideBar/Plugins/Plugins\">>\n"
        },
        "$:/core/ui/MoreSideBar/Recent": {
            "title": "$:/core/ui/MoreSideBar/Recent",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Recent/Caption}}",
            "text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
        },
        "$:/core/ui/MoreSideBar/Shadows": {
            "title": "$:/core/ui/MoreSideBar/Shadows",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Shadows/Caption}}",
            "text": "<$list filter={{$:/core/Filters/ShadowTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/System": {
            "title": "$:/core/ui/MoreSideBar/System",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/System/Caption}}",
            "text": "<$list filter={{$:/core/Filters/SystemTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Tags": {
            "title": "$:/core/ui/MoreSideBar/Tags",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Tags/Caption}}",
            "text": "<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n{{$:/core/ui/Buttons/tag-manager}}\n\n</$set>\n\n</$set>\n\n</$set>\n\n<$list filter={{$:/core/Filters/AllTags!!filter}}>\n\n<$transclude tiddler=\"$:/core/ui/TagTemplate\"/>\n\n</$list>\n\n<hr class=\"tc-untagged-separator\">\n\n{{$:/core/ui/UntaggedTemplate}}\n"
        },
        "$:/core/ui/MoreSideBar/Types": {
            "title": "$:/core/ui/MoreSideBar/Types",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Types/Caption}}",
            "text": "<$list filter={{$:/core/Filters/TypedTiddlers!!filter}}>\n<div class=\"tc-menu-list-item\">\n<$view field=\"type\"/>\n<$list filter=\"[type{!!type}!is[system]sort[title]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><$view field=\"title\"/></$link>\n</div>\n</$list>\n</div>\n</$list>\n"
        },
        "$:/core/ui/MoreSideBar/Plugins/Languages": {
            "title": "$:/core/ui/MoreSideBar/Plugins/Languages",
            "tags": "$:/tags/MoreSideBar/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}}",
            "text": "<$list filter=\"[!has[draft.of]plugin-type[language]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
        },
        "$:/core/ui/MoreSideBar/Plugins/Plugins": {
            "title": "$:/core/ui/MoreSideBar/Plugins/Plugins",
            "tags": "$:/tags/MoreSideBar/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}}",
            "text": "<$list filter=\"[!has[draft.of]plugin-type[plugin]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}>>/>\n"
        },
        "$:/core/ui/MoreSideBar/Plugins/Theme": {
            "title": "$:/core/ui/MoreSideBar/Plugins/Theme",
            "tags": "$:/tags/MoreSideBar/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}}",
            "text": "<$list filter=\"[!has[draft.of]plugin-type[theme]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
        },
        "$:/core/ui/Buttons/advanced-search": {
            "title": "$:/core/ui/Buttons/advanced-search",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/advanced-search-button}} {{$:/language/Buttons/AdvancedSearch/Caption}}",
            "description": "{{$:/language/Buttons/AdvancedSearch/Hint}}",
            "text": "\\define control-panel-button(class)\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/advanced-search-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/AdvancedSearch/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/AdvancedSearch]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
        },
        "$:/core/ui/Buttons/close-all": {
            "title": "$:/core/ui/Buttons/close-all",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/close-all-button}} {{$:/language/Buttons/CloseAll/Caption}}",
            "description": "{{$:/language/Buttons/CloseAll/Hint}}",
            "text": "<$button message=\"tm-close-all-tiddlers\" tooltip={{$:/language/Buttons/CloseAll/Hint}} aria-label={{$:/language/Buttons/CloseAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/close-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/CloseAll/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/control-panel": {
            "title": "$:/core/ui/Buttons/control-panel",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/options-button}} {{$:/language/Buttons/ControlPanel/Caption}}",
            "description": "{{$:/language/Buttons/ControlPanel/Hint}}",
            "text": "\\define control-panel-button(class)\n<$button to=\"$:/ControlPanel\" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/options-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/ControlPanel/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/ControlPanel]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
        },
        "$:/core/ui/Buttons/encryption": {
            "title": "$:/core/ui/Buttons/encryption",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/locked-padlock}} {{$:/language/Buttons/Encryption/Caption}}",
            "description": "{{$:/language/Buttons/Encryption/Hint}}",
            "text": "<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-clear-password\" tooltip={{$:/language/Buttons/Encryption/ClearPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/ClearPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/locked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/ClearPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-set-password\" tooltip={{$:/language/Buttons/Encryption/SetPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/SetPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/unlocked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/SetPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>"
        },
        "$:/core/ui/Buttons/export-page": {
            "title": "$:/core/ui/Buttons/export-page",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportPage/Caption}}",
            "description": "{{$:/language/Buttons/ExportPage/Hint}}",
            "text": "<$macrocall $name=\"exportButton\" exportFilter=\"[!is[system]sort[title]]\" lingoBase=\"$:/language/Buttons/ExportPage/\"/>"
        },
        "$:/core/ui/Buttons/fold-all": {
            "title": "$:/core/ui/Buttons/fold-all",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/fold-all-button}} {{$:/language/Buttons/FoldAll/Caption}}",
            "description": "{{$:/language/Buttons/FoldAll/Hint}}",
            "text": "<$button tooltip={{$:/language/Buttons/FoldAll/Hint}} aria-label={{$:/language/Buttons/FoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FoldAll/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/full-screen": {
            "title": "$:/core/ui/Buttons/full-screen",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/full-screen-button}} {{$:/language/Buttons/FullScreen/Caption}}",
            "description": "{{$:/language/Buttons/FullScreen/Hint}}",
            "text": "<$button message=\"tm-full-screen\" tooltip={{$:/language/Buttons/FullScreen/Hint}} aria-label={{$:/language/Buttons/FullScreen/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/full-screen-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FullScreen/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/home": {
            "title": "$:/core/ui/Buttons/home",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/home-button}} {{$:/language/Buttons/Home/Caption}}",
            "description": "{{$:/language/Buttons/Home/Hint}}",
            "text": "<$button message=\"tm-home\" tooltip={{$:/language/Buttons/Home/Hint}} aria-label={{$:/language/Buttons/Home/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/home-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Home/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/import": {
            "title": "$:/core/ui/Buttons/import",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/import-button}} {{$:/language/Buttons/Import/Caption}}",
            "description": "{{$:/language/Buttons/Import/Hint}}",
            "text": "<div class=\"tc-file-input-wrapper\">\n<$button tooltip={{$:/language/Buttons/Import/Hint}} aria-label={{$:/language/Buttons/Import/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/import-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Import/Caption}}/></span>\n</$list>\n</$button>\n<$browse tooltip={{$:/language/Buttons/Import/Hint}}/>\n</div>"
        },
        "$:/core/ui/Buttons/language": {
            "title": "$:/core/ui/Buttons/language",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/globe}} {{$:/language/Buttons/Language/Caption}}",
            "description": "{{$:/language/Buttons/Language/Hint}}",
            "text": "\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/language\">> tooltip={{$:/language/Buttons/Language/Hint}} aria-label={{$:/language/Buttons/Language/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value={{$:/language}}>\n<$image source=<<flag-title>>/>\n</$set>\n</span>\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Language/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/language\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down tc-drop-down-language-chooser\">\n<$linkcatcher to=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[description]]\">\n<$link>\n<span class=\"tc-drop-down-bullet\">\n<$reveal type=\"match\" state=\"$:/language\" text=<<currentTiddler>>>\n&bull;\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/language\" text=<<currentTiddler>>>\n&nbsp;\n</$reveal>\n</span>\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value=<<currentTiddler>>>\n<$transclude subtiddler=<<flag-title>>>\n<$list filter=\"[all[current]field:title[$:/languages/en-GB]]\">\n<$transclude tiddler=\"$:/languages/en-GB/icon\"/>\n</$list>\n</$transclude>\n</$set>\n</span>\n<$view field=\"description\">\n<$view field=\"name\">\n<$view field=\"title\"/>\n</$view>\n</$view>\n</$link>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>"
        },
        "$:/core/ui/Buttons/manager": {
            "title": "$:/core/ui/Buttons/manager",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/list}} {{$:/language/Buttons/Manager/Caption}}",
            "description": "{{$:/language/Buttons/Manager/Hint}}",
            "text": "\\define manager-button(class)\n<$button to=\"$:/Manager\" tooltip={{$:/language/Buttons/Manager/Hint}} aria-label={{$:/language/Buttons/Manager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/list}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Manager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/Manager]]\" emptyMessage=<<manager-button>>>\n<<manager-button \"tc-selected\">>\n</$list>\n"
        },
        "$:/core/ui/Buttons/more-page-actions": {
            "title": "$:/core/ui/Buttons/more-page-actions",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
            "description": "{{$:/language/Buttons/More/Hint}}",
            "text": "\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/More/Caption}}/></span>\n</$list>\n</$button><$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"below\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]] -[[$:/core/ui/Buttons/more-page-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
        },
        "$:/core/ui/Buttons/new-image": {
            "title": "$:/core/ui/Buttons/new-image",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/new-image-button}} {{$:/language/Buttons/NewImage/Caption}}",
            "description": "{{$:/language/Buttons/NewImage/Hint}}",
            "text": "<$button tooltip={{$:/language/Buttons/NewImage/Hint}} aria-label={{$:/language/Buttons/NewImage/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=\"image/jpeg\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-image-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewImage/Caption}}/></span>\n</$list>\n</$button>\n"
        },
        "$:/core/ui/Buttons/new-journal": {
            "title": "$:/core/ui/Buttons/new-journal",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournal/Caption}}",
            "description": "{{$:/language/Buttons/NewJournal/Hint}}",
            "text": "\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournal/Hint}} aria-label={{$:/language/Buttons/NewJournal/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<now \"$(journalTitleTemplate)$\">> tags=\"$(journalTags)$\" text=\"$(journalText)$\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewJournal/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<$set name=\"journalTitleTemplate\" value={{$:/config/NewJournal/Title}}>\n<$set name=\"journalTags\" value={{$:/config/NewJournal/Tags}}>\n<$set name=\"journalText\" value={{$:/config/NewJournal/Text}}>\n<<journalButton>>\n</$set></$set></$set>"
        },
        "$:/core/ui/Buttons/new-tiddler": {
            "title": "$:/core/ui/Buttons/new-tiddler",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/new-button}} {{$:/language/Buttons/NewTiddler/Caption}}",
            "description": "{{$:/language/Buttons/NewTiddler/Hint}}",
            "text": "<$button message=\"tm-new-tiddler\" tooltip={{$:/language/Buttons/NewTiddler/Hint}} aria-label={{$:/language/Buttons/NewTiddler/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewTiddler/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/palette": {
            "title": "$:/core/ui/Buttons/palette",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/palette}} {{$:/language/Buttons/Palette/Caption}}",
            "description": "{{$:/language/Buttons/Palette/Hint}}",
            "text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/palette\">> tooltip={{$:/language/Buttons/Palette/Hint}} aria-label={{$:/language/Buttons/Palette/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/palette}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Palette/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/palette\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\" style=\"font-size:0.7em;\">\n{{$:/snippets/paletteswitcher}}\n</div>\n</$reveal>"
        },
        "$:/core/ui/Buttons/print": {
            "title": "$:/core/ui/Buttons/print",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/print-button}} {{$:/language/Buttons/Print/Caption}}",
            "description": "{{$:/language/Buttons/Print/Hint}}",
            "text": "<$button message=\"tm-print\" tooltip={{$:/language/Buttons/Print/Hint}} aria-label={{$:/language/Buttons/Print/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/print-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Print/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/refresh": {
            "title": "$:/core/ui/Buttons/refresh",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/refresh-button}} {{$:/language/Buttons/Refresh/Caption}}",
            "description": "{{$:/language/Buttons/Refresh/Hint}}",
            "text": "<$button message=\"tm-browser-refresh\" tooltip={{$:/language/Buttons/Refresh/Hint}} aria-label={{$:/language/Buttons/Refresh/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/refresh-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Refresh/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/save-wiki": {
            "title": "$:/core/ui/Buttons/save-wiki",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/save-button}} {{$:/language/Buttons/SaveWiki/Caption}}",
            "description": "{{$:/language/Buttons/SaveWiki/Hint}}",
            "text": "<$button message=\"tm-save-wiki\" param={{$:/config/SaveWikiButton/Template}} tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>>\n<span class=\"tc-dirty-indicator\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/save-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/SaveWiki/Caption}}/></span>\n</$list>\n</span>\n</$button>"
        },
        "$:/core/ui/Buttons/storyview": {
            "title": "$:/core/ui/Buttons/storyview",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/storyview-classic}} {{$:/language/Buttons/StoryView/Caption}}",
            "description": "{{$:/language/Buttons/StoryView/Hint}}",
            "text": "\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/storyview\">> tooltip={{$:/language/Buttons/StoryView/Hint}} aria-label={{$:/language/Buttons/StoryView/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n<$set name=\"storyview\" value={{$:/view}}>\n<$transclude tiddler=<<icon>>/>\n</$set>\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/StoryView/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/storyview\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$:/view\">\n<$list filter=\"[storyviews[]]\" variable=\"storyview\">\n<$link to=<<storyview>>>\n<span class=\"tc-drop-down-bullet\">\n<$reveal type=\"match\" state=\"$:/view\" text=<<storyview>>>\n&bull;\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/view\" text=<<storyview>>>\n&nbsp;\n</$reveal>\n</span>\n<$transclude tiddler=<<icon>>/>\n<$text text=<<storyview>>/></$link>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>"
        },
        "$:/core/ui/Buttons/tag-manager": {
            "title": "$:/core/ui/Buttons/tag-manager",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/tag-button}} {{$:/language/Buttons/TagManager/Caption}}",
            "description": "{{$:/language/Buttons/TagManager/Hint}}",
            "text": "\\define control-panel-button(class)\n<$button to=\"$:/TagManager\" tooltip={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/tag-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/TagManager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/TagManager]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
        },
        "$:/core/ui/Buttons/theme": {
            "title": "$:/core/ui/Buttons/theme",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/theme-button}} {{$:/language/Buttons/Theme/Caption}}",
            "description": "{{$:/language/Buttons/Theme/Hint}}",
            "text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/theme\">> tooltip={{$:/language/Buttons/Theme/Hint}} aria-label={{$:/language/Buttons/Theme/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/theme-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Theme/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/theme\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\" variable=\"themeTitle\">\n<$link to=<<themeTitle>>>\n<span class=\"tc-drop-down-bullet\">\n<$reveal type=\"match\" state=\"$:/theme\" text=<<themeTitle>>>\n&bull;\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/theme\" text=<<themeTitle>>>\n&nbsp;\n</$reveal>\n</span>\n<$view tiddler=<<themeTitle>> field=\"name\"/>\n</$link>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>"
        },
        "$:/core/ui/Buttons/timestamp": {
            "title": "$:/core/ui/Buttons/timestamp",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/timestamp-on}} {{$:/language/Buttons/Timestamp/Caption}}",
            "description": "{{$:/language/Buttons/Timestamp/Hint}}",
            "text": "<$reveal type=\"nomatch\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/On/Hint}} aria-label={{$:/language/Buttons/Timestamp/On/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"yes\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/timestamp-on}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/On/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/Off/Hint}} aria-label={{$:/language/Buttons/Timestamp/Off/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"no\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/timestamp-off}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/Off/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>"
        },
        "$:/core/ui/Buttons/unfold-all": {
            "title": "$:/core/ui/Buttons/unfold-all",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/unfold-all-button}} {{$:/language/Buttons/UnfoldAll/Caption}}",
            "description": "{{$:/language/Buttons/UnfoldAll/Hint}}",
            "text": "<$button tooltip={{$:/language/Buttons/UnfoldAll/Hint}} aria-label={{$:/language/Buttons/UnfoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-unfold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/UnfoldAll/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/PageTemplate/pagecontrols": {
            "title": "$:/core/ui/PageTemplate/pagecontrols",
            "text": "\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-page-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n<$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\">\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n</$reveal>\n</$list>\n</div>\n\n"
        },
        "$:/core/ui/PageStylesheet": {
            "title": "$:/core/ui/PageStylesheet",
            "text": "<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\n</$set>\n\n</$set>\n\n</$importvariables>\n"
        },
        "$:/core/ui/PageTemplate/alerts": {
            "title": "$:/core/ui/PageTemplate/alerts",
            "tags": "$:/tags/PageTemplate",
            "text": "<div class=\"tc-alerts\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Alert]!has[draft.of]]\" template=\"$:/core/ui/AlertTemplate\" storyview=\"pop\"/>\n\n</div>\n"
        },
        "$:/core/ui/PageTemplate/pluginreloadwarning": {
            "title": "$:/core/ui/PageTemplate/pluginreloadwarning",
            "tags": "$:/tags/PageTemplate",
            "text": "\\define lingo-base() $:/language/\n\n<$list filter=\"[has[plugin-type]haschanged[]!plugin-type[import]limit[1]]\">\n\n<$reveal type=\"nomatch\" state=\"$:/temp/HidePluginWarning\" text=\"yes\">\n\n<div class=\"tc-plugin-reload-warning\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<<lingo PluginReloadWarning>> <$button set=\"$:/temp/HidePluginWarning\" setTo=\"yes\" class=\"tc-btn-invisible\">{{$:/core/images/close-button}}</$button>\n\n</$set>\n\n</div>\n\n</$reveal>\n\n</$list>\n"
        },
        "$:/core/ui/PageTemplate/sidebar": {
            "title": "$:/core/ui/PageTemplate/sidebar",
            "tags": "$:/tags/PageTemplate",
            "text": "<$scrollable fallthrough=\"no\" class=\"tc-sidebar-scrollable\">\n\n<div class=\"tc-sidebar-header\">\n\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\" retain=\"yes\" animate=\"yes\">\n\n<h1 class=\"tc-site-title\">\n\n<$transclude tiddler=\"$:/SiteTitle\" mode=\"inline\"/>\n\n</h1>\n\n<div class=\"tc-site-subtitle\">\n\n<$transclude tiddler=\"$:/SiteSubtitle\" mode=\"inline\"/>\n\n</div>\n\n{{||$:/core/ui/PageTemplate/pagecontrols}}\n\n<$transclude tiddler=\"$:/core/ui/SideBarLists\" mode=\"inline\"/>\n\n</$reveal>\n\n</div>\n\n</$scrollable>"
        },
        "$:/core/ui/PageTemplate/story": {
            "title": "$:/core/ui/PageTemplate/story",
            "tags": "$:/tags/PageTemplate",
            "text": "<section class=\"tc-story-river\">\n\n<section class=\"story-backdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AboveStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" template=\"$:/core/ui/ViewTemplate\" editTemplate=\"$:/core/ui/EditTemplate\" storyview={{$:/view}} emptyMessage={{$:/config/EmptyStoryMessage}}/>\n\n<section class=\"story-frontdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/BelowStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n</section>\n"
        },
        "$:/core/ui/PageTemplate/topleftbar": {
            "title": "$:/core/ui/PageTemplate/topleftbar",
            "tags": "$:/tags/PageTemplate",
            "text": "<span class=\"tc-topbar tc-topbar-left\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopLeftBar]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
        },
        "$:/core/ui/PageTemplate/toprightbar": {
            "title": "$:/core/ui/PageTemplate/toprightbar",
            "tags": "$:/tags/PageTemplate",
            "text": "<span class=\"tc-topbar tc-topbar-right\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopRightBar]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
        },
        "$:/core/ui/PageTemplate": {
            "title": "$:/core/ui/PageTemplate",
            "text": "\\define containerClasses()\ntc-page-container tc-page-view-$(themeTitle)$ tc-language-$(languageTitle)$\n\\end\n\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<$set name=\"tv-config-toolbar-icons\" value={{$:/config/Toolbar/Icons}}>\n\n<$set name=\"tv-config-toolbar-text\" value={{$:/config/Toolbar/Text}}>\n\n<$set name=\"tv-config-toolbar-class\" value={{$:/config/Toolbar/ButtonClass}}>\n\n<$set name=\"themeTitle\" value={{$:/view}}>\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$set name=\"currentTiddler\" value=\"\">\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n\n<$dropzone>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageTemplate]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n\n</$dropzone>\n\n</$navigator>\n\n</div>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$importvariables>\n"
        },
        "$:/core/ui/PluginInfo": {
            "title": "$:/core/ui/PluginInfo",
            "text": "\\define localised-info-tiddler-title()\n$(currentTiddler)$/$(languageTitle)$/$(currentTab)$\n\\end\n\\define info-tiddler-title()\n$(currentTiddler)$/$(currentTab)$\n\\end\n\\define default-tiddler-title()\n$:/core/ui/PluginInfo/Default/$(currentTab)$\n\\end\n<$transclude tiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<default-tiddler-title>> mode=\"block\">\n{{$:/language/ControlPanel/Plugin/NoInfoFound/Hint}}\n</$transclude>\n</$transclude>\n</$transclude>\n</$transclude>\n"
        },
        "$:/core/ui/PluginInfo/Default/contents": {
            "title": "$:/core/ui/PluginInfo/Default/contents",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</li>\n</$list>\n</ul>\n"
        },
        "$:/core/ui/PluginListItemTemplate": {
            "title": "$:/core/ui/PluginListItemTemplate",
            "text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}>\n<$view field=\"description\">\n<$view field=\"title\"/>\n</$view>\n</$link>\n</div>"
        },
        "$:/core/ui/SearchResults": {
            "title": "$:/core/ui/SearchResults",
            "text": "<div class=\"tc-search-results\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\"\"\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}}/>\n\n</$list>\n\n</div>\n"
        },
        "$:/core/ui/SideBar/More": {
            "title": "$:/core/ui/SideBar/More",
            "tags": "$:/tags/SideBar",
            "caption": "{{$:/language/SideBar/More/Caption}}",
            "text": "<div class=\"tc-more-sidebar\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\" \"$:/core/ui/MoreSideBar/Tags\" \"$:/state/tab/moresidebar\" \"tc-vertical\">>\n</div>\n"
        },
        "$:/core/ui/SideBar/Open": {
            "title": "$:/core/ui/SideBar/Open",
            "tags": "$:/tags/SideBar",
            "caption": "{{$:/language/SideBar/Open/Caption}}",
            "text": "\\define lingo-base() $:/language/CloseAll/\n\n\\define drop-actions()\n<$action-listops $tiddler=\"$:/StoryList\" $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" storyview=\"pop\">\n<div style=\"position: relative;\">\n<$droppable actions=<<drop-actions>>>\n<div class=\"tc-droppable-placeholder\">\n&nbsp;\n</div>\n<div>\n<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=\"tc-btn-invisible tc-btn-mini\">&times;</$button> <$link to={{!!title}}><$view field=\"title\"/></$link>\n</div>\n</$droppable>\n</div>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<drop-actions>>>\n<div class=\"tc-droppable-placeholder\">\n&nbsp;\n</div>\n<$button message=\"tm-close-all-tiddlers\" class=\"tc-btn-invisible tc-btn-mini\"><<lingo Button>></$button>\n</$droppable>\n</$tiddler>\n"
        },
        "$:/core/ui/SideBar/Recent": {
            "title": "$:/core/ui/SideBar/Recent",
            "tags": "$:/tags/SideBar",
            "caption": "{{$:/language/SideBar/Recent/Caption}}",
            "text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
        },
        "$:/core/ui/SideBar/Tools": {
            "title": "$:/core/ui/SideBar/Tools",
            "tags": "$:/tags/SideBar",
            "caption": "{{$:/language/SideBar/Tools/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n\n<<lingo Basics/Version/Prompt>> <<version>>\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n\n<div style=\"position:relative;\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</div>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/SideBarLists": {
            "title": "$:/core/ui/SideBarLists",
            "text": "<div class=\"tc-sidebar-lists\">\n\n<$set name=\"searchTiddler\" value=\"$:/temp/search\">\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/search\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-popup-handle\"/>\n<$reveal state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n<$button tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" text={{$:/temp/search}}/>\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n{{$:/core/images/advanced-search-button}}\n</$button>\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n<$button popup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n<$list filter=\"[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]\" variable=\"listItem\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[!is[system]search{$(searchTiddler)$}]\"/>\"\"\">\n{{$:/language/Search/Matches}}\n</$set>\n</$list>\n</$button>\n</$reveal>\n<$reveal state=\"$:/temp/search\" type=\"match\" text=\"\">\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/advanced-search-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown-wrapper\" state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown tc-search-drop-down tc-popup-handle\" state=<<qualify \"$:/state/popup/search-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n\n<$list filter=\"[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n{{$:/core/ui/SearchResults}}\n\n</$list>\n\n</$reveal>\n\n</$reveal>\n\n</$set>\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\" default={{$:/config/DefaultSidebarTab}} state=\"$:/state/tab/sidebar\" />\n\n</div>\n"
        },
        "$:/TagManager": {
            "title": "$:/TagManager",
            "icon": "$:/core/images/tag-button",
            "color": "#bbb",
            "caption": "{{$:/language/TagManager/Caption}}",
            "text": "\\define lingo-base() $:/language/TagManager/\n\\define iconEditorTab(type)\n<$list filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[sort[title]] +[$type$is[system]]\">\n<$link to={{!!title}}>\n<$transclude/> <$view field=\"title\"/>\n</$link>\n</$list>\n\\end\n\\define iconEditor(title)\n<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/icon/$title$\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/icon/$title$\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$title$!!icon\">\n<<iconEditorTab type:\"!\">>\n<hr/>\n<<iconEditorTab type:\"\">>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>\n\\end\n\\define qualifyTitle(title)\n$title$$(currentTiddler)$\n\\end\n\\define toggleButton(state)\n<$reveal state=\"$state$\" type=\"match\" text=\"closed\" default=\"closed\">\n<$button set=\"$state$\" setTo=\"open\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n<$reveal state=\"$state$\" type=\"match\" text=\"open\" default=\"closed\">\n<$button set=\"$state$\" setTo=\"closed\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n\\end\n<table class=\"tc-tag-manager-table\">\n<tbody>\n<tr>\n<th><<lingo Colour/Heading>></th>\n<th class=\"tc-tag-manager-tag\"><<lingo Tag/Heading>></th>\n<th><<lingo Count/Heading>></th>\n<th><<lingo Icon/Heading>></th>\n<th><<lingo Info/Heading>></th>\n</tr>\n<$list filter=\"[tags[]!is[system]sort[title]]\">\n<tr>\n<td><$edit-text field=\"color\" tag=\"input\" type=\"color\"/></td>\n<td><$macrocall $name=\"tag\" tag=<<currentTiddler>>/></td>\n<td><$count filter=\"[all[current]tagging[]]\"/></td>\n<td>\n<$macrocall $name=\"iconEditor\" title={{!!title}}/>\n</td>\n<td>\n<$macrocall $name=\"toggleButton\" state=<<qualifyTitle \"$:/state/tag-manager/\">> /> \n</td>\n</tr>\n<tr>\n<td></td>\n<td colspan=\"4\">\n<$reveal state=<<qualifyTitle \"$:/state/tag-manager/\">> type=\"match\" text=\"open\" default=\"\">\n<table>\n<tbody>\n<tr><td><<lingo Colour/Heading>></td><td><$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/></td></tr>\n<tr><td><<lingo Icon/Heading>></td><td><$edit-text field=\"icon\" tag=\"input\" size=\"45\"/></td></tr>\n</tbody>\n</table>\n</$reveal>\n</td>\n</tr>\n</$list>\n<tr>\n<td></td>\n<td>\n{{$:/core/ui/UntaggedTemplate}}\n</td>\n<td>\n<small class=\"tc-menu-list-count\"><$count filter=\"[untagged[]!is[system]] -[tags[]]\"/></small>\n</td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/TagTemplate": {
            "title": "$:/core/ui/TagTemplate",
            "text": "<span class=\"tc-tag-list-item\">\n<$set name=\"transclusion\" value=<<currentTiddler>>>\n<$macrocall $name=\"tag-pill-body\" tag=<<currentTiddler>> icon={{!!icon}} colour={{!!color}} palette={{$:/palette}} element-tag=\"\"\"$button\"\"\" element-attributes=\"\"\"popup=<<qualify \"$:/state/popup/tag\">> dragFilter='[all[current]tagging[]]' tag='span'\"\"\"/>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\" animate=\"yes\" class=\"tc-drop-down\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]\" variable=\"listItem\"> \n<$transclude tiddler=<<listItem>>/> \n</$list>\n<hr>\n<$macrocall $name=\"list-tagged-draggable\" tag=<<currentTiddler>>/>\n</$reveal>\n</$set>\n</span>\n"
        },
        "$:/core/ui/TiddlerFieldTemplate": {
            "title": "$:/core/ui/TiddlerFieldTemplate",
            "text": "<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<listItem>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<listItem>>/>\n</td>\n</tr>"
        },
        "$:/core/ui/TiddlerFields": {
            "title": "$:/core/ui/TiddlerFields",
            "text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/TiddlerInfo/Advanced/PluginInfo": {
            "title": "$:/core/ui/TiddlerInfo/Advanced/PluginInfo",
            "tags": "$:/tags/TiddlerInfo/Advanced",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<$list filter=\"[all[current]has[plugin-type]]\">\n\n! <<lingo Heading>>\n\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</li>\n</$list>\n</ul>\n\n</$list>\n"
        },
        "$:/core/ui/TiddlerInfo/Advanced/ShadowInfo": {
            "title": "$:/core/ui/TiddlerInfo/Advanced/ShadowInfo",
            "tags": "$:/tags/TiddlerInfo/Advanced",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/ShadowInfo/\n<$set name=\"infoTiddler\" value=<<currentTiddler>>>\n\n''<<lingo Heading>>''\n\n<$list filter=\"[all[current]!is[shadow]]\">\n\n<<lingo NotShadow/Hint>>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]]\">\n\n<<lingo Shadow/Hint>>\n\n<$list filter=\"[all[current]shadowsource[]]\">\n\n<$set name=\"pluginTiddler\" value=<<currentTiddler>>>\n<<lingo Shadow/Source>>\n</$set>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\">\n\n<<lingo OverriddenShadow/Hint>>\n\n</$list>\n\n\n</$list>\n</$set>\n"
        },
        "$:/core/ui/TiddlerInfo/Advanced": {
            "title": "$:/core/ui/TiddlerInfo/Advanced",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Advanced/Caption}}",
            "text": "<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo/Advanced]!has[draft.of]]\" variable=\"listItem\">\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n"
        },
        "$:/core/ui/TiddlerInfo/Fields": {
            "title": "$:/core/ui/TiddlerInfo/Fields",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Fields/Caption}}",
            "text": "<$transclude tiddler=\"$:/core/ui/TiddlerFields\"/>\n"
        },
        "$:/core/ui/TiddlerInfo/List": {
            "title": "$:/core/ui/TiddlerInfo/List",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/List/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[list{!!title}]\" emptyMessage=<<lingo List/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/TiddlerInfo/Listed": {
            "title": "$:/core/ui/TiddlerInfo/Listed",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Listed/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]listed[]!is[system]]\" emptyMessage=<<lingo Listed/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/TiddlerInfo/References": {
            "title": "$:/core/ui/TiddlerInfo/References",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/References/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]backlinks[]sort[title]]\" emptyMessage=<<lingo References/Empty>> template=\"$:/core/ui/ListItemTemplate\">\n</$list>\n"
        },
        "$:/core/ui/TiddlerInfo/Tagging": {
            "title": "$:/core/ui/TiddlerInfo/Tagging",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Tagging/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]tagging[]]\" emptyMessage=<<lingo Tagging/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/TiddlerInfo/Tools": {
            "title": "$:/core/ui/TiddlerInfo/Tools",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Tools/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/TiddlerInfo": {
            "title": "$:/core/ui/TiddlerInfo",
            "text": "<div style=\"position:relative;\">\n<div class=\"tc-tiddler-controls\" style=\"position:absolute;right:0;\">\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n</div>\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo]!has[draft.of]]\" default={{$:/config/TiddlerInfo/Default}}/>"
        },
        "$:/core/ui/TopBar/menu": {
            "title": "$:/core/ui/TopBar/menu",
            "tags": "$:/tags/TopRightBar",
            "text": "<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"no\">\n<$button set=\"$:/state/sidebar\" setTo=\"no\" tooltip={{$:/language/Buttons/HideSideBar/Hint}} aria-label={{$:/language/Buttons/HideSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}}</$button>\n</$reveal>\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"no\">\n<$button set=\"$:/state/sidebar\" setTo=\"yes\" tooltip={{$:/language/Buttons/ShowSideBar/Hint}} aria-label={{$:/language/Buttons/ShowSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-left}}</$button>\n</$reveal>\n"
        },
        "$:/core/ui/UntaggedTemplate": {
            "title": "$:/core/ui/UntaggedTemplate",
            "text": "\\define lingo-base() $:/language/SideBar/\n<$button popup=<<qualify \"$:/state/popup/tag\">> class=\"tc-btn-invisible tc-untagged-label tc-tag-label\">\n<<lingo Tags/Untagged/Caption>>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[untagged[]!is[system]] -[tags[]] +[sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n"
        },
        "$:/core/ui/ViewTemplate/body": {
            "title": "$:/core/ui/ViewTemplate/body",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$reveal tag=\"div\" class=\"tc-tiddler-body\" type=\"nomatch\" state=<<folded-state>> text=\"hide\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[current]!has[plugin-type]!field:hide-body[yes]]\">\n\n<$transclude>\n\n<$transclude tiddler=\"$:/language/MissingTiddler/Hint\"/>\n\n</$transclude>\n\n</$list>\n\n</$reveal>"
        },
        "$:/core/ui/ViewTemplate/classic": {
            "title": "$:/core/ui/ViewTemplate/classic",
            "tags": "$:/tags/ViewTemplate $:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/ClassicWarning/\n<$list filter=\"[all[current]type[text/x-tiddlywiki]]\">\n<div class=\"tc-message-box\">\n\n<<lingo Hint>>\n\n<$button set=\"!!type\" setTo=\"text/vnd.tiddlywiki\"><<lingo Upgrade/Caption>></$button>\n\n</div>\n</$list>\n"
        },
        "$:/core/ui/ViewTemplate/import": {
            "title": "$:/core/ui/ViewTemplate/import",
            "tags": "$:/tags/ViewTemplate",
            "text": "\\define lingo-base() $:/language/Import/\n\n<$list filter=\"[all[current]field:plugin-type[import]]\">\n\n<div class=\"tc-import\">\n\n<<lingo Listing/Hint>>\n\n<$button message=\"tm-delete-tiddler\" param=<<currentTiddler>>><<lingo Listing/Cancel/Caption>></$button>\n<$button message=\"tm-perform-import\" param=<<currentTiddler>>><<lingo Listing/Import/Caption>></$button>\n\n{{||$:/core/ui/ImportListing}}\n\n<$button message=\"tm-delete-tiddler\" param=<<currentTiddler>>><<lingo Listing/Cancel/Caption>></$button>\n<$button message=\"tm-perform-import\" param=<<currentTiddler>>><<lingo Listing/Import/Caption>></$button>\n\n</div>\n\n</$list>\n"
        },
        "$:/core/ui/ViewTemplate/plugin": {
            "title": "$:/core/ui/ViewTemplate/plugin",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$list filter=\"[all[current]has[plugin-type]] -[all[current]field:plugin-type[import]]\">\n<$set name=\"plugin-type\" value={{!!plugin-type}}>\n<$set name=\"default-popup-state\" value=\"yes\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n{{||$:/core/ui/Components/plugin-info}}\n</$set>\n</$set>\n</$set>\n</$list>\n"
        },
        "$:/core/ui/ViewTemplate/subtitle": {
            "title": "$:/core/ui/ViewTemplate/subtitle",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$reveal type=\"nomatch\" state=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}}>\n<$view field=\"modifier\"/>\n</$link> <$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n</$reveal>\n"
        },
        "$:/core/ui/ViewTemplate/tags": {
            "title": "$:/core/ui/ViewTemplate/tags",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$reveal type=\"nomatch\" state=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-tags-wrapper\"><$list filter=\"[all[current]tags[]sort[title]]\" template=\"$:/core/ui/TagTemplate\" storyview=\"pop\"/></div>\n</$reveal>"
        },
        "$:/core/ui/ViewTemplate/title": {
            "title": "$:/core/ui/ViewTemplate/title",
            "tags": "$:/tags/ViewTemplate",
            "text": "\\define title-styles()\nfill:$(foregroundColor)$;\n\\end\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<span class=\"tc-tiddler-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$transclude tiddler=<<listItem>>/></$reveal></$list>\n</span>\n<$set name=\"tv-wikilinks\" value={{$:/config/Tiddlers/TitleLinks}}>\n<$link>\n<$set name=\"foregroundColor\" value={{!!color}}>\n<span class=\"tc-tiddler-title-icon\" style=<<title-styles>>>\n<$transclude tiddler={{!!icon}}/>\n</span>\n</$set>\n<$list filter=\"[all[current]removeprefix[$:/]]\">\n<h2 class=\"tc-title\" title={{$:/language/SystemTiddler/Tooltip}}>\n<span class=\"tc-system-title-prefix\">$:/</span><$text text=<<currentTiddler>>/>\n</h2>\n</$list>\n<$list filter=\"[all[current]!prefix[$:/]]\">\n<h2 class=\"tc-title\">\n<$view field=\"title\"/>\n</h2>\n</$list>\n</$link>\n</$set>\n</div>\n\n<$reveal type=\"nomatch\" text=\"\" default=\"\" state=<<tiddlerInfoState>> class=\"tc-tiddler-info tc-popup-handle\" animate=\"yes\" retain=\"yes\">\n\n<$transclude tiddler=\"$:/core/ui/TiddlerInfo\"/>\n\n</$reveal>\n</div>"
        },
        "$:/core/ui/ViewTemplate/unfold": {
            "title": "$:/core/ui/ViewTemplate/unfold",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$reveal tag=\"div\" type=\"nomatch\" state=\"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar\" text=\"hide\">\n<$reveal tag=\"div\" type=\"nomatch\" state=<<folded-state>> text=\"hide\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=\"tc-fold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-up}}\n</$button>\n</$reveal>\n<$reveal tag=\"div\" type=\"nomatch\" state=<<folded-state>> text=\"show\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=\"tc-unfold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</$reveal>\n"
        },
        "$:/core/ui/ViewTemplate": {
            "title": "$:/core/ui/ViewTemplate",
            "text": "\\define frame-classes()\ntc-tiddler-frame tc-tiddler-view-frame $(missingTiddlerClass)$ $(shadowTiddlerClass)$ $(systemTiddlerClass)$ $(tiddlerTagClasses)$\n\\end\n\\define folded-state()\n$:/state/folded/$(currentTiddler)$\n\\end\n<$set name=\"storyTiddler\" value=<<currentTiddler>>><$set name=\"tiddlerInfoState\" value=<<qualify \"$:/state/popup/tiddler-info\">>><$tiddler tiddler=<<currentTiddler>>><div class=<<frame-classes>>><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewTemplate]!has[draft.of]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>>/></$list>\n</div>\n</$tiddler></$set></$set>\n"
        },
        "$:/core/ui/Buttons/clone": {
            "title": "$:/core/ui/Buttons/clone",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/clone-button}} {{$:/language/Buttons/Clone/Caption}}",
            "description": "{{$:/language/Buttons/Clone/Hint}}",
            "text": "<$button message=\"tm-new-tiddler\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/Clone/Hint}} aria-label={{$:/language/Buttons/Clone/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/clone-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Clone/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/close-others": {
            "title": "$:/core/ui/Buttons/close-others",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/close-others-button}} {{$:/language/Buttons/CloseOthers/Caption}}",
            "description": "{{$:/language/Buttons/CloseOthers/Hint}}",
            "text": "<$button message=\"tm-close-other-tiddlers\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/CloseOthers/Hint}} aria-label={{$:/language/Buttons/CloseOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/close-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/CloseOthers/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/close": {
            "title": "$:/core/ui/Buttons/close",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/close-button}} {{$:/language/Buttons/Close/Caption}}",
            "description": "{{$:/language/Buttons/Close/Hint}}",
            "text": "<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/close-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Close/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/edit": {
            "title": "$:/core/ui/Buttons/edit",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/edit-button}} {{$:/language/Buttons/Edit/Caption}}",
            "description": "{{$:/language/Buttons/Edit/Hint}}",
            "text": "<$button message=\"tm-edit-tiddler\" tooltip={{$:/language/Buttons/Edit/Hint}} aria-label={{$:/language/Buttons/Edit/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/edit-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Edit/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/export-tiddler": {
            "title": "$:/core/ui/Buttons/export-tiddler",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportTiddler/Caption}}",
            "description": "{{$:/language/Buttons/ExportTiddler/Hint}}",
            "text": "\\define makeExportFilter()\n[[$(currentTiddler)$]]\n\\end\n<$macrocall $name=\"exportButton\" exportFilter=<<makeExportFilter>> lingoBase=\"$:/language/Buttons/ExportTiddler/\" baseFilename=<<currentTiddler>>/>"
        },
        "$:/core/ui/Buttons/fold-bar": {
            "title": "$:/core/ui/Buttons/fold-bar",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/chevron-up}} {{$:/language/Buttons/Fold/FoldBar/Caption}}",
            "description": "{{$:/language/Buttons/Fold/FoldBar/Hint}}",
            "text": "<!-- This dummy toolbar button is here to allow visibility of the fold-bar to be controlled as if it were a toolbar button -->"
        },
        "$:/core/ui/Buttons/fold-others": {
            "title": "$:/core/ui/Buttons/fold-others",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/fold-others-button}} {{$:/language/Buttons/FoldOthers/Caption}}",
            "description": "{{$:/language/Buttons/FoldOthers/Hint}}",
            "text": "<$button tooltip={{$:/language/Buttons/FoldOthers/Hint}} aria-label={{$:/language/Buttons/FoldOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-other-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FoldOthers/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/fold": {
            "title": "$:/core/ui/Buttons/fold",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/fold-button}} {{$:/language/Buttons/Fold/Caption}}",
            "description": "{{$:/language/Buttons/Fold/Hint}}",
            "text": "<$reveal type=\"nomatch\" state=<<folded-state>> text=\"hide\" default=\"show\"><$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Fold/Caption}}/>\n</span>\n</$list>\n</$button></$reveal><$reveal type=\"match\" state=<<folded-state>> text=\"hide\" default=\"show\"><$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Unfold/Caption}}/>\n</span>\n</$list>\n</$button></$reveal>"
        },
        "$:/core/ui/Buttons/info": {
            "title": "$:/core/ui/Buttons/info",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/info-button}} {{$:/language/Buttons/Info/Caption}}",
            "description": "{{$:/language/Buttons/Info/Hint}}",
            "text": "\\define button-content()\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/info-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Info/Caption}}/></span>\n</$list>\n\\end\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"popup\">\n<$button popup=<<tiddlerInfoState>> tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$reveal state=<<tiddlerInfoState>> type=\"match\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"yes\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=<<tiddlerInfoState>> type=\"nomatch\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n</$reveal>"
        },
        "$:/core/ui/Buttons/more-tiddler-actions": {
            "title": "$:/core/ui/Buttons/more-tiddler-actions",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
            "description": "{{$:/language/Buttons/More/Hint}}",
            "text": "\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/More/Caption}}/></span>\n</$list>\n</$button><$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"below\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]] -[[$:/core/ui/Buttons/more-tiddler-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
        },
        "$:/core/ui/Buttons/new-here": {
            "title": "$:/core/ui/Buttons/new-here",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/new-here-button}} {{$:/language/Buttons/NewHere/Caption}}",
            "description": "{{$:/language/Buttons/NewHere/Hint}}",
            "text": "\\define newHereButtonTags()\n[[$(currentTiddler)$]]\n\\end\n\\define newHereButton()\n<$button tooltip={{$:/language/Buttons/NewHere/Hint}} aria-label={{$:/language/Buttons/NewHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<newHereButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-here-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewHere/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<<newHereButton>>"
        },
        "$:/core/ui/Buttons/new-journal-here": {
            "title": "$:/core/ui/Buttons/new-journal-here",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournalHere/Caption}}",
            "description": "{{$:/language/Buttons/NewJournalHere/Hint}}",
            "text": "\\define journalButtonTags()\n[[$(currentTiddlerTag)$]] $(journalTags)$\n\\end\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournalHere/Hint}} aria-label={{$:/language/Buttons/NewJournalHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<now \"$(journalTitleTemplate)$\">> tags=<<journalButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewJournalHere/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<$set name=\"journalTitleTemplate\" value={{$:/config/NewJournal/Title}}>\n<$set name=\"journalTags\" value={{$:/config/NewJournal/Tags}}>\n<$set name=\"currentTiddlerTag\" value=<<currentTiddler>>>\n<<journalButton>>\n</$set></$set></$set>"
        },
        "$:/core/ui/Buttons/open-window": {
            "title": "$:/core/ui/Buttons/open-window",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/open-window}} {{$:/language/Buttons/OpenWindow/Caption}}",
            "description": "{{$:/language/Buttons/OpenWindow/Hint}}",
            "text": "<$button message=\"tm-open-window\" tooltip={{$:/language/Buttons/OpenWindow/Hint}} aria-label={{$:/language/Buttons/OpenWindow/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/open-window}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/OpenWindow/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/permalink": {
            "title": "$:/core/ui/Buttons/permalink",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/permalink-button}} {{$:/language/Buttons/Permalink/Caption}}",
            "description": "{{$:/language/Buttons/Permalink/Hint}}",
            "text": "<$button message=\"tm-permalink\" tooltip={{$:/language/Buttons/Permalink/Hint}} aria-label={{$:/language/Buttons/Permalink/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/permalink-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Permalink/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/permaview": {
            "title": "$:/core/ui/Buttons/permaview",
            "tags": "$:/tags/ViewToolbar $:/tags/PageControls",
            "caption": "{{$:/core/images/permaview-button}} {{$:/language/Buttons/Permaview/Caption}}",
            "description": "{{$:/language/Buttons/Permaview/Hint}}",
            "text": "<$button message=\"tm-permaview\" tooltip={{$:/language/Buttons/Permaview/Hint}} aria-label={{$:/language/Buttons/Permaview/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/permaview-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Permaview/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/DefaultTiddlers": {
            "title": "$:/DefaultTiddlers",
            "text": "GettingStarted\n"
        },
        "$:/temp/advancedsearch": {
            "title": "$:/temp/advancedsearch",
            "text": ""
        },
        "$:/snippets/allfields": {
            "title": "$:/snippets/allfields",
            "text": "\\define renderfield(title)\n<tr class=\"tc-view-field\"><td class=\"tc-view-field-name\">''$title$'':</td><td class=\"tc-view-field-value\">//{{$:/language/Docs/Fields/$title$}}//</td></tr>\n\\end\n<table class=\"tc-view-field-table\"><tbody><$list filter=\"[fields[]sort[title]]\" variable=\"listItem\"><$macrocall $name=\"renderfield\" title=<<listItem>>/></$list>\n</tbody></table>\n"
        },
        "$:/config/AnimationDuration": {
            "title": "$:/config/AnimationDuration",
            "text": "400"
        },
        "$:/config/AutoSave": {
            "title": "$:/config/AutoSave",
            "text": "yes"
        },
        "$:/config/BitmapEditor/Colour": {
            "title": "$:/config/BitmapEditor/Colour",
            "text": "#444"
        },
        "$:/config/BitmapEditor/ImageSizes": {
            "title": "$:/config/BitmapEditor/ImageSizes",
            "text": "[[62px 100px]] [[100px 62px]] [[124px 200px]] [[200px 124px]] [[248px 400px]] [[371px 600px]] [[400px 248px]] [[556px 900px]] [[600px 371px]] [[742px 1200px]] [[900px 556px]] [[1200px 742px]]"
        },
        "$:/config/BitmapEditor/LineWidth": {
            "title": "$:/config/BitmapEditor/LineWidth",
            "text": "3px"
        },
        "$:/config/BitmapEditor/LineWidths": {
            "title": "$:/config/BitmapEditor/LineWidths",
            "text": "0.25px 0.5px 1px 2px 3px 4px 6px 8px 10px 16px 20px 28px 40px 56px 80px"
        },
        "$:/config/BitmapEditor/Opacities": {
            "title": "$:/config/BitmapEditor/Opacities",
            "text": "0.01 0.025 0.05 0.075 0.1 0.15 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0"
        },
        "$:/config/BitmapEditor/Opacity": {
            "title": "$:/config/BitmapEditor/Opacity",
            "text": "1.0"
        },
        "$:/config/DefaultSidebarTab": {
            "title": "$:/config/DefaultSidebarTab",
            "text": "$:/core/ui/SideBar/Open"
        },
        "$:/config/DownloadSaver/AutoSave": {
            "title": "$:/config/DownloadSaver/AutoSave",
            "text": "no"
        },
        "$:/config/Drafts/TypingTimeout": {
            "title": "$:/config/Drafts/TypingTimeout",
            "text": "400"
        },
        "$:/config/EditTemplateFields/Visibility/title": {
            "title": "$:/config/EditTemplateFields/Visibility/title",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/tags": {
            "title": "$:/config/EditTemplateFields/Visibility/tags",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/text": {
            "title": "$:/config/EditTemplateFields/Visibility/text",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/creator": {
            "title": "$:/config/EditTemplateFields/Visibility/creator",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/created": {
            "title": "$:/config/EditTemplateFields/Visibility/created",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/modified": {
            "title": "$:/config/EditTemplateFields/Visibility/modified",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/modifier": {
            "title": "$:/config/EditTemplateFields/Visibility/modifier",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/type": {
            "title": "$:/config/EditTemplateFields/Visibility/type",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/draft.title": {
            "title": "$:/config/EditTemplateFields/Visibility/draft.title",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/draft.of": {
            "title": "$:/config/EditTemplateFields/Visibility/draft.of",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/revision": {
            "title": "$:/config/EditTemplateFields/Visibility/revision",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/bag": {
            "title": "$:/config/EditTemplateFields/Visibility/bag",
            "text": "hide"
        },
        "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4": {
            "title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4",
            "text": "hide"
        },
        "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5": {
            "title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5",
            "text": "hide"
        },
        "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6": {
            "title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6",
            "text": "hide"
        },
        "$:/config/EditorTypeMappings/image/gif": {
            "title": "$:/config/EditorTypeMappings/image/gif",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/jpeg": {
            "title": "$:/config/EditorTypeMappings/image/jpeg",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/jpg": {
            "title": "$:/config/EditorTypeMappings/image/jpg",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/png": {
            "title": "$:/config/EditorTypeMappings/image/png",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/x-icon": {
            "title": "$:/config/EditorTypeMappings/image/x-icon",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/text/vnd.tiddlywiki": {
            "title": "$:/config/EditorTypeMappings/text/vnd.tiddlywiki",
            "text": "text"
        },
        "$:/config/Manager/Show": {
            "title": "$:/config/Manager/Show",
            "text": "tiddlers"
        },
        "$:/config/Manager/Filter": {
            "title": "$:/config/Manager/Filter",
            "text": ""
        },
        "$:/config/Manager/Order": {
            "title": "$:/config/Manager/Order",
            "text": "forward"
        },
        "$:/config/Manager/Sort": {
            "title": "$:/config/Manager/Sort",
            "text": "title"
        },
        "$:/config/Manager/System": {
            "title": "$:/config/Manager/System",
            "text": "system"
        },
        "$:/config/Manager/Tag": {
            "title": "$:/config/Manager/Tag",
            "text": ""
        },
        "$:/state/popup/manager/item/$:/Manager/ItemMain/RawText": {
            "title": "$:/state/popup/manager/item/$:/Manager/ItemMain/RawText",
            "text": "hide"
        },
        "$:/config/MissingLinks": {
            "title": "$:/config/MissingLinks",
            "text": "yes"
        },
        "$:/config/Navigation/UpdateAddressBar": {
            "title": "$:/config/Navigation/UpdateAddressBar",
            "text": "no"
        },
        "$:/config/Navigation/UpdateHistory": {
            "title": "$:/config/Navigation/UpdateHistory",
            "text": "no"
        },
        "$:/config/OfficialPluginLibrary": {
            "title": "$:/config/OfficialPluginLibrary",
            "tags": "$:/tags/PluginLibrary",
            "url": "http://tiddlywiki.com/library/v5.1.14/index.html",
            "caption": "{{$:/language/OfficialPluginLibrary}}",
            "text": "{{$:/language/OfficialPluginLibrary/Hint}}\n"
        },
        "$:/config/Navigation/openLinkFromInsideRiver": {
            "title": "$:/config/Navigation/openLinkFromInsideRiver",
            "text": "below"
        },
        "$:/config/Navigation/openLinkFromOutsideRiver": {
            "title": "$:/config/Navigation/openLinkFromOutsideRiver",
            "text": "top"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all",
            "text": "hide"
        },
        "$:/config/Performance/Instrumentation": {
            "title": "$:/config/Performance/Instrumentation",
            "text": "no"
        },
        "$:/config/SaveWikiButton/Template": {
            "title": "$:/config/SaveWikiButton/Template",
            "text": "$:/core/save/all"
        },
        "$:/config/SaverFilter": {
            "title": "$:/config/SaverFilter",
            "text": "[all[]] -[[$:/HistoryList]] -[[$:/StoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[[$:/UploadName]] -[prefix[$:/state/]] -[prefix[$:/temp/]]"
        },
        "$:/config/Search/AutoFocus": {
            "title": "$:/config/Search/AutoFocus",
            "text": "true"
        },
        "$:/config/Search/MinLength": {
            "title": "$:/config/Search/MinLength",
            "text": "3"
        },
        "$:/config/SearchResults/Default": {
            "title": "$:/config/SearchResults/Default",
            "text": "$:/core/ui/DefaultSearchResultList"
        },
        "$:/config/ShortcutInfo/bold": {
            "title": "$:/config/ShortcutInfo/bold",
            "text": "{{$:/language/Buttons/Bold/Hint}}"
        },
        "$:/config/ShortcutInfo/cancel-edit-tiddler": {
            "title": "$:/config/ShortcutInfo/cancel-edit-tiddler",
            "text": "{{$:/language/Buttons/Cancel/Hint}}"
        },
        "$:/config/ShortcutInfo/excise": {
            "title": "$:/config/ShortcutInfo/excise",
            "text": "{{$:/language/Buttons/Excise/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-1": {
            "title": "$:/config/ShortcutInfo/heading-1",
            "text": "{{$:/language/Buttons/Heading1/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-2": {
            "title": "$:/config/ShortcutInfo/heading-2",
            "text": "{{$:/language/Buttons/Heading2/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-3": {
            "title": "$:/config/ShortcutInfo/heading-3",
            "text": "{{$:/language/Buttons/Heading3/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-4": {
            "title": "$:/config/ShortcutInfo/heading-4",
            "text": "{{$:/language/Buttons/Heading4/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-5": {
            "title": "$:/config/ShortcutInfo/heading-5",
            "text": "{{$:/language/Buttons/Heading5/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-6": {
            "title": "$:/config/ShortcutInfo/heading-6",
            "text": "{{$:/language/Buttons/Heading6/Hint}}"
        },
        "$:/config/ShortcutInfo/italic": {
            "title": "$:/config/ShortcutInfo/italic",
            "text": "{{$:/language/Buttons/Italic/Hint}}"
        },
        "$:/config/ShortcutInfo/link": {
            "title": "$:/config/ShortcutInfo/link",
            "text": "{{$:/language/Buttons/Link/Hint}}"
        },
        "$:/config/ShortcutInfo/list-bullet": {
            "title": "$:/config/ShortcutInfo/list-bullet",
            "text": "{{$:/language/Buttons/ListBullet/Hint}}"
        },
        "$:/config/ShortcutInfo/list-number": {
            "title": "$:/config/ShortcutInfo/list-number",
            "text": "{{$:/language/Buttons/ListNumber/Hint}}"
        },
        "$:/config/ShortcutInfo/mono-block": {
            "title": "$:/config/ShortcutInfo/mono-block",
            "text": "{{$:/language/Buttons/MonoBlock/Hint}}"
        },
        "$:/config/ShortcutInfo/mono-line": {
            "title": "$:/config/ShortcutInfo/mono-line",
            "text": "{{$:/language/Buttons/MonoLine/Hint}}"
        },
        "$:/config/ShortcutInfo/picture": {
            "title": "$:/config/ShortcutInfo/picture",
            "text": "{{$:/language/Buttons/Picture/Hint}}"
        },
        "$:/config/ShortcutInfo/preview": {
            "title": "$:/config/ShortcutInfo/preview",
            "text": "{{$:/language/Buttons/Preview/Hint}}"
        },
        "$:/config/ShortcutInfo/quote": {
            "title": "$:/config/ShortcutInfo/quote",
            "text": "{{$:/language/Buttons/Quote/Hint}}"
        },
        "$:/config/ShortcutInfo/save-tiddler": {
            "title": "$:/config/ShortcutInfo/save-tiddler",
            "text": "{{$:/language/Buttons/Save/Hint}}"
        },
        "$:/config/ShortcutInfo/stamp": {
            "title": "$:/config/ShortcutInfo/stamp",
            "text": "{{$:/language/Buttons/Stamp/Hint}}"
        },
        "$:/config/ShortcutInfo/strikethrough": {
            "title": "$:/config/ShortcutInfo/strikethrough",
            "text": "{{$:/language/Buttons/Strikethrough/Hint}}"
        },
        "$:/config/ShortcutInfo/subscript": {
            "title": "$:/config/ShortcutInfo/subscript",
            "text": "{{$:/language/Buttons/Subscript/Hint}}"
        },
        "$:/config/ShortcutInfo/superscript": {
            "title": "$:/config/ShortcutInfo/superscript",
            "text": "{{$:/language/Buttons/Superscript/Hint}}"
        },
        "$:/config/ShortcutInfo/underline": {
            "title": "$:/config/ShortcutInfo/underline",
            "text": "{{$:/language/Buttons/Underline/Hint}}"
        },
        "$:/config/SyncFilter": {
            "title": "$:/config/SyncFilter",
            "text": "[is[tiddler]] -[[$:/HistoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[prefix[$:/status/]] -[prefix[$:/state/]] -[prefix[$:/temp/]]"
        },
        "$:/config/TextEditor/EditorHeight/Height": {
            "title": "$:/config/TextEditor/EditorHeight/Height",
            "text": "400px"
        },
        "$:/config/TextEditor/EditorHeight/Mode": {
            "title": "$:/config/TextEditor/EditorHeight/Mode",
            "text": "auto"
        },
        "$:/config/TiddlerInfo/Default": {
            "title": "$:/config/TiddlerInfo/Default",
            "text": "$:/core/ui/TiddlerInfo/Fields"
        },
        "$:/config/TiddlerInfo/Mode": {
            "title": "$:/config/TiddlerInfo/Mode",
            "text": "popup"
        },
        "$:/config/Tiddlers/TitleLinks": {
            "title": "$:/config/Tiddlers/TitleLinks",
            "text": "no"
        },
        "$:/config/Toolbar/ButtonClass": {
            "title": "$:/config/Toolbar/ButtonClass",
            "text": "tc-btn-invisible"
        },
        "$:/config/Toolbar/Icons": {
            "title": "$:/config/Toolbar/Icons",
            "text": "yes"
        },
        "$:/config/Toolbar/Text": {
            "title": "$:/config/Toolbar/Text",
            "text": "no"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions",
            "text": "show"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others",
            "text": "hide"
        },
        "$:/config/shortcuts-mac/bold": {
            "title": "$:/config/shortcuts-mac/bold",
            "text": "meta-B"
        },
        "$:/config/shortcuts-mac/italic": {
            "title": "$:/config/shortcuts-mac/italic",
            "text": "meta-I"
        },
        "$:/config/shortcuts-mac/underline": {
            "title": "$:/config/shortcuts-mac/underline",
            "text": "meta-U"
        },
        "$:/config/shortcuts-not-mac/bold": {
            "title": "$:/config/shortcuts-not-mac/bold",
            "text": "ctrl-B"
        },
        "$:/config/shortcuts-not-mac/italic": {
            "title": "$:/config/shortcuts-not-mac/italic",
            "text": "ctrl-I"
        },
        "$:/config/shortcuts-not-mac/underline": {
            "title": "$:/config/shortcuts-not-mac/underline",
            "text": "ctrl-U"
        },
        "$:/config/shortcuts/cancel-edit-tiddler": {
            "title": "$:/config/shortcuts/cancel-edit-tiddler",
            "text": "escape"
        },
        "$:/config/shortcuts/excise": {
            "title": "$:/config/shortcuts/excise",
            "text": "ctrl-E"
        },
        "$:/config/shortcuts/heading-1": {
            "title": "$:/config/shortcuts/heading-1",
            "text": "ctrl-1"
        },
        "$:/config/shortcuts/heading-2": {
            "title": "$:/config/shortcuts/heading-2",
            "text": "ctrl-2"
        },
        "$:/config/shortcuts/heading-3": {
            "title": "$:/config/shortcuts/heading-3",
            "text": "ctrl-3"
        },
        "$:/config/shortcuts/heading-4": {
            "title": "$:/config/shortcuts/heading-4",
            "text": "ctrl-4"
        },
        "$:/config/shortcuts/heading-5": {
            "title": "$:/config/shortcuts/heading-5",
            "text": "ctrl-5"
        },
        "$:/config/shortcuts/heading-6": {
            "title": "$:/config/shortcuts/heading-6",
            "text": "ctrl-6"
        },
        "$:/config/shortcuts/link": {
            "title": "$:/config/shortcuts/link",
            "text": "ctrl-L"
        },
        "$:/config/shortcuts/list-bullet": {
            "title": "$:/config/shortcuts/list-bullet",
            "text": "ctrl-shift-L"
        },
        "$:/config/shortcuts/list-number": {
            "title": "$:/config/shortcuts/list-number",
            "text": "ctrl-shift-N"
        },
        "$:/config/shortcuts/mono-block": {
            "title": "$:/config/shortcuts/mono-block",
            "text": "ctrl-shift-M"
        },
        "$:/config/shortcuts/mono-line": {
            "title": "$:/config/shortcuts/mono-line",
            "text": "ctrl-M"
        },
        "$:/config/shortcuts/picture": {
            "title": "$:/config/shortcuts/picture",
            "text": "ctrl-shift-I"
        },
        "$:/config/shortcuts/preview": {
            "title": "$:/config/shortcuts/preview",
            "text": "alt-P"
        },
        "$:/config/shortcuts/quote": {
            "title": "$:/config/shortcuts/quote",
            "text": "ctrl-Q"
        },
        "$:/config/shortcuts/save-tiddler": {
            "title": "$:/config/shortcuts/save-tiddler",
            "text": "ctrl+enter"
        },
        "$:/config/shortcuts/stamp": {
            "title": "$:/config/shortcuts/stamp",
            "text": "ctrl-S"
        },
        "$:/config/shortcuts/strikethrough": {
            "title": "$:/config/shortcuts/strikethrough",
            "text": "ctrl-T"
        },
        "$:/config/shortcuts/subscript": {
            "title": "$:/config/shortcuts/subscript",
            "text": "ctrl-shift-B"
        },
        "$:/config/shortcuts/superscript": {
            "title": "$:/config/shortcuts/superscript",
            "text": "ctrl-shift-P"
        },
        "$:/config/WikiParserRules/Inline/wikilink": {
            "title": "$:/config/WikiParserRules/Inline/wikilink",
            "text": "enable"
        },
        "$:/snippets/currpalettepreview": {
            "title": "$:/snippets/currpalettepreview",
            "text": "\\define swatchStyle()\nbackground-color: $(swatchColour)$;\n\\end\n\\define swatch(colour)\n<$set name=\"swatchColour\" value={{##$colour$}}>\n<div class=\"tc-swatch\" style=<<swatchStyle>>/>\n</$set>\n\\end\n<div class=\"tc-swatches-horiz\">\n<<swatch foreground>>\n<<swatch background>>\n<<swatch muted-foreground>>\n<<swatch primary>>\n<<swatch page-background>>\n<<swatch tab-background>>\n<<swatch tiddler-info-background>>\n</div>\n"
        },
        "$:/snippets/download-wiki-button": {
            "title": "$:/snippets/download-wiki-button",
            "text": "\\define lingo-base() $:/language/ControlPanel/Tools/Download/\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-download-file\" $param=\"$:/core/save/all\" filename=\"index.html\"/>\n<<lingo Full/Caption>> {{$:/core/images/save-button}}\n</$button>"
        },
        "$:/language": {
            "title": "$:/language",
            "text": "$:/languages/en-GB"
        },
        "$:/snippets/languageswitcher": {
            "title": "$:/snippets/languageswitcher",
            "text": "{{$:/language/ControlPanel/Basics/Language/Prompt}} <$select tiddler=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[description]]\">\n<option value=<<currentTiddler>>><$view field=\"description\"><$view field=\"name\"><$view field=\"title\"/></$view></$view></option>\n</$list>\n</$select>"
        },
        "$:/core/macros/CSS": {
            "title": "$:/core/macros/CSS",
            "tags": "$:/tags/Macro",
            "text": "\\define colour(name)\n<$transclude tiddler={{$:/palette}} index=\"$name$\"><$transclude tiddler=\"$:/palettes/Vanilla\" index=\"$name$\"/></$transclude>\n\\end\n\n\\define color(name)\n<<colour $name$>>\n\\end\n\n\\define box-shadow(shadow)\n``\n  -webkit-box-shadow: $shadow$;\n     -moz-box-shadow: $shadow$;\n          box-shadow: $shadow$;\n``\n\\end\n\n\\define filter(filter)\n``\n  -webkit-filter: $filter$;\n     -moz-filter: $filter$;\n          filter: $filter$;\n``\n\\end\n\n\\define transition(transition)\n``\n  -webkit-transition: $transition$;\n     -moz-transition: $transition$;\n          transition: $transition$;\n``\n\\end\n\n\\define transform-origin(origin)\n``\n  -webkit-transform-origin: $origin$;\n     -moz-transform-origin: $origin$;\n          transform-origin: $origin$;\n``\n\\end\n\n\\define background-linear-gradient(gradient)\n``\nbackground-image: linear-gradient($gradient$);\nbackground-image: -o-linear-gradient($gradient$);\nbackground-image: -moz-linear-gradient($gradient$);\nbackground-image: -webkit-linear-gradient($gradient$);\nbackground-image: -ms-linear-gradient($gradient$);\n``\n\\end\n\n\\define column-count(columns)\n``\n-moz-column-count: $columns$;\n-webkit-column-count: $columns$;\ncolumn-count: $columns$;\n``\n\\end\n\n\\define datauri(title)\n<$macrocall $name=\"makedatauri\" type={{$title$!!type}} text={{$title$}}/>\n\\end\n\n\\define if-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-no-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n"
        },
        "$:/core/macros/colour-picker": {
            "title": "$:/core/macros/colour-picker",
            "tags": "$:/tags/Macro",
            "text": "\\define colour-picker-update-recent()\n<$action-listops\n\t$tiddler=\"$:/config/ColourPicker/Recent\"\n\t$subfilter=\"$(colour-picker-value)$ [list[$:/config/ColourPicker/Recent]remove[$(colour-picker-value)$]] +[limit[8]]\"\n/>\n\\end\n\n\\define colour-picker-inner(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(colour-picker-value)$\"\"\">\n\n$(colour-picker-update-recent)$\n\n$actions$\n\n<div style=\"background-color: $(colour-picker-value)$; width: 100%; height: 100%; border-radius: 50%;\"/>\n\n</$button>\n\\end\n\n\\define colour-picker-recent-inner(actions)\n<$set name=\"colour-picker-value\" value=\"$(recentColour)$\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\\end\n\n\\define colour-picker-recent(actions)\n{{$:/language/ColourPicker/Recent}} <$list filter=\"[list[$:/config/ColourPicker/Recent]]\" variable=\"recentColour\">\n<$macrocall $name=\"colour-picker-recent-inner\" actions=\"\"\"$actions$\"\"\"/></$list>\n\\end\n\n\\define colour-picker(actions)\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker-recent\" actions=\"\"\"$actions$\"\"\"/>\n\n---\n\n<$list filter=\"LightPink Pink Crimson LavenderBlush PaleVioletRed HotPink DeepPink MediumVioletRed Orchid Thistle Plum Violet Magenta Fuchsia DarkMagenta Purple MediumOrchid DarkViolet DarkOrchid Indigo BlueViolet MediumPurple MediumSlateBlue SlateBlue DarkSlateBlue Lavender GhostWhite Blue MediumBlue MidnightBlue DarkBlue Navy RoyalBlue CornflowerBlue LightSteelBlue LightSlateGrey SlateGrey DodgerBlue AliceBlue SteelBlue LightSkyBlue SkyBlue DeepSkyBlue LightBlue PowderBlue CadetBlue Azure LightCyan PaleTurquoise Cyan Aqua DarkTurquoise DarkSlateGrey DarkCyan Teal MediumTurquoise LightSeaGreen Turquoise Aquamarine MediumAquamarine MediumSpringGreen MintCream SpringGreen MediumSeaGreen SeaGreen Honeydew LightGreen PaleGreen DarkSeaGreen LimeGreen Lime ForestGreen Green DarkGreen Chartreuse LawnGreen GreenYellow DarkOliveGreen YellowGreen OliveDrab Beige LightGoldenrodYellow Ivory LightYellow Yellow Olive DarkKhaki LemonChiffon PaleGoldenrod Khaki Gold Cornsilk Goldenrod DarkGoldenrod FloralWhite OldLace Wheat Moccasin Orange PapayaWhip BlanchedAlmond NavajoWhite AntiqueWhite Tan BurlyWood Bisque DarkOrange Linen Peru PeachPuff SandyBrown Chocolate SaddleBrown Seashell Sienna LightSalmon Coral OrangeRed DarkSalmon Tomato MistyRose Salmon Snow LightCoral RosyBrown IndianRed Red Brown FireBrick DarkRed Maroon White WhiteSmoke Gainsboro LightGrey Silver DarkGrey Grey DimGrey Black\" variable=\"colour-picker-value\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\n---\n\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" tag=\"input\" default=\"\" placeholder=\"\"/> \n<$edit-text tiddler=\"$:/config/ColourPicker/New\" type=\"color\" tag=\"input\"/>\n<$set name=\"colour-picker-value\" value={{$:/config/ColourPicker/New}}>\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\n</div>\n\n\\end\n"
        },
        "$:/core/macros/export": {
            "title": "$:/core/macros/export",
            "tags": "$:/tags/Macro",
            "text": "\\define exportButtonFilename(baseFilename)\n$baseFilename$$(extension)$\n\\end\n\n\\define exportButton(exportFilter:\"[!is[system]sort[title]]\",lingoBase,baseFilename:\"tiddlers\")\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/export\">> tooltip={{$lingoBase$Hint}} aria-label={{$lingoBase$Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/export-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$lingoBase$Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/export\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Exporter]]\">\n<$set name=\"extension\" value={{!!extension}}>\n<$button class=\"tc-btn-invisible\">\n<$action-sendmessage $message=\"tm-download-file\" $param=<<currentTiddler>> exportFilter=\"\"\"$exportFilter$\"\"\" filename=<<exportButtonFilename \"\"\"$baseFilename$\"\"\">>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/export\">>/>\n<$transclude field=\"description\"/>\n</$button>\n</$set>\n</$list>\n</div>\n</$reveal>\n\\end\n"
        },
        "$:/core/macros/image-picker": {
            "title": "$:/core/macros/image-picker",
            "tags": "$:/tags/Macro",
            "text": "\\define image-picker-thumbnail(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(imageTitle)$\"\"\">\n$actions$\n<$transclude tiddler=<<imageTitle>>/>\n</$button>\n\\end\n\n\\define image-picker-list(filter,actions)\n<$list filter=\"\"\"$filter$\"\"\" variable=\"imageTitle\">\n<$macrocall $name=\"image-picker-thumbnail\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\\end\n\n\\define image-picker(actions,filter:\"[all[shadows+tiddlers]is[image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]\")\n<div class=\"tc-image-chooser\">\n<$vars state-system=<<qualify \"$:/state/image-picker/system\">>>\n<$checkbox tiddler=<<state-system>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"hide\">\n{{$:/language/SystemTiddlers/Include/Prompt}}\n</$checkbox>\n<$reveal state=<<state-system>> type=\"match\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$ +[!is[system]]\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n<$reveal state=<<state-system>> type=\"nomatch\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n</$vars>\n</div>\n\\end\n\n\\define image-picker-include-tagged-images(actions)\n<$macrocall $name=\"image-picker\" filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n"
        },
        "$:/core/macros/lingo": {
            "title": "$:/core/macros/lingo",
            "tags": "$:/tags/Macro",
            "text": "\\define lingo-base()\n$:/language/\n\\end\n\n\\define lingo(title)\n{{$(lingo-base)$$title$}}\n\\end\n"
        },
        "$:/core/macros/list": {
            "title": "$:/core/macros/list",
            "tags": "$:/tags/Macro",
            "text": "\\define list-links(filter,type:\"ul\",subtype:\"li\",class:\"\")\n<$type$ class=\"$class$\">\n<$list filter=\"$filter$\">\n<$subtype$>\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$subtype$>\n</$list>\n</$type$>\n\\end\n\n\\define list-links-draggable-drop-actions()\n<$action-listops $tiddler=<<targetTiddler>> $field=<<targetField>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define list-links-draggable(tiddler,field:\"list\",type:\"ul\",subtype:\"li\",class:\"\",itemTemplate)\n<$vars targetTiddler=\"\"\"$tiddler$\"\"\" targetField=\"\"\"$field$\"\"\">\n<$type$ class=\"$class$\">\n<$list filter=\"[list[$tiddler$!!$field$]]\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"\"\"$subtype$\"\"\">\n<div class=\"tc-droppable-placeholder\">\n&nbsp;\n</div>\n<div>\n<$link to={{!!title}}>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$transclude>\n</$link>\n</div>\n</$droppable>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"\"\"$subtype$\"\"\">\n<div class=\"tc-droppable-placeholder\">\n&nbsp;\n</div>\n<div>\n&nbsp;\n</div>\n</$droppable>\n</$tiddler>\n</$type$>\n</$vars>\n\\end\n\n\\define list-tagged-draggable-drop-actions()\n<!-- Save the current ordering of the tiddlers with this tag -->\n<$set name=\"order\" filter=\"[<tag>tagging[]]\">\n<!-- Remove any list-after or list-before fields from the tiddlers with this tag -->\n<$list filter=\"[<tag>tagging[]]\">\n<$action-deletefield $field=\"list-before\"/>\n<$action-deletefield $field=\"list-after\"/>\n</$list>\n<!-- Assign the list field of the tag with the current ordering -->\n<$action-setfield $tiddler=<<tag>> $field=\"list\" $value=<<order>>/>\n<!-- Add the newly inserted item to the list -->\n<$action-listops $tiddler=<<tag>> $field=\"list\" $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n<!-- Make sure the newly added item has the right tag -->\n<$action-listops $tiddler=<<actionTiddler>> $tags=\"[<tag>]\"/>\n</$set>\n\\end\n\n\\define list-tagged-draggable(tag,itemTemplate,elementTag:\"div\")\n<$set name=\"tag\" value=\"\"\"$tag$\"\"\">\n<$list filter=\"[<tag>tagging[]]\">\n<$elementTag$ class=\"tc-menu-list-item\">\n<$droppable actions=<<list-tagged-draggable-drop-actions>>>\n<$elementTag$ class=\"tc-droppable-placeholder\">\n&nbsp;\n</$elementTag$>\n<$elementTag$>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</$transclude>\n</$elementTag$>\n</$droppable>\n</$elementTag$>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<list-tagged-draggable-drop-actions>>>\n<$elementTag$ class=\"tc-droppable-placeholder\">\n&nbsp;\n</$elementTag$>\n<$elementTag$ style=\"height:0.5em;\">\n</$elementTag$>\n</$droppable>\n</$tiddler>\n</$set>\n\\end\n"
        },
        "$:/core/macros/tabs": {
            "title": "$:/core/macros/tabs",
            "tags": "$:/tags/Macro",
            "text": "\\define tabs(tabsList,default,state:\"$:/state/tab\",class,template)\n<div class=\"tc-tab-set $class$\">\n<div class=\"tc-tab-buttons $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\"><$set name=\"save-currentTiddler\" value=<<currentTiddler>>><$tiddler tiddler=<<currentTab>>><$button set=<<qualify \"$state$\">> setTo=<<currentTab>> default=\"$default$\" selectedClass=\"tc-tab-selected\" tooltip={{!!tooltip}}>\n<$tiddler tiddler=<<save-currentTiddler>>>\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude tiddler=<<currentTab>> field=\"caption\">\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$transclude>\n</$set></$tiddler></$button></$tiddler></$set></$list>\n</div>\n<div class=\"tc-tab-divider $class$\"/>\n<div class=\"tc-tab-content $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\">\n\n<$reveal type=\"match\" state=<<qualify \"$state$\">> text=<<currentTab>> default=\"$default$\">\n\n<$transclude tiddler=\"$template$\" mode=\"block\">\n\n<$transclude tiddler=<<currentTab>> mode=\"block\"/>\n\n</$transclude>\n\n</$reveal>\n\n</$list>\n</div>\n</div>\n\\end\n"
        },
        "$:/core/macros/tag-picker": {
            "title": "$:/core/macros/tag-picker",
            "tags": "$:/tags/Macro",
            "text": "\\define add-tag-actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{$:/temp/NewTagName}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n\\end\n\n\\define tag-button()\n<$button class=\"tc-btn-invisible\" tag=\"a\">\n$(actions)$\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$button>\n\\end\n\n\\define tag-picker(actions)\n<$set name=\"actions\" value=\"\"\"$actions$\"\"\">\n<div class=\"tc-edit-add-tag\">\n<span class=\"tc-add-tag-name\">\n<$keyboard key=\"ENTER\" actions=<<add-tag-actions>>>\n<$edit-text tiddler=\"$:/temp/NewTagName\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}} focusPopup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-edit-texteditor tc-popup-handle\"/>\n</$keyboard>\n</span> <$button popup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <span class=\"tc-add-tag-button\">\n<$set name=\"tag\" value={{$:/temp/NewTagName}}>\n<$button set=\"$:/temp/NewTagName\" setTo=\"\" class=\"\">\n$actions$\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n{{$:/language/EditTemplate/Tags/Add/Button}}\n</$button>\n</$set>\n</span>\n</div>\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/popup/tags-auto-complete\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown\">\n<$list filter=\"[tags[]!is[system]search:title{$:/temp/NewTagName}sort[]]\" variable=\"tag\">\n<<tag-button>>\n</$list>\n<hr>\n<$list filter=\"[tags[]is[system]search:title{$:/temp/NewTagName}sort[]]\" variable=\"tag\">\n<<tag-button>>\n</$list>\n</div>\n</$reveal>\n</div>\n</$set>\n\\end\n"
        },
        "$:/core/macros/tag": {
            "title": "$:/core/macros/tag",
            "tags": "$:/tags/Macro",
            "text": "\\define tag-pill-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-pill-inner(tag,icon,colour,fallbackTarget,colourA,colourB,element-tag,element-attributes,actions)\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<$element-tag$ $element-attributes$ class=\"tc-tag-label tc-btn-invisible\" style=<<tag-pill-styles>>>\n$actions$<$transclude tiddler=\"\"\"$icon$\"\"\"/> <$view tiddler=\"\"\"$tag$\"\"\" field=\"title\" format=\"text\" />\n</$element-tag$>\n</$vars>\n\\end\n\n\\define tag-pill-body(tag,icon,colour,palette,element-tag,element-attributes,actions)\n<$macrocall $name=\"tag-pill-inner\" tag=\"\"\"$tag$\"\"\" icon=\"\"\"$icon$\"\"\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n\n\\define tag-pill(tag,element-tag:\"span\",element-attributes:\"\",actions:\"\")\n<span class=\"tc-tag-list-item\">\n<$macrocall $name=\"tag-pill-body\" tag=\"\"\"$tag$\"\"\" icon={{$tag$!!icon}} colour={{$tag$!!color}} palette={{$:/palette}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</span>\n\\end\n\n\\define tag(tag)\n{{$tag$||$:/core/ui/TagTemplate}}\n\\end\n"
        },
        "$:/core/macros/thumbnails": {
            "title": "$:/core/macros/thumbnails",
            "tags": "$:/tags/Macro",
            "text": "\\define thumbnail(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<$link to=\"\"\"$link$\"\"\"><div class=\"tc-thumbnail-wrapper\">\n<div class=\"tc-thumbnail-image\" style=\"width:$width$px;height:$height$px;\"><$reveal type=\"nomatch\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" style=\"width:$width$px;height:$height$px;\">\n[img[$image$]]\n</$reveal><$reveal type=\"match\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" class=\"tc-thumbnail-background\" style=\"width:$width$px;height:$height$px;background-color:$background-color$;\"></$reveal></div><div class=\"tc-thumbnail-icon\" style=\"fill:$color$;color:$color$;\">\n$icon$\n</div><div class=\"tc-thumbnail-caption\">\n$caption$\n</div>\n</div></$link>\n\\end\n\n\\define thumbnail-right(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<div class=\"tc-thumbnail-right-wrapper\"><<thumbnail \"\"\"$link$\"\"\" \"\"\"$icon$\"\"\" \"\"\"$color$\"\"\" \"\"\"$background-color$\"\"\" \"\"\"$image$\"\"\" \"\"\"$caption$\"\"\" \"\"\"$width$\"\"\" \"\"\"$height$\"\"\">></div>\n\\end\n\n\\define list-thumbnails(filter,width:\"280\",height:\"157\")\n<$list filter=\"\"\"$filter$\"\"\"><$macrocall $name=\"thumbnail\" link={{!!link}} icon={{!!icon}} color={{!!color}} background-color={{!!background-color}} image={{!!image}} caption={{!!caption}} width=\"\"\"$width$\"\"\" height=\"\"\"$height$\"\"\"/></$list>\n\\end\n"
        },
        "$:/core/macros/timeline": {
            "created": "20141212105914482",
            "modified": "20141212110330815",
            "tags": "$:/tags/Macro",
            "title": "$:/core/macros/timeline",
            "type": "text/vnd.tiddlywiki",
            "text": "\\define timeline-title()\n<!-- Override this macro with a global macro \n     of the same name if you need to change \n     how titles are displayed on the timeline \n     -->\n<$view field=\"title\"/>\n\\end\n\\define timeline(limit:\"100\",format:\"DDth MMM YYYY\",subfilter:\"\",dateField:\"modified\")\n<div class=\"tc-timeline\">\n<$list filter=\"[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]\">\n<div class=\"tc-menu-list-item\">\n<$view field=\"$dateField$\" format=\"date\" template=\"$format$\"/>\n<$list filter=\"[sameday:$dateField${!!$dateField$}!is[system]$subfilter$!sort[$dateField$]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}>\n<<timeline-title>>\n</$link>\n</div>\n</$list>\n</div>\n</$list>\n</div>\n\\end\n"
        },
        "$:/core/macros/toc": {
            "title": "$:/core/macros/toc",
            "tags": "$:/tags/Macro",
            "text": "\\define toc-caption()\n<$set name=\"tv-wikilinks\" value=\"no\">\n  <$transclude field=\"caption\">\n    <$view field=\"title\"/>\n  </$transclude>\n</$set>\n\\end\n\n\\define toc-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<ol class=\"tc-toc\">\n  <$list filter=\"\"\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$] $exclude$\"\"\">\n    <$vars item=<<currentTiddler>> path=\"\"\"$path$/$tag$\"\"\" excluded=\"\"\"$exclude$ -[[$tag$]]\"\"\">\n      <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\">\n        <li class=<<toc-item-class>>>\n          <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=\"<$link><$view field='caption'><$view field='title'/></$view></$link>\">\n            <<toc-caption>>\n          </$list>\n          <$macrocall $name=\"toc-body\" tag=<<item>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=<<excluded>> path=<<path>>/>\n        </li>\n      </$set>\n    </$vars>\n  </$list>\n</ol>\n\\end\n\n\\define toc(tag,sort:\"\",itemClassFilter:\" \")\n<<toc-body tag:\"\"\"$tag$\"\"\" sort:\"\"\"$sort$\"\"\" itemClassFilter:\"\"\"$itemClassFilter$\"\"\">>\n\\end\n\n\\define toc-linked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc$path$-$(currentTiddler)$\"\"\">>>\n  <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\">\n    <li class=<<toc-item-class>>>\n    <$link>\n      <$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n        <$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n          {{$:/core/images/right-arrow}}\n        </$button>\n      </$reveal>\n      <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n        <$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n          {{$:/core/images/down-arrow}}\n        </$button>\n      </$reveal>\n      <<toc-caption>>\n    </$link>\n    <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n      <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=\"\"\"$exclude$\"\"\" path=\"\"\"$path$\"\"\"/>\n    </$reveal>\n    </li>\n  </$set>\n</$set>\n\\end\n\n\\define toc-unlinked-expandable-body(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<!-- helper function -->\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc$path$-$(currentTiddler)$\"\"\">>>\n  <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\">\n    <li class=<<toc-item-class>>>\n      <$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n        <$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n          {{$:/core/images/right-arrow}}\n          <<toc-caption>>\n        </$button>\n      </$reveal>\n      <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n        <$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n          {{$:/core/images/down-arrow}}\n          <<toc-caption>>\n        </$button>\n      </$reveal>\n      <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n        <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=\"\"\"$exclude$\"\"\" path=\"\"\"$path$\"\"\"/>\n      </$reveal>\n    </li>\n  </$set>\n</$set>\n\\end\n\n\\define toc-expandable-empty-message()\n<<toc-linked-expandable-body tag:\"\"\"$(tag)$\"\"\" sort:\"\"\"$(sort)$\"\"\" itemClassFilter:\"\"\"$(itemClassFilter)$\"\"\" exclude:\"\"\"$(excluded)$\"\"\" path:\"\"\"$(path)$\"\"\">>\n\\end\n\n\\define toc-expandable(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<$vars tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" excluded=\"\"\"$exclude$ -[[$tag$]]\"\"\" path=\"\"\"$path$/$tag$\"\"\">\n  <ol class=\"tc-toc toc-expandable\">\n    <$list filter=\"\"\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$] $exclude$\"\"\">\n      <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=<<toc-expandable-empty-message>> >\n        <$macrocall $name=\"toc-unlinked-expandable-body\" tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"itemClassFilter\"\"\" exclude=<<excluded>> path=<<path>> />\n      </$list>\n    </$list>\n  </ol>\n</$vars>\n\\end\n\n\\define toc-linked-selective-expandable-body(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc$path$-$(currentTiddler)$\"\"\">>>\n  <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\" >\n    <li class=<<toc-item-class>>>\n      <$link>\n          <$list filter=\"[all[current]tagging[]limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>\">\n          <$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n            <$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n              {{$:/core/images/right-arrow}}\n            </$button>\n          </$reveal>\n          <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n            <$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n              {{$:/core/images/down-arrow}}\n            </$button>\n          </$reveal>\n        </$list>\n        <<toc-caption>>\n      </$link>\n      <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n        <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=\"\"\"$exclude$\"\"\" path=\"\"\"$path$\"\"\"/>\n      </$reveal>\n    </li>\n  </$set>\n</$set>\n\\end\n\n\\define toc-unlinked-selective-expandable-body(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc$path$-$(currentTiddler)$\"\"\">>>\n  <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\">\n    <li class=<<toc-item-class>>>\n      <$list filter=\"[all[current]tagging[]limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button> <$view field='caption'><$view field='title'/></$view>\">\n        <$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n          <$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n            {{$:/core/images/right-arrow}}\n            <<toc-caption>>\n          </$button>\n        </$reveal>\n        <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n          <$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n            {{$:/core/images/down-arrow}}\n            <<toc-caption>>\n          </$button>\n        </$reveal>\n      </$list>\n      <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n        <$macrocall $name=\"\"\"toc-selective-expandable\"\"\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=\"\"\"$exclude$\"\"\" path=\"\"\"$path$\"\"\"/>\n      </$reveal>\n    </li>\n  </$set>\n</$set>\n\\end\n\n\\define toc-selective-expandable-empty-message()\n<<toc-linked-selective-expandable-body tag:\"\"\"$(tag)$\"\"\" sort:\"\"\"$(sort)$\"\"\" itemClassFilter:\"\"\"$(itemClassFilter)$\"\"\" exclude:\"\"\"$(excluded)$\"\"\" path:\"\"\"$(path)$\"\"\">>\n\\end\n\n\\define toc-selective-expandable(tag,sort:\"\",itemClassFilter,exclude,path)\n<$vars tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" excluded=\"\"\"$exclude$ -[[$tag$]]\"\"\" path=\"\"\"$path$/$tag$\"\"\">\n  <ol class=\"tc-toc toc-selective-expandable\">\n    <$list filter=\"\"\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$] $exclude$\"\"\">\n      <$list filter=\"[all[current]toc-link[no]]\" variable=\"ignore\" emptyMessage=<<toc-selective-expandable-empty-message>> >\n        <$macrocall $name=toc-unlinked-selective-expandable-body tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=<<excluded>> path=<<path>> >\n      </$list>\n    </$list>\n  </ol>\n</$vars>\n\\end\n\n\\define toc-tabbed-selected-item-filter(selectedTiddler)\n[all[current]field:title{$selectedTiddler$}]\n\\end\n\n\\define toc-tabbed-external-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$tiddler tiddler={{$selectedTiddler$}}>\n  <div class=\"tc-tabbed-table-of-contents\">\n    <$linkcatcher to=\"$selectedTiddler$\">\n      <div class=\"tc-table-of-contents\">\n        <$macrocall $name=\"toc-selective-expandable\" tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=<<toc-tabbed-selected-item-filter selectedTiddler:\"\"\"$selectedTiddler$\"\"\">>/>\n      </div>\n    </$linkcatcher>\n    <div class=\"tc-tabbed-table-of-contents-content\">\n      <$reveal state=\"\"\"$selectedTiddler$\"\"\" type=\"nomatch\" text=\"\">\n        <$transclude mode=\"block\" tiddler=\"$template$\">\n          <h1><<toc-caption>></h1>\n          <$transclude mode=\"block\">$missingText$</$transclude>\n        </$transclude>\n      </$reveal>\n      <$reveal state=\"\"\"$selectedTiddler$\"\"\" type=\"match\" text=\"\">\n        $unselectedText$\n      </$reveal>\n    </div>\n  </div>\n</$tiddler>\n\\end\n\n\\define toc-tabbed-internal-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$linkcatcher to=\"\"\"$selectedTiddler$\"\"\">\n  <$macrocall $name=\"toc-tabbed-external-nav\" tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" selectedTiddler=\"\"\"$selectedTiddler$\"\"\" unselectedText=\"\"\"$unselectedText$\"\"\" missingText=\"\"\"$missingText$\"\"\" template=\"\"\"$template$\"\"\"/>\n</$linkcatcher>\n\\end\n\n"
        },
        "$:/core/macros/translink": {
            "title": "$:/core/macros/translink",
            "tags": "$:/tags/Macro",
            "text": "\\define translink(title,mode:\"block\")\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: black; foreground; white;\">\n<$link to=\"\"\"$title$\"\"\">\n<$text text=\"\"\"$title$\"\"\"/>\n</$link>\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: white; foreground; black;\">\n<$transclude tiddler=\"\"\"$title$\"\"\" mode=\"$mode$\">\n\"<$text text=\"\"\"$title$\"\"\"/>\" is missing\n</$transclude>\n</div>\n</div>\n\\end\n"
        },
        "$:/snippets/minilanguageswitcher": {
            "title": "$:/snippets/minilanguageswitcher",
            "text": "<$select tiddler=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"description\"><$view field=\"name\"><$view field=\"title\"/></$view></$view></option>\n</$list>\n</$select>"
        },
        "$:/snippets/minithemeswitcher": {
            "title": "$:/snippets/minithemeswitcher",
            "text": "\\define lingo-base() $:/language/ControlPanel/Theme/\n<<lingo Prompt>> <$select tiddler=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"name\"><$view field=\"title\"/></$view></option>\n</$list>\n</$select>"
        },
        "$:/snippets/modules": {
            "title": "$:/snippets/modules",
            "text": "\\define describeModuleType(type)\n{{$:/language/Docs/ModuleTypes/$type$}}\n\\end\n<$list filter=\"[moduletypes[]]\">\n\n!! <$macrocall $name=\"currentTiddler\" $type=\"text/plain\" $output=\"text/plain\"/>\n\n<$macrocall $name=\"describeModuleType\" type=<<currentTiddler>>/>\n\n<ul><$list filter=\"[all[current]modules[]]\"><li><$link><<currentTiddler>></$link>\n</li>\n</$list>\n</ul>\n</$list>\n"
        },
        "$:/palette": {
            "title": "$:/palette",
            "text": "$:/palettes/Vanilla"
        },
        "$:/snippets/paletteeditor": {
            "title": "$:/snippets/paletteeditor",
            "text": "\\define lingo-base() $:/language/ControlPanel/Palette/Editor/\n\\define describePaletteColour(colour)\n<$transclude tiddler=\"$:/language/Docs/PaletteColours/$colour$\"><$text text=\"$colour$\"/></$transclude>\n\\end\n<$set name=\"currentTiddler\" value={{$:/palette}}>\n\n<<lingo Prompt>> <$link to={{$:/palette}}><$macrocall $name=\"currentTiddler\" $output=\"text/plain\"/></$link>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\" variable=\"listItem\">\n<<lingo Prompt/Modified>>\n<$button message=\"tm-delete-tiddler\" param={{$:/palette}}><<lingo Reset/Caption>></$button>\n</$list>\n\n<$list filter=\"[all[current]is[shadow]!is[tiddler]]\" variable=\"listItem\">\n<<lingo Clone/Prompt>>\n</$list>\n\n<$button message=\"tm-new-tiddler\" param={{$:/palette}}><<lingo Clone/Caption>></$button>\n\n<table>\n<tbody>\n<$list filter=\"[all[current]indexes[]]\" variable=\"colourName\">\n<tr>\n<td>\n''<$macrocall $name=\"describePaletteColour\" colour=<<colourName>>/>''<br/>\n<$macrocall $name=\"colourName\" $output=\"text/plain\"/>\n</td>\n<td>\n<$edit-text index=<<colourName>> tag=\"input\"/>\n<br>\n<$edit-text index=<<colourName>> type=\"color\" tag=\"input\"/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n</$set>\n"
        },
        "$:/snippets/palettepreview": {
            "title": "$:/snippets/palettepreview",
            "text": "<$set name=\"currentTiddler\" value={{$:/palette}}>\n<$transclude tiddler=\"$:/snippets/currpalettepreview\"/>\n</$set>\n"
        },
        "$:/snippets/paletteswitcher": {
            "title": "$:/snippets/paletteswitcher",
            "text": "\\define lingo-base() $:/language/ControlPanel/Palette/\n<div class=\"tc-prompt\">\n<<lingo Prompt>> <$view tiddler={{$:/palette}} field=\"name\"/>\n</div>\n\n<$linkcatcher to=\"$:/palette\">\n<div class=\"tc-chooser\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]sort[description]]\"><div class=\"tc-chooser-item\"><$link to={{!!title}}><div><$reveal state=\"$:/palette\" type=\"match\" text={{!!title}}>&bull;</$reveal><$reveal state=\"$:/palette\" type=\"nomatch\" text={{!!title}}>&nbsp;</$reveal> ''<$view field=\"name\" format=\"text\"/>'' - <$view field=\"description\" format=\"text\"/></div><$transclude tiddler=\"$:/snippets/currpalettepreview\"/></$link></div>\n</$list>\n</div>\n</$linkcatcher>"
        },
        "$:/temp/search": {
            "title": "$:/temp/search",
            "text": ""
        },
        "$:/tags/AdvancedSearch": {
            "title": "$:/tags/AdvancedSearch",
            "list": "[[$:/core/ui/AdvancedSearch/Standard]] [[$:/core/ui/AdvancedSearch/System]] [[$:/core/ui/AdvancedSearch/Shadows]] [[$:/core/ui/AdvancedSearch/Filter]]"
        },
        "$:/tags/AdvancedSearch/FilterButton": {
            "title": "$:/tags/AdvancedSearch/FilterButton",
            "list": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown $:/core/ui/AdvancedSearch/Filter/FilterButtons/clear $:/core/ui/AdvancedSearch/Filter/FilterButtons/export $:/core/ui/AdvancedSearch/Filter/FilterButtons/delete"
        },
        "$:/tags/ControlPanel": {
            "title": "$:/tags/ControlPanel",
            "list": "$:/core/ui/ControlPanel/Info $:/core/ui/ControlPanel/Appearance $:/core/ui/ControlPanel/Settings $:/core/ui/ControlPanel/Saving $:/core/ui/ControlPanel/Plugins $:/core/ui/ControlPanel/Tools $:/core/ui/ControlPanel/Internals"
        },
        "$:/tags/ControlPanel/Info": {
            "title": "$:/tags/ControlPanel/Info",
            "list": "$:/core/ui/ControlPanel/Basics $:/core/ui/ControlPanel/Advanced"
        },
        "$:/tags/ControlPanel/Plugins": {
            "title": "$:/tags/ControlPanel/Plugins",
            "list": "[[$:/core/ui/ControlPanel/Plugins/Installed]] [[$:/core/ui/ControlPanel/Plugins/Add]]"
        },
        "$:/tags/EditTemplate": {
            "title": "$:/tags/EditTemplate",
            "list": "[[$:/core/ui/EditTemplate/controls]] [[$:/core/ui/EditTemplate/title]] [[$:/core/ui/EditTemplate/tags]] [[$:/core/ui/EditTemplate/shadow]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/EditTemplate/body]] [[$:/core/ui/EditTemplate/type]] [[$:/core/ui/EditTemplate/fields]]"
        },
        "$:/tags/EditToolbar": {
            "title": "$:/tags/EditToolbar",
            "list": "[[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/cancel]] [[$:/core/ui/Buttons/save]]"
        },
        "$:/tags/EditorToolbar": {
            "title": "$:/tags/EditorToolbar",
            "list": "$:/core/ui/EditorToolbar/paint $:/core/ui/EditorToolbar/opacity $:/core/ui/EditorToolbar/line-width $:/core/ui/EditorToolbar/clear $:/core/ui/EditorToolbar/bold $:/core/ui/EditorToolbar/italic $:/core/ui/EditorToolbar/strikethrough $:/core/ui/EditorToolbar/underline $:/core/ui/EditorToolbar/superscript $:/core/ui/EditorToolbar/subscript $:/core/ui/EditorToolbar/mono-line $:/core/ui/EditorToolbar/mono-block $:/core/ui/EditorToolbar/quote $:/core/ui/EditorToolbar/list-bullet $:/core/ui/EditorToolbar/list-number $:/core/ui/EditorToolbar/heading-1 $:/core/ui/EditorToolbar/heading-2 $:/core/ui/EditorToolbar/heading-3 $:/core/ui/EditorToolbar/heading-4 $:/core/ui/EditorToolbar/heading-5 $:/core/ui/EditorToolbar/heading-6 $:/core/ui/EditorToolbar/link $:/core/ui/EditorToolbar/excise $:/core/ui/EditorToolbar/picture $:/core/ui/EditorToolbar/stamp $:/core/ui/EditorToolbar/size $:/core/ui/EditorToolbar/editor-height $:/core/ui/EditorToolbar/more $:/core/ui/EditorToolbar/preview $:/core/ui/EditorToolbar/preview-type"
        },
        "$:/tags/Manager/ItemMain": {
            "title": "$:/tags/Manager/ItemMain",
            "list": "$:/Manager/ItemMain/WikifiedText $:/Manager/ItemMain/RawText $:/Manager/ItemMain/Fields"
        },
        "$:/tags/Manager/ItemSidebar": {
            "title": "$:/tags/Manager/ItemSidebar",
            "list": "$:/Manager/ItemSidebar/Tags $:/Manager/ItemSidebar/Colour $:/Manager/ItemSidebar/Icon $:/Manager/ItemSidebar/Tools"
        },
        "$:/tags/MoreSideBar": {
            "title": "$:/tags/MoreSideBar",
            "list": "[[$:/core/ui/MoreSideBar/All]] [[$:/core/ui/MoreSideBar/Recent]] [[$:/core/ui/MoreSideBar/Tags]] [[$:/core/ui/MoreSideBar/Missing]] [[$:/core/ui/MoreSideBar/Drafts]] [[$:/core/ui/MoreSideBar/Orphans]] [[$:/core/ui/MoreSideBar/Types]] [[$:/core/ui/MoreSideBar/System]] [[$:/core/ui/MoreSideBar/Shadows]] [[$:/core/ui/MoreSideBar/Plugins]]",
            "text": ""
        },
        "$:/tags/PageControls": {
            "title": "$:/tags/PageControls",
            "list": "[[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/fold-all]] [[$:/core/ui/Buttons/unfold-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/new-journal]] [[$:/core/ui/Buttons/new-image]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/export-page]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/advanced-search]] [[$:/core/ui/Buttons/manager]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/palette]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/timestamp]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/print]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/refresh]] [[$:/core/ui/Buttons/more-page-actions]]"
        },
        "$:/tags/PageTemplate": {
            "title": "$:/tags/PageTemplate",
            "list": "[[$:/core/ui/PageTemplate/topleftbar]] [[$:/core/ui/PageTemplate/toprightbar]] [[$:/core/ui/PageTemplate/sidebar]] [[$:/core/ui/PageTemplate/story]] [[$:/core/ui/PageTemplate/alerts]]",
            "text": ""
        },
        "$:/tags/SideBar": {
            "title": "$:/tags/SideBar",
            "list": "[[$:/core/ui/SideBar/Open]] [[$:/core/ui/SideBar/Recent]] [[$:/core/ui/SideBar/Tools]] [[$:/core/ui/SideBar/More]]",
            "text": ""
        },
        "$:/tags/TiddlerInfo": {
            "title": "$:/tags/TiddlerInfo",
            "list": "[[$:/core/ui/TiddlerInfo/Tools]] [[$:/core/ui/TiddlerInfo/References]] [[$:/core/ui/TiddlerInfo/Tagging]] [[$:/core/ui/TiddlerInfo/List]] [[$:/core/ui/TiddlerInfo/Listed]] [[$:/core/ui/TiddlerInfo/Fields]]",
            "text": ""
        },
        "$:/tags/TiddlerInfo/Advanced": {
            "title": "$:/tags/TiddlerInfo/Advanced",
            "list": "[[$:/core/ui/TiddlerInfo/Advanced/ShadowInfo]] [[$:/core/ui/TiddlerInfo/Advanced/PluginInfo]]"
        },
        "$:/tags/ViewTemplate": {
            "title": "$:/tags/ViewTemplate",
            "list": "[[$:/core/ui/ViewTemplate/title]] [[$:/core/ui/ViewTemplate/unfold]] [[$:/core/ui/ViewTemplate/subtitle]] [[$:/core/ui/ViewTemplate/tags]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/ViewTemplate/body]]"
        },
        "$:/tags/ViewToolbar": {
            "title": "$:/tags/ViewToolbar",
            "list": "[[$:/core/ui/Buttons/more-tiddler-actions]] [[$:/core/ui/Buttons/info]] [[$:/core/ui/Buttons/new-here]] [[$:/core/ui/Buttons/new-journal-here]] [[$:/core/ui/Buttons/clone]] [[$:/core/ui/Buttons/export-tiddler]] [[$:/core/ui/Buttons/edit]] [[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/permalink]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/open-window]] [[$:/core/ui/Buttons/close-others]] [[$:/core/ui/Buttons/close]] [[$:/core/ui/Buttons/fold-others]] [[$:/core/ui/Buttons/fold]]"
        },
        "$:/snippets/themeswitcher": {
            "title": "$:/snippets/themeswitcher",
            "text": "\\define lingo-base() $:/language/ControlPanel/Theme/\n<<lingo Prompt>> <$view tiddler={{$:/theme}} field=\"name\"/>\n\n<$linkcatcher to=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\"><div><$reveal state=\"$:/theme\" type=\"match\" text={{!!title}}>&bull;</$reveal><$reveal state=\"$:/theme\" type=\"nomatch\" text={{!!title}}>&nbsp;</$reveal> <$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' <$view field=\"description\" format=\"text\"/></$link></div>\n</$list>\n</$linkcatcher>"
        },
        "$:/core/wiki/title": {
            "title": "$:/core/wiki/title",
            "type": "text/vnd.tiddlywiki",
            "text": "{{$:/SiteTitle}} --- {{$:/SiteSubtitle}}"
        },
        "$:/view": {
            "title": "$:/view",
            "text": "classic"
        },
        "$:/snippets/viewswitcher": {
            "title": "$:/snippets/viewswitcher",
            "text": "\\define lingo-base() $:/language/ControlPanel/StoryView/\n<<lingo Prompt>> <$select tiddler=\"$:/view\">\n<$list filter=\"[storyviews[]]\">\n<option><$view field=\"title\"/></option>\n</$list>\n</$select>"
        }
    }
}
/*\
title: $:/core/modules/parsers/wikiparser/rules/wikilink.js
type: application/javascript
module-type: wikirule

Wiki text inline rule for wiki links. For example:

```
AWikiLink
AnotherLink
~SuppressedLink
```

Precede a camel case word with `~` to prevent it from being recognised as a link.

\*/
(function(){

/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";

exports.name = "wikilink";
exports.types = {inline: true};

exports.init = function(parser) {
	this.parser = parser;
	// Regexp to match
	this.matchRegExp = new RegExp($tw.config.textPrimitives.unWikiLink + "?" + $tw.config.textPrimitives.wikiLink,"mg");
};

/*
Parse the most recent match
*/
exports.parse = function() {
	// Get the details of the match
	var linkText = this.match[0];
	// Move past the macro call
	this.parser.pos = this.matchRegExp.lastIndex;
	// If the link starts with the unwikilink character then just output it as plain text
	if(linkText.substr(0,1) === $tw.config.textPrimitives.unWikiLink) {
		return [{type: "text", text: linkText.substr(1)}];
	}
	// If the link has been preceded with a blocked letter then don't treat it as a link
	if(this.match.index > 0) {
		var preRegExp = new RegExp($tw.config.textPrimitives.blockPrefixLetters,"mg");
		preRegExp.lastIndex = this.match.index-1;
		var preMatch = preRegExp.exec(this.parser.source);
		if(preMatch && preMatch.index === this.match.index-1) {
			return [{type: "text", text: linkText}];
		}
	}
	return [{type: "text", text: linkText}];
	return [{
		type: "link",
		attributes: {
			to: {type: "string", value: linkText}
		},
		children: [{
			type: "text",
			text: linkText
		}]
	}];
};

})();
[[首页]]
UA-46774526-2
下列条目已被导入:

# [[国风 周南]]
no
$:/languages/zh-Hans
{
    "tiddlers": {
        "$:/language/Buttons/AdvancedSearch/Caption": {
            "title": "$:/language/Buttons/AdvancedSearch/Caption",
            "text": "高级查找"
        },
        "$:/language/Buttons/AdvancedSearch/Hint": {
            "title": "$:/language/Buttons/AdvancedSearch/Hint",
            "text": "高级查找"
        },
        "$:/language/Buttons/Cancel/Caption": {
            "title": "$:/language/Buttons/Cancel/Caption",
            "text": "取消"
        },
        "$:/language/Buttons/Cancel/Hint": {
            "title": "$:/language/Buttons/Cancel/Hint",
            "text": "放弃对此条目的更改"
        },
        "$:/language/Buttons/Clone/Caption": {
            "title": "$:/language/Buttons/Clone/Caption",
            "text": "克隆"
        },
        "$:/language/Buttons/Clone/Hint": {
            "title": "$:/language/Buttons/Clone/Hint",
            "text": "克隆此条目"
        },
        "$:/language/Buttons/Close/Caption": {
            "title": "$:/language/Buttons/Close/Caption",
            "text": "关闭"
        },
        "$:/language/Buttons/Close/Hint": {
            "title": "$:/language/Buttons/Close/Hint",
            "text": "关闭此条目"
        },
        "$:/language/Buttons/CloseAll/Caption": {
            "title": "$:/language/Buttons/CloseAll/Caption",
            "text": "全部关闭"
        },
        "$:/language/Buttons/CloseAll/Hint": {
            "title": "$:/language/Buttons/CloseAll/Hint",
            "text": "关闭所有条目"
        },
        "$:/language/Buttons/CloseOthers/Caption": {
            "title": "$:/language/Buttons/CloseOthers/Caption",
            "text": "关闭其他"
        },
        "$:/language/Buttons/CloseOthers/Hint": {
            "title": "$:/language/Buttons/CloseOthers/Hint",
            "text": "关闭其他条目"
        },
        "$:/language/Buttons/ControlPanel/Caption": {
            "title": "$:/language/Buttons/ControlPanel/Caption",
            "text": "控制台"
        },
        "$:/language/Buttons/ControlPanel/Hint": {
            "title": "$:/language/Buttons/ControlPanel/Hint",
            "text": "开启控制台"
        },
        "$:/language/Buttons/Delete/Caption": {
            "title": "$:/language/Buttons/Delete/Caption",
            "text": "删除"
        },
        "$:/language/Buttons/Delete/Hint": {
            "title": "$:/language/Buttons/Delete/Hint",
            "text": "删除此条目"
        },
        "$:/language/Buttons/Edit/Caption": {
            "title": "$:/language/Buttons/Edit/Caption",
            "text": "编辑"
        },
        "$:/language/Buttons/Edit/Hint": {
            "title": "$:/language/Buttons/Edit/Hint",
            "text": "编辑此条目"
        },
        "$:/language/Buttons/Encryption/Caption": {
            "title": "$:/language/Buttons/Encryption/Caption",
            "text": "加密"
        },
        "$:/language/Buttons/Encryption/Hint": {
            "title": "$:/language/Buttons/Encryption/Hint",
            "text": "设置或清除保存此维基的密码"
        },
        "$:/language/Buttons/Encryption/ClearPassword/Caption": {
            "title": "$:/language/Buttons/Encryption/ClearPassword/Caption",
            "text": "清除密码"
        },
        "$:/language/Buttons/Encryption/ClearPassword/Hint": {
            "title": "$:/language/Buttons/Encryption/ClearPassword/Hint",
            "text": "清除密码且不加密保存此维基"
        },
        "$:/language/Buttons/Encryption/SetPassword/Caption": {
            "title": "$:/language/Buttons/Encryption/SetPassword/Caption",
            "text": "设置密码"
        },
        "$:/language/Buttons/Encryption/SetPassword/Hint": {
            "title": "$:/language/Buttons/Encryption/SetPassword/Hint",
            "text": "设置加密保存此维基的密码"
        },
        "$:/language/Buttons/ExportPage/Caption": {
            "title": "$:/language/Buttons/ExportPage/Caption",
            "text": "导出所有条目"
        },
        "$:/language/Buttons/ExportPage/Hint": {
            "title": "$:/language/Buttons/ExportPage/Hint",
            "text": "导出所有条目"
        },
        "$:/language/Buttons/ExportTiddler/Caption": {
            "title": "$:/language/Buttons/ExportTiddler/Caption",
            "text": "导出此条目"
        },
        "$:/language/Buttons/ExportTiddler/Hint": {
            "title": "$:/language/Buttons/ExportTiddler/Hint",
            "text": "导出此条目"
        },
        "$:/language/Buttons/ExportTiddlers/Caption": {
            "title": "$:/language/Buttons/ExportTiddlers/Caption",
            "text": "导出条目"
        },
        "$:/language/Buttons/ExportTiddlers/Hint": {
            "title": "$:/language/Buttons/ExportTiddlers/Hint",
            "text": "导出条目"
        },
        "$:/language/Buttons/Fold/Caption": {
            "title": "$:/language/Buttons/Fold/Caption",
            "text": "收合条目"
        },
        "$:/language/Buttons/Fold/Hint": {
            "title": "$:/language/Buttons/Fold/Hint",
            "text": "收合此条目的内容"
        },
        "$:/language/Buttons/Unfold/Caption": {
            "title": "$:/language/Buttons/Unfold/Caption",
            "text": "展开条目"
        },
        "$:/language/Buttons/Unfold/Hint": {
            "title": "$:/language/Buttons/Unfold/Hint",
            "text": "展开此条目的内容"
        },
        "$:/language/Buttons/FoldOthers/Caption": {
            "title": "$:/language/Buttons/FoldOthers/Caption",
            "text": "收合其他条目"
        },
        "$:/language/Buttons/FoldOthers/Hint": {
            "title": "$:/language/Buttons/FoldOthers/Hint",
            "text": "收合其他已开启条目的内容"
        },
        "$:/language/Buttons/FoldAll/Caption": {
            "title": "$:/language/Buttons/FoldAll/Caption",
            "text": "收合所有条目"
        },
        "$:/language/Buttons/FoldAll/Hint": {
            "title": "$:/language/Buttons/FoldAll/Hint",
            "text": "收合所有已开启条目的内容"
        },
        "$:/language/Buttons/Fold/FoldBar/Caption": {
            "title": "$:/language/Buttons/Fold/FoldBar/Caption",
            "text": "收合栏"
        },
        "$:/language/Buttons/Fold/FoldBar/Hint": {
            "title": "$:/language/Buttons/Fold/FoldBar/Hint",
            "text": "可选的收合与展开条目的长条按钮"
        },
        "$:/language/Buttons/UnfoldAll/Caption": {
            "title": "$:/language/Buttons/UnfoldAll/Caption",
            "text": "展开所有条目"
        },
        "$:/language/Buttons/UnfoldAll/Hint": {
            "title": "$:/language/Buttons/UnfoldAll/Hint",
            "text": "展开所有已开启条目的内容"
        },
        "$:/language/Buttons/FullScreen/Caption": {
            "title": "$:/language/Buttons/FullScreen/Caption",
            "text": "全屏幕"
        },
        "$:/language/Buttons/FullScreen/Hint": {
            "title": "$:/language/Buttons/FullScreen/Hint",
            "text": "进入或离开全屏模式"
        },
        "$:/language/Buttons/Help/Caption": {
            "title": "$:/language/Buttons/Help/Caption",
            "text": "帮助"
        },
        "$:/language/Buttons/Help/Hint": {
            "title": "$:/language/Buttons/Help/Hint",
            "text": "显示帮助面板"
        },
        "$:/language/Buttons/Home/Caption": {
            "title": "$:/language/Buttons/Home/Caption",
            "text": "首页"
        },
        "$:/language/Buttons/Home/Hint": {
            "title": "$:/language/Buttons/Home/Hint",
            "text": "开启首页条目"
        },
        "$:/language/Buttons/Import/Caption": {
            "title": "$:/language/Buttons/Import/Caption",
            "text": "导入"
        },
        "$:/language/Buttons/Import/Hint": {
            "title": "$:/language/Buttons/Import/Hint",
            "text": "导入许多类型的文件包括文本、图像、TiddlyWiki 或 JSON"
        },
        "$:/language/Buttons/Info/Caption": {
            "title": "$:/language/Buttons/Info/Caption",
            "text": "信息"
        },
        "$:/language/Buttons/Info/Hint": {
            "title": "$:/language/Buttons/Info/Hint",
            "text": "显示此条目的信息"
        },
        "$:/language/Buttons/Language/Caption": {
            "title": "$:/language/Buttons/Language/Caption",
            "text": "语言"
        },
        "$:/language/Buttons/Language/Hint": {
            "title": "$:/language/Buttons/Language/Hint",
            "text": "选择用户介面语言"
        },
        "$:/language/Buttons/Manager/Caption": {
            "title": "$:/language/Buttons/Manager/Caption",
            "text": "条目管理器"
        },
        "$:/language/Buttons/Manager/Hint": {
            "title": "$:/language/Buttons/Manager/Hint",
            "text": "开启条目管理器"
        },
        "$:/language/Buttons/More/Caption": {
            "title": "$:/language/Buttons/More/Caption",
            "text": "更多"
        },
        "$:/language/Buttons/More/Hint": {
            "title": "$:/language/Buttons/More/Hint",
            "text": "更多动作"
        },
        "$:/language/Buttons/NewHere/Caption": {
            "title": "$:/language/Buttons/NewHere/Caption",
            "text": "添加子条目"
        },
        "$:/language/Buttons/NewHere/Hint": {
            "title": "$:/language/Buttons/NewHere/Hint",
            "text": "创建一个标签为此条目名称的新条目"
        },
        "$:/language/Buttons/NewJournal/Caption": {
            "title": "$:/language/Buttons/NewJournal/Caption",
            "text": "添加日志"
        },
        "$:/language/Buttons/NewJournal/Hint": {
            "title": "$:/language/Buttons/NewJournal/Hint",
            "text": "创建一个新的日志条目"
        },
        "$:/language/Buttons/NewJournalHere/Caption": {
            "title": "$:/language/Buttons/NewJournalHere/Caption",
            "text": "添加子日志"
        },
        "$:/language/Buttons/NewJournalHere/Hint": {
            "title": "$:/language/Buttons/NewJournalHere/Hint",
            "text": "创建一个标签含此条目名称的新日志条目"
        },
        "$:/language/Buttons/NewImage/Caption": {
            "title": "$:/language/Buttons/NewImage/Caption",
            "text": "添加图像"
        },
        "$:/language/Buttons/NewImage/Hint": {
            "title": "$:/language/Buttons/NewImage/Hint",
            "text": "创建一个新的图像条目"
        },
        "$:/language/Buttons/NewMarkdown/Caption": {
            "title": "$:/language/Buttons/NewMarkdown/Caption",
            "text": "添加 Markdown 条目"
        },
        "$:/language/Buttons/NewMarkdown/Hint": {
            "title": "$:/language/Buttons/NewMarkdown/Hint",
            "text": "创建一个新的 Markdown 条目"
        },
        "$:/language/Buttons/NewTiddler/Caption": {
            "title": "$:/language/Buttons/NewTiddler/Caption",
            "text": "添加条目"
        },
        "$:/language/Buttons/NewTiddler/Hint": {
            "title": "$:/language/Buttons/NewTiddler/Hint",
            "text": "创建一个新的条目"
        },
        "$:/language/Buttons/OpenWindow/Caption": {
            "title": "$:/language/Buttons/OpenWindow/Caption",
            "text": "开启于新窗口"
        },
        "$:/language/Buttons/OpenWindow/Hint": {
            "title": "$:/language/Buttons/OpenWindow/Hint",
            "text": "在新窗口中开启条目"
        },
        "$:/language/Buttons/Palette/Caption": {
            "title": "$:/language/Buttons/Palette/Caption",
            "text": "调色板"
        },
        "$:/language/Buttons/Palette/Hint": {
            "title": "$:/language/Buttons/Palette/Hint",
            "text": "选择调色板"
        },
        "$:/language/Buttons/Permalink/Caption": {
            "title": "$:/language/Buttons/Permalink/Caption",
            "text": "引用链接"
        },
        "$:/language/Buttons/Permalink/Hint": {
            "title": "$:/language/Buttons/Permalink/Hint",
            "text": "设置浏览器网址栏为直接链接到此条目"
        },
        "$:/language/Buttons/Permaview/Caption": {
            "title": "$:/language/Buttons/Permaview/Caption",
            "text": "永久链接"
        },
        "$:/language/Buttons/Permaview/Hint": {
            "title": "$:/language/Buttons/Permaview/Hint",
            "text": "设置浏览器网址栏为直接链接到当前所有已开启条目"
        },
        "$:/language/Buttons/Print/Caption": {
            "title": "$:/language/Buttons/Print/Caption",
            "text": "打印页面"
        },
        "$:/language/Buttons/Print/Hint": {
            "title": "$:/language/Buttons/Print/Hint",
            "text": "打印当前页面"
        },
        "$:/language/Buttons/Refresh/Caption": {
            "title": "$:/language/Buttons/Refresh/Caption",
            "text": "刷新"
        },
        "$:/language/Buttons/Refresh/Hint": {
            "title": "$:/language/Buttons/Refresh/Hint",
            "text": "执行维基的完全刷新"
        },
        "$:/language/Buttons/Save/Caption": {
            "title": "$:/language/Buttons/Save/Caption",
            "text": "确定"
        },
        "$:/language/Buttons/Save/Hint": {
            "title": "$:/language/Buttons/Save/Hint",
            "text": "确定对此条目的更改"
        },
        "$:/language/Buttons/SaveWiki/Caption": {
            "title": "$:/language/Buttons/SaveWiki/Caption",
            "text": "保存变更"
        },
        "$:/language/Buttons/SaveWiki/Hint": {
            "title": "$:/language/Buttons/SaveWiki/Hint",
            "text": "保存变更"
        },
        "$:/language/Buttons/StoryView/Caption": {
            "title": "$:/language/Buttons/StoryView/Caption",
            "text": "查看模式"
        },
        "$:/language/Buttons/StoryView/Hint": {
            "title": "$:/language/Buttons/StoryView/Hint",
            "text": "选择查看条目的视觉效果"
        },
        "$:/language/Buttons/HideSideBar/Caption": {
            "title": "$:/language/Buttons/HideSideBar/Caption",
            "text": "隐藏侧边栏"
        },
        "$:/language/Buttons/HideSideBar/Hint": {
            "title": "$:/language/Buttons/HideSideBar/Hint",
            "text": "隐藏侧边栏"
        },
        "$:/language/Buttons/ShowSideBar/Caption": {
            "title": "$:/language/Buttons/ShowSideBar/Caption",
            "text": "显示侧边栏"
        },
        "$:/language/Buttons/ShowSideBar/Hint": {
            "title": "$:/language/Buttons/ShowSideBar/Hint",
            "text": "显示侧边栏"
        },
        "$:/language/Buttons/TagManager/Caption": {
            "title": "$:/language/Buttons/TagManager/Caption",
            "text": "标签管理"
        },
        "$:/language/Buttons/TagManager/Hint": {
            "title": "$:/language/Buttons/TagManager/Hint",
            "text": "标签管理"
        },
        "$:/language/Buttons/Timestamp/Caption": {
            "title": "$:/language/Buttons/Timestamp/Caption",
            "text": "时间戳记"
        },
        "$:/language/Buttons/Timestamp/Hint": {
            "title": "$:/language/Buttons/Timestamp/Hint",
            "text": "选择修改是否更新时间戳记"
        },
        "$:/language/Buttons/Timestamp/On/Caption": {
            "title": "$:/language/Buttons/Timestamp/On/Caption",
            "text": "时间戳记开启"
        },
        "$:/language/Buttons/Timestamp/On/Hint": {
            "title": "$:/language/Buttons/Timestamp/On/Hint",
            "text": "条目被修改时,更新时间戳记"
        },
        "$:/language/Buttons/Timestamp/Off/Caption": {
            "title": "$:/language/Buttons/Timestamp/Off/Caption",
            "text": "时间戳记关闭"
        },
        "$:/language/Buttons/Timestamp/Off/Hint": {
            "title": "$:/language/Buttons/Timestamp/Off/Hint",
            "text": "条目被修改时,不更新时间戳记"
        },
        "$:/language/Buttons/Theme/Caption": {
            "title": "$:/language/Buttons/Theme/Caption",
            "text": "布景主题"
        },
        "$:/language/Buttons/Theme/Hint": {
            "title": "$:/language/Buttons/Theme/Hint",
            "text": "选择布景主题"
        },
        "$:/language/Buttons/Bold/Caption": {
            "title": "$:/language/Buttons/Bold/Caption",
            "text": "粗体"
        },
        "$:/language/Buttons/Bold/Hint": {
            "title": "$:/language/Buttons/Bold/Hint",
            "text": "套用粗体格式于所选文本"
        },
        "$:/language/Buttons/Clear/Caption": {
            "title": "$:/language/Buttons/Clear/Caption",
            "text": "清除"
        },
        "$:/language/Buttons/Clear/Hint": {
            "title": "$:/language/Buttons/Clear/Hint",
            "text": "清除图像为纯色"
        },
        "$:/language/Buttons/EditorHeight/Caption": {
            "title": "$:/language/Buttons/EditorHeight/Caption",
            "text": "编辑器高度"
        },
        "$:/language/Buttons/EditorHeight/Caption/Auto": {
            "title": "$:/language/Buttons/EditorHeight/Caption/Auto",
            "text": "自动调整高度以适合内容"
        },
        "$:/language/Buttons/EditorHeight/Caption/Fixed": {
            "title": "$:/language/Buttons/EditorHeight/Caption/Fixed",
            "text": "固定高度︰"
        },
        "$:/language/Buttons/EditorHeight/Hint": {
            "title": "$:/language/Buttons/EditorHeight/Hint",
            "text": "选择文本编辑器的高度"
        },
        "$:/language/Buttons/Excise/Caption": {
            "title": "$:/language/Buttons/Excise/Caption",
            "text": "剪切"
        },
        "$:/language/Buttons/Excise/Caption/Excise": {
            "title": "$:/language/Buttons/Excise/Caption/Excise",
            "text": "执行剪切"
        },
        "$:/language/Buttons/Excise/Caption/MacroName": {
            "title": "$:/language/Buttons/Excise/Caption/MacroName",
            "text": "宏的名称︰"
        },
        "$:/language/Buttons/Excise/Caption/NewTitle": {
            "title": "$:/language/Buttons/Excise/Caption/NewTitle",
            "text": "新条目的名称︰"
        },
        "$:/language/Buttons/Excise/Caption/Replace": {
            "title": "$:/language/Buttons/Excise/Caption/Replace",
            "text": "替换剪切的文本为:"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Macro": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Macro",
            "text": "宏"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Link": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Link",
            "text": "链接"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Transclusion": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Transclusion",
            "text": "嵌入"
        },
        "$:/language/Buttons/Excise/Caption/Tag": {
            "title": "$:/language/Buttons/Excise/Caption/Tag",
            "text": "将新条目的标签设为此条目的名称"
        },
        "$:/language/Buttons/Excise/Caption/TiddlerExists": {
            "title": "$:/language/Buttons/Excise/Caption/TiddlerExists",
            "text": "警示:条目已经存在"
        },
        "$:/language/Buttons/Excise/Hint": {
            "title": "$:/language/Buttons/Excise/Hint",
            "text": "剪切所选文本到一个新条目"
        },
        "$:/language/Buttons/Heading1/Caption": {
            "title": "$:/language/Buttons/Heading1/Caption",
            "text": "标题 1"
        },
        "$:/language/Buttons/Heading1/Hint": {
            "title": "$:/language/Buttons/Heading1/Hint",
            "text": "套用标题级别 1 的格式于包含所选文本的列"
        },
        "$:/language/Buttons/Heading2/Caption": {
            "title": "$:/language/Buttons/Heading2/Caption",
            "text": "标题 2"
        },
        "$:/language/Buttons/Heading2/Hint": {
            "title": "$:/language/Buttons/Heading2/Hint",
            "text": "套用标题级别 2 的格式于包含所选文本的列"
        },
        "$:/language/Buttons/Heading3/Caption": {
            "title": "$:/language/Buttons/Heading3/Caption",
            "text": "标题 3"
        },
        "$:/language/Buttons/Heading3/Hint": {
            "title": "$:/language/Buttons/Heading3/Hint",
            "text": "套用标题级别 3 的格式于包含所选文本的列"
        },
        "$:/language/Buttons/Heading4/Caption": {
            "title": "$:/language/Buttons/Heading4/Caption",
            "text": "标题 4"
        },
        "$:/language/Buttons/Heading4/Hint": {
            "title": "$:/language/Buttons/Heading4/Hint",
            "text": "套用标题级别 4 的格式于包含所选文本的列"
        },
        "$:/language/Buttons/Heading5/Caption": {
            "title": "$:/language/Buttons/Heading5/Caption",
            "text": "标题 5"
        },
        "$:/language/Buttons/Heading5/Hint": {
            "title": "$:/language/Buttons/Heading5/Hint",
            "text": "套用标题级别 5 的格式于包含所选文本的列"
        },
        "$:/language/Buttons/Heading6/Caption": {
            "title": "$:/language/Buttons/Heading6/Caption",
            "text": "标题 6"
        },
        "$:/language/Buttons/Heading6/Hint": {
            "title": "$:/language/Buttons/Heading6/Hint",
            "text": "套用标题级别 6 的格式于包含所选文本的列"
        },
        "$:/language/Buttons/Italic/Caption": {
            "title": "$:/language/Buttons/Italic/Caption",
            "text": "斜体"
        },
        "$:/language/Buttons/Italic/Hint": {
            "title": "$:/language/Buttons/Italic/Hint",
            "text": "套用斜体格式于所选文本"
        },
        "$:/language/Buttons/LineWidth/Caption": {
            "title": "$:/language/Buttons/LineWidth/Caption",
            "text": "线宽"
        },
        "$:/language/Buttons/LineWidth/Hint": {
            "title": "$:/language/Buttons/LineWidth/Hint",
            "text": "设置绘画的线条宽度"
        },
        "$:/language/Buttons/Link/Caption": {
            "title": "$:/language/Buttons/Link/Caption",
            "text": "链接"
        },
        "$:/language/Buttons/Link/Hint": {
            "title": "$:/language/Buttons/Link/Hint",
            "text": "创建维基文字链接"
        },
        "$:/language/Buttons/ListBullet/Caption": {
            "title": "$:/language/Buttons/ListBullet/Caption",
            "text": "符号清单"
        },
        "$:/language/Buttons/ListBullet/Hint": {
            "title": "$:/language/Buttons/ListBullet/Hint",
            "text": "套用符号清单格式于包含所选文本的列"
        },
        "$:/language/Buttons/ListNumber/Caption": {
            "title": "$:/language/Buttons/ListNumber/Caption",
            "text": "数字清单"
        },
        "$:/language/Buttons/ListNumber/Hint": {
            "title": "$:/language/Buttons/ListNumber/Hint",
            "text": "套用数字清单格式于包含所选文本的列"
        },
        "$:/language/Buttons/MonoBlock/Caption": {
            "title": "$:/language/Buttons/MonoBlock/Caption",
            "text": "等宽区块"
        },
        "$:/language/Buttons/MonoBlock/Hint": {
            "title": "$:/language/Buttons/MonoBlock/Hint",
            "text": "套用等宽区块格式于包含所选文本的列"
        },
        "$:/language/Buttons/MonoLine/Caption": {
            "title": "$:/language/Buttons/MonoLine/Caption",
            "text": "等宽"
        },
        "$:/language/Buttons/MonoLine/Hint": {
            "title": "$:/language/Buttons/MonoLine/Hint",
            "text": "套用等宽字符格式于所选文本"
        },
        "$:/language/Buttons/Opacity/Caption": {
            "title": "$:/language/Buttons/Opacity/Caption",
            "text": "不透明度"
        },
        "$:/language/Buttons/Opacity/Hint": {
            "title": "$:/language/Buttons/Opacity/Hint",
            "text": "设置绘画的不透明度"
        },
        "$:/language/Buttons/Paint/Caption": {
            "title": "$:/language/Buttons/Paint/Caption",
            "text": "绘画颜色"
        },
        "$:/language/Buttons/Paint/Hint": {
            "title": "$:/language/Buttons/Paint/Hint",
            "text": "设置绘画的颜色"
        },
        "$:/language/Buttons/Picture/Caption": {
            "title": "$:/language/Buttons/Picture/Caption",
            "text": "图片"
        },
        "$:/language/Buttons/Picture/Hint": {
            "title": "$:/language/Buttons/Picture/Hint",
            "text": "插入图片"
        },
        "$:/language/Buttons/Preview/Caption": {
            "title": "$:/language/Buttons/Preview/Caption",
            "text": "预览"
        },
        "$:/language/Buttons/Preview/Hint": {
            "title": "$:/language/Buttons/Preview/Hint",
            "text": "显示预览窗格"
        },
        "$:/language/Buttons/PreviewType/Caption": {
            "title": "$:/language/Buttons/PreviewType/Caption",
            "text": "预览类型"
        },
        "$:/language/Buttons/PreviewType/Hint": {
            "title": "$:/language/Buttons/PreviewType/Hint",
            "text": "选择预览类型"
        },
        "$:/language/Buttons/Quote/Caption": {
            "title": "$:/language/Buttons/Quote/Caption",
            "text": "引言"
        },
        "$:/language/Buttons/Quote/Hint": {
            "title": "$:/language/Buttons/Quote/Hint",
            "text": "套用引言文本格式于包含所选文本的列"
        },
        "$:/language/Buttons/Size/Caption": {
            "title": "$:/language/Buttons/Size/Caption",
            "text": "图像大小"
        },
        "$:/language/Buttons/Size/Caption/Height": {
            "title": "$:/language/Buttons/Size/Caption/Height",
            "text": "高度︰"
        },
        "$:/language/Buttons/Size/Caption/Resize": {
            "title": "$:/language/Buttons/Size/Caption/Resize",
            "text": "调整图像的大小"
        },
        "$:/language/Buttons/Size/Caption/Width": {
            "title": "$:/language/Buttons/Size/Caption/Width",
            "text": "宽度:"
        },
        "$:/language/Buttons/Size/Hint": {
            "title": "$:/language/Buttons/Size/Hint",
            "text": "设置图像的大小"
        },
        "$:/language/Buttons/Stamp/Caption": {
            "title": "$:/language/Buttons/Stamp/Caption",
            "text": "印记"
        },
        "$:/language/Buttons/Stamp/Caption/New": {
            "title": "$:/language/Buttons/Stamp/Caption/New",
            "text": "添加您自己的"
        },
        "$:/language/Buttons/Stamp/Hint": {
            "title": "$:/language/Buttons/Stamp/Hint",
            "text": "插入一个预配置的文本片段"
        },
        "$:/language/Buttons/Stamp/New/Title": {
            "title": "$:/language/Buttons/Stamp/New/Title",
            "text": "在选单中显示的标题"
        },
        "$:/language/Buttons/Stamp/New/Text": {
            "title": "$:/language/Buttons/Stamp/New/Text",
            "text": "片段的文本。(记得在 `caption` 栏位中添加一个说明性的标题)。"
        },
        "$:/language/Buttons/Strikethrough/Caption": {
            "title": "$:/language/Buttons/Strikethrough/Caption",
            "text": "删除线"
        },
        "$:/language/Buttons/Strikethrough/Hint": {
            "title": "$:/language/Buttons/Strikethrough/Hint",
            "text": "套用删除线格式于所选文本"
        },
        "$:/language/Buttons/Subscript/Caption": {
            "title": "$:/language/Buttons/Subscript/Caption",
            "text": "下标"
        },
        "$:/language/Buttons/Subscript/Hint": {
            "title": "$:/language/Buttons/Subscript/Hint",
            "text": "套用下标格式于所选文本"
        },
        "$:/language/Buttons/Superscript/Caption": {
            "title": "$:/language/Buttons/Superscript/Caption",
            "text": "上标"
        },
        "$:/language/Buttons/Superscript/Hint": {
            "title": "$:/language/Buttons/Superscript/Hint",
            "text": "套用上标格式于所选文本"
        },
        "$:/language/Buttons/Underline/Caption": {
            "title": "$:/language/Buttons/Underline/Caption",
            "text": "下划线"
        },
        "$:/language/Buttons/Underline/Hint": {
            "title": "$:/language/Buttons/Underline/Hint",
            "text": "套用下划线格式于所选文本"
        },
        "$:/language/ControlPanel/Advanced/Caption": {
            "title": "$:/language/ControlPanel/Advanced/Caption",
            "text": "高级"
        },
        "$:/language/ControlPanel/Advanced/Hint": {
            "title": "$:/language/ControlPanel/Advanced/Hint",
            "text": "关于此 TiddlyWiki 的内部信息"
        },
        "$:/language/ControlPanel/Appearance/Caption": {
            "title": "$:/language/ControlPanel/Appearance/Caption",
            "text": "视觉外观"
        },
        "$:/language/ControlPanel/Appearance/Hint": {
            "title": "$:/language/ControlPanel/Appearance/Hint",
            "text": "定制您的 TiddlyWiki 外观。"
        },
        "$:/language/ControlPanel/Basics/AnimDuration/Prompt": {
            "title": "$:/language/ControlPanel/Basics/AnimDuration/Prompt",
            "text": "动画持续时间:"
        },
        "$:/language/ControlPanel/Basics/Caption": {
            "title": "$:/language/ControlPanel/Basics/Caption",
            "text": "基本"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint",
            "text": "标题含空白时请使用 &#91;&#91;双中括弧&#93;&#93;,或者您可用 <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\">保留开启中的条目顺序</$button>"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt",
            "text": "首页:"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint",
            "text": "默认开启的条目:"
        },
        "$:/language/ControlPanel/Basics/Language/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Language/Prompt",
            "text": "您好!当前的语言:"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt",
            "text": "新日志条目的标签"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt",
            "text": "新日志条目的内容"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt",
            "text": "新日志条目的名称"
        },
        "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt",
            "text": "被覆写的默认条目数量:"
        },
        "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt",
            "text": "默认条目数量:"
        },
        "$:/language/ControlPanel/Basics/Subtitle/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Subtitle/Prompt",
            "text": "副标题:"
        },
        "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt",
            "text": "系统条目数量:"
        },
        "$:/language/ControlPanel/Basics/Tags/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Tags/Prompt",
            "text": "标签数量:"
        },
        "$:/language/ControlPanel/Basics/Tiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Tiddlers/Prompt",
            "text": "一般条目数量:"
        },
        "$:/language/ControlPanel/Basics/Title/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Title/Prompt",
            "text": "标题:"
        },
        "$:/language/ControlPanel/Basics/Username/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Username/Prompt",
            "text": "编辑者署名:"
        },
        "$:/language/ControlPanel/Basics/Version/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Version/Prompt",
            "text": "~TiddlyWiki 版本:"
        },
        "$:/language/ControlPanel/EditorTypes/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Caption",
            "text": "编辑器类型"
        },
        "$:/language/ControlPanel/EditorTypes/Editor/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Editor/Caption",
            "text": "编辑器"
        },
        "$:/language/ControlPanel/EditorTypes/Hint": {
            "title": "$:/language/ControlPanel/EditorTypes/Hint",
            "text": "这些条目决定使用哪个编辑器来编辑特定条目类型。"
        },
        "$:/language/ControlPanel/EditorTypes/Type/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Type/Caption",
            "text": "类型"
        },
        "$:/language/ControlPanel/Info/Caption": {
            "title": "$:/language/ControlPanel/Info/Caption",
            "text": "信息"
        },
        "$:/language/ControlPanel/Info/Hint": {
            "title": "$:/language/ControlPanel/Info/Hint",
            "text": "有关此 TiddlyWiki 的信息"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt",
            "text": "在此输入快捷键"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption",
            "text": "添加快捷键"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Caption",
            "text": "快捷键"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Hint": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Hint",
            "text": "管理键盘快捷键分配"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption",
            "text": "尚无指定快捷键"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint",
            "text": "删除快捷键"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/All": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/All",
            "text": "所有平台"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac",
            "text": "仅 Macintosh 平台"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac",
            "text": "仅非 Macintosh 平台"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux",
            "text": "仅 Linux 平台"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux",
            "text": "仅非 Linux 平台"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows",
            "text": "仅 Windows 平台"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows",
            "text": "仅非 Windows 平台"
        },
        "$:/language/ControlPanel/LoadedModules/Caption": {
            "title": "$:/language/ControlPanel/LoadedModules/Caption",
            "text": "已加载的模块"
        },
        "$:/language/ControlPanel/LoadedModules/Hint": {
            "title": "$:/language/ControlPanel/LoadedModules/Hint",
            "text": "这些是当前已加载的模块之源码条目。斜体的模块则无源码条目,通常是因为它们是在引导过程中设置。"
        },
        "$:/language/ControlPanel/Palette/Caption": {
            "title": "$:/language/ControlPanel/Palette/Caption",
            "text": "调色板"
        },
        "$:/language/ControlPanel/Palette/Editor/Clone/Caption": {
            "title": "$:/language/ControlPanel/Palette/Editor/Clone/Caption",
            "text": "复制"
        },
        "$:/language/ControlPanel/Palette/Editor/Clone/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Editor/Clone/Prompt",
            "text": "建议您修改前先复制此默认调色板"
        },
        "$:/language/ControlPanel/Palette/Editor/Prompt/Modified": {
            "title": "$:/language/ControlPanel/Palette/Editor/Prompt/Modified",
            "text": "此默认调色板已被修改过"
        },
        "$:/language/ControlPanel/Palette/Editor/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Editor/Prompt",
            "text": "编辑"
        },
        "$:/language/ControlPanel/Palette/Editor/Reset/Caption": {
            "title": "$:/language/ControlPanel/Palette/Editor/Reset/Caption",
            "text": "重置"
        },
        "$:/language/ControlPanel/Palette/HideEditor/Caption": {
            "title": "$:/language/ControlPanel/Palette/HideEditor/Caption",
            "text": "隐藏编辑器"
        },
        "$:/language/ControlPanel/Palette/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Prompt",
            "text": "当前的调色板:"
        },
        "$:/language/ControlPanel/Palette/ShowEditor/Caption": {
            "title": "$:/language/ControlPanel/Palette/ShowEditor/Caption",
            "text": "显示编辑器"
        },
        "$:/language/ControlPanel/Plugins/Add/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Add/Hint",
            "text": "从官方插件库安装插件"
        },
        "$:/language/ControlPanel/Plugins/Add/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Add/Caption",
            "text": "获取更多插件"
        },
        "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint": {
            "title": "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint",
            "text": "此插件已经安装版本 <$text text=<<installedVersion>>/>"
        },
        "$:/language/ControlPanel/Plugins/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Caption",
            "text": "插件"
        },
        "$:/language/ControlPanel/Plugins/Disable/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Disable/Caption",
            "text": "禁用"
        },
        "$:/language/ControlPanel/Plugins/Disable/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Disable/Hint",
            "text": "重新加载页面时禁用此插件"
        },
        "$:/language/ControlPanel/Plugins/Disabled/Status": {
            "title": "$:/language/ControlPanel/Plugins/Disabled/Status",
            "text": "(已禁用)"
        },
        "$:/language/ControlPanel/Plugins/Empty/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Empty/Hint",
            "text": "无"
        },
        "$:/language/ControlPanel/Plugins/Enable/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Enable/Caption",
            "text": "启用"
        },
        "$:/language/ControlPanel/Plugins/Enable/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Enable/Hint",
            "text": "重新加载页面时启用此插件"
        },
        "$:/language/ControlPanel/Plugins/Install/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Install/Caption",
            "text": "安装"
        },
        "$:/language/ControlPanel/Plugins/Installed/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Installed/Hint",
            "text": "当前已安装的插件:"
        },
        "$:/language/ControlPanel/Plugins/Languages/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Languages/Caption",
            "text": "语言"
        },
        "$:/language/ControlPanel/Plugins/Languages/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Languages/Hint",
            "text": "语言包插件"
        },
        "$:/language/ControlPanel/Plugins/NoInfoFound/Hint": {
            "title": "$:/language/ControlPanel/Plugins/NoInfoFound/Hint",
            "text": "无 ''\"<$text text=<<currentTab>>/>\"''"
        },
        "$:/language/ControlPanel/Plugins/NoInformation/Hint": {
            "title": "$:/language/ControlPanel/Plugins/NoInformation/Hint",
            "text": "未提供信息"
        },
        "$:/language/ControlPanel/Plugins/NotInstalled/Hint": {
            "title": "$:/language/ControlPanel/Plugins/NotInstalled/Hint",
            "text": "尚未安装此插件"
        },
        "$:/language/ControlPanel/Plugins/OpenPluginLibrary": {
            "title": "$:/language/ControlPanel/Plugins/OpenPluginLibrary",
            "text": "开启插件程式库"
        },
        "$:/language/ControlPanel/Plugins/ClosePluginLibrary": {
            "title": "$:/language/ControlPanel/Plugins/ClosePluginLibrary",
            "text": "关闭插件程式库"
        },
        "$:/language/ControlPanel/Plugins/Plugins/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Plugins/Caption",
            "text": "插件"
        },
        "$:/language/ControlPanel/Plugins/Plugins/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Plugins/Hint",
            "text": "插件"
        },
        "$:/language/ControlPanel/Plugins/Reinstall/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Reinstall/Caption",
            "text": "重新安装"
        },
        "$:/language/ControlPanel/Plugins/Themes/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Themes/Caption",
            "text": "布景主题"
        },
        "$:/language/ControlPanel/Plugins/Themes/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Themes/Hint",
            "text": "布景主题插件"
        },
        "$:/language/ControlPanel/Parsing/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Caption",
            "text": "解析"
        },
        "$:/language/ControlPanel/Parsing/Hint": {
            "title": "$:/language/ControlPanel/Parsing/Hint",
            "text": "在此您可以全域禁用或启用维基解析规则。要使更改生效,请保存并重新加载您的维基。禁用某些解析规则,会妨碍 <$text text=\"TiddlyWiki\"/> 正常运作。可使用[[安全模式|http://tiddlywiki.com/#SafeMode]]恢复正常操作。"
        },
        "$:/language/ControlPanel/Parsing/Block/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Block/Caption",
            "text": "区块解析规则"
        },
        "$:/language/ControlPanel/Parsing/Inline/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Inline/Caption",
            "text": "内联解析规则"
        },
        "$:/language/ControlPanel/Parsing/Pragma/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Pragma/Caption",
            "text": "编译指示解析规则"
        },
        "$:/language/ControlPanel/Saving/Caption": {
            "title": "$:/language/ControlPanel/Saving/Caption",
            "text": "保存"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description",
            "text": "允许下载保存模块的自动保存"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint",
            "text": "启用下载保存模块的自动保存"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/Caption": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/Caption",
            "text": "下载保存模块"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/Hint": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/Hint",
            "text": "这些设置适用于兼容 HTML5 的下载保存模块"
        },
        "$:/language/ControlPanel/Saving/General/Caption": {
            "title": "$:/language/ControlPanel/Saving/General/Caption",
            "text": "通用"
        },
        "$:/language/ControlPanel/Saving/General/Hint": {
            "title": "$:/language/ControlPanel/Saving/General/Hint",
            "text": "这些设置适用于所有已载入的保存模块"
        },
        "$:/language/ControlPanel/Saving/Hint": {
            "title": "$:/language/ControlPanel/Saving/Hint",
            "text": "用于通过保存模块将整个 TiddlyWiki 保存为单个文件的设置"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading",
            "text": "高级设置"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir",
            "text": "备份文件夹"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Backups": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups",
            "text": "备份"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Caption": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Caption",
            "text": "~TiddlySpot 保存模块"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Description": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Description",
            "text": "这些设置只适用于保存到 http://tiddlyspot.com 或兼容的远程服务器时。"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Filename": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Filename",
            "text": "上传文件名"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Heading": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Heading",
            "text": "~TiddlySpot"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Hint": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Hint",
            "text": "//默认之服务器网址 `http://<wikiname>.tiddlyspot.com/store.cgi`,可改为定制之服务器网址,例如 `http://example.com/store.php`。//"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Password": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Password",
            "text": "密码"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL",
            "text": "服务器网址"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir",
            "text": "上传文件夹"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/UserName": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/UserName",
            "text": "用户"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Caption": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Caption",
            "text": "自动保存"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description",
            "text": "不要自动保存变更"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description",
            "text": "自动保存变更"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Hint": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Hint",
            "text": "当使用支持的保存模块时,在编辑期间尝试自动保存变更"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Caption": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Caption",
            "text": "驼峰式维基链接"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Hint": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Hint",
            "text": "您可以全域禁用驼峰式短语自动链接。须保存后重新加载,方才生效。"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Description": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Description",
            "text": "启用自动驼峰式链接"
        },
        "$:/language/ControlPanel/Settings/Caption": {
            "title": "$:/language/ControlPanel/Settings/Caption",
            "text": "设置"
        },
        "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption": {
            "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption",
            "text": "默认侧边栏页签"
        },
        "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint": {
            "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint",
            "text": "指定默认显示的侧边栏页签"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Caption": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Caption",
            "text": "编辑器工具栏"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Hint": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Hint",
            "text": "启用或禁用编辑器工具栏︰"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Description": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Description",
            "text": "显示编辑器工具栏"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Caption": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Caption",
            "text": "条目信息面板模式"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Hint": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Hint",
            "text": "控制条目信息面板何时关闭︰"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description",
            "text": "条目信息面板自动关闭"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description",
            "text": "条目信息面板保持打开状态,直到明确关闭"
        },
        "$:/language/ControlPanel/Settings/Hint": {
            "title": "$:/language/ControlPanel/Settings/Hint",
            "text": "这些高级设置让您定制 TiddlyWiki 的行为。"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption",
            "text": "条目开启行为"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint",
            "text": "从故事河//中//导航"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint",
            "text": "从故事河//外//导航"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove",
            "text": "开启于当前条目之上"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow",
            "text": "开启于当前条目之下"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop",
            "text": "开启于故事河的顶端"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom",
            "text": "开启于故事河的底部"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Caption": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Caption",
            "text": "维基链接"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Hint": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Hint",
            "text": "选择是否要链接到尚未存在的条目"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Description": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Description",
            "text": "启用链接到佚失条目"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption",
            "text": "网址栏导览"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint",
            "text": "在浏览器网址栏导览到条目时的行为:"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description",
            "text": "不更新网址栏"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description",
            "text": "包含目标条目"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description",
            "text": "包括目标条目和当前已开启的条目序列"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Caption": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Caption",
            "text": "历史记录导览"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Hint": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Hint",
            "text": "当导览到条目时,更新浏览器历史记录:"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/No/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/No/Description",
            "text": "不更新历史记录"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description",
            "text": "更新历史记录"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption",
            "text": "性能检测"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint",
            "text": "在浏览器的开发人员控制台,显示性能统计数据。需要重新加载才能生效。"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description",
            "text": "启用性能检测"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption",
            "text": "工具栏按钮样式"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint",
            "text": "选择工具栏按钮的样式:"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless",
            "text": "无边框"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed",
            "text": "方框"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded",
            "text": "圆形"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Caption": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Caption",
            "text": "工具栏按钮"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Hint": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Hint",
            "text": "默认的工具栏按钮外观:"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description",
            "text": "包含图标"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description",
            "text": "包含文本"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Caption": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Caption",
            "text": "条目标题"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Hint": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Hint",
            "text": "可选地显示条目标题为链接"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/No/Description": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/No/Description",
            "text": "不显示条目标题为链接"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description",
            "text": "显示条目标题为链接"
        },
        "$:/language/ControlPanel/StoryView/Caption": {
            "title": "$:/language/ControlPanel/StoryView/Caption",
            "text": "查看模式"
        },
        "$:/language/ControlPanel/StoryView/Prompt": {
            "title": "$:/language/ControlPanel/StoryView/Prompt",
            "text": "当前的查看模式:"
        },
        "$:/language/ControlPanel/Theme/Caption": {
            "title": "$:/language/ControlPanel/Theme/Caption",
            "text": "布景主题"
        },
        "$:/language/ControlPanel/Theme/Prompt": {
            "title": "$:/language/ControlPanel/Theme/Prompt",
            "text": "当前的布景主题:"
        },
        "$:/language/ControlPanel/TiddlerFields/Caption": {
            "title": "$:/language/ControlPanel/TiddlerFields/Caption",
            "text": "条目栏位"
        },
        "$:/language/ControlPanel/TiddlerFields/Hint": {
            "title": "$:/language/ControlPanel/TiddlerFields/Hint",
            "text": "这是本维基使用中的所有条目栏位(含系统条目的栏位,但默认条目的栏位除外)。"
        },
        "$:/language/ControlPanel/Toolbars/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/Caption",
            "text": "工具栏"
        },
        "$:/language/ControlPanel/Toolbars/EditToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Caption",
            "text": "编辑工具栏"
        },
        "$:/language/ControlPanel/Toolbars/EditToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Hint",
            "text": "选择将显示哪些按钮于条目的编辑模式工具栏。拖放可改变顺序。"
        },
        "$:/language/ControlPanel/Toolbars/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/Hint",
            "text": "选择将显示哪些工具栏按钮"
        },
        "$:/language/ControlPanel/Toolbars/PageControls/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/PageControls/Caption",
            "text": "页面工具栏"
        },
        "$:/language/ControlPanel/Toolbars/PageControls/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/PageControls/Hint",
            "text": "选择将显示哪些按钮于主页面的工具栏。拖放可改变顺序。"
        },
        "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption",
            "text": "编辑器工具栏"
        },
        "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint",
            "text": "选择将显示哪些按钮于编辑器工具栏。请注意,某些按钮只会出现在编辑某一类型的条目时。拖放可改变顺序。"
        },
        "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption",
            "text": "查看工具栏"
        },
        "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint",
            "text": "选择将显示哪些按钮于条目的查看模式工具栏。拖放可改变顺序。"
        },
        "$:/language/ControlPanel/Tools/Download/Full/Caption": {
            "title": "$:/language/ControlPanel/Tools/Download/Full/Caption",
            "text": "下载完整副本"
        },
        "$:/core/zh-Hans/readme": {
            "title": "$:/core/zh-Hans/readme",
            "text": "此插件包含 TiddlyWiki 的核心组件,包括:\n\n* JavaScript 代码模块\n* 图标\n* 创建 TiddlyWiki 的用户介面所需的模板\n* 核心所使用的可当地语系化字串的英国英语 (''en-GB'') 翻译\n"
        },
        "$:/language/Date/Long/Day/0": {
            "title": "$:/language/Date/Long/Day/0",
            "text": "周日"
        },
        "$:/language/Date/Long/Day/1": {
            "title": "$:/language/Date/Long/Day/1",
            "text": "周一"
        },
        "$:/language/Date/Long/Day/2": {
            "title": "$:/language/Date/Long/Day/2",
            "text": "周二"
        },
        "$:/language/Date/Long/Day/3": {
            "title": "$:/language/Date/Long/Day/3",
            "text": "周三"
        },
        "$:/language/Date/Long/Day/4": {
            "title": "$:/language/Date/Long/Day/4",
            "text": "周四"
        },
        "$:/language/Date/Long/Day/5": {
            "title": "$:/language/Date/Long/Day/5",
            "text": "周五"
        },
        "$:/language/Date/Long/Day/6": {
            "title": "$:/language/Date/Long/Day/6",
            "text": "周六"
        },
        "$:/language/Date/Long/Month/1": {
            "title": "$:/language/Date/Long/Month/1",
            "text": "一月"
        },
        "$:/language/Date/Long/Month/2": {
            "title": "$:/language/Date/Long/Month/2",
            "text": "二月"
        },
        "$:/language/Date/Long/Month/3": {
            "title": "$:/language/Date/Long/Month/3",
            "text": "三月"
        },
        "$:/language/Date/Long/Month/4": {
            "title": "$:/language/Date/Long/Month/4",
            "text": "四月"
        },
        "$:/language/Date/Long/Month/5": {
            "title": "$:/language/Date/Long/Month/5",
            "text": "五月"
        },
        "$:/language/Date/Long/Month/6": {
            "title": "$:/language/Date/Long/Month/6",
            "text": "六月"
        },
        "$:/language/Date/Long/Month/7": {
            "title": "$:/language/Date/Long/Month/7",
            "text": "七月"
        },
        "$:/language/Date/Long/Month/8": {
            "title": "$:/language/Date/Long/Month/8",
            "text": "八月"
        },
        "$:/language/Date/Long/Month/9": {
            "title": "$:/language/Date/Long/Month/9",
            "text": "九月"
        },
        "$:/language/Date/Long/Month/10": {
            "title": "$:/language/Date/Long/Month/10",
            "text": "十月"
        },
        "$:/language/Date/Long/Month/11": {
            "title": "$:/language/Date/Long/Month/11",
            "text": "十一月"
        },
        "$:/language/Date/Long/Month/12": {
            "title": "$:/language/Date/Long/Month/12",
            "text": "十二月"
        },
        "$:/language/Date/Period/am": {
            "title": "$:/language/Date/Period/am",
            "text": "上午"
        },
        "$:/language/Date/Period/pm": {
            "title": "$:/language/Date/Period/pm",
            "text": "下午"
        },
        "$:/language/Date/Short/Day/0": {
            "title": "$:/language/Date/Short/Day/0",
            "text": "日"
        },
        "$:/language/Date/Short/Day/1": {
            "title": "$:/language/Date/Short/Day/1",
            "text": "一"
        },
        "$:/language/Date/Short/Day/2": {
            "title": "$:/language/Date/Short/Day/2",
            "text": "二"
        },
        "$:/language/Date/Short/Day/3": {
            "title": "$:/language/Date/Short/Day/3",
            "text": "三"
        },
        "$:/language/Date/Short/Day/4": {
            "title": "$:/language/Date/Short/Day/4",
            "text": "四"
        },
        "$:/language/Date/Short/Day/5": {
            "title": "$:/language/Date/Short/Day/5",
            "text": "五"
        },
        "$:/language/Date/Short/Day/6": {
            "title": "$:/language/Date/Short/Day/6",
            "text": "六"
        },
        "$:/language/Date/Short/Month/1": {
            "title": "$:/language/Date/Short/Month/1",
            "text": "01月"
        },
        "$:/language/Date/Short/Month/2": {
            "title": "$:/language/Date/Short/Month/2",
            "text": "02月"
        },
        "$:/language/Date/Short/Month/3": {
            "title": "$:/language/Date/Short/Month/3",
            "text": "03月"
        },
        "$:/language/Date/Short/Month/4": {
            "title": "$:/language/Date/Short/Month/4",
            "text": "04月"
        },
        "$:/language/Date/Short/Month/5": {
            "title": "$:/language/Date/Short/Month/5",
            "text": "05月"
        },
        "$:/language/Date/Short/Month/6": {
            "title": "$:/language/Date/Short/Month/6",
            "text": "06月"
        },
        "$:/language/Date/Short/Month/7": {
            "title": "$:/language/Date/Short/Month/7",
            "text": "07月"
        },
        "$:/language/Date/Short/Month/8": {
            "title": "$:/language/Date/Short/Month/8",
            "text": "08月"
        },
        "$:/language/Date/Short/Month/9": {
            "title": "$:/language/Date/Short/Month/9",
            "text": "09月"
        },
        "$:/language/Date/Short/Month/10": {
            "title": "$:/language/Date/Short/Month/10",
            "text": "10月"
        },
        "$:/language/Date/Short/Month/11": {
            "title": "$:/language/Date/Short/Month/11",
            "text": "11月"
        },
        "$:/language/Date/Short/Month/12": {
            "title": "$:/language/Date/Short/Month/12",
            "text": "12月"
        },
        "$:/language/RelativeDate/Future/Days": {
            "title": "$:/language/RelativeDate/Future/Days",
            "text": "<<period>> 天后"
        },
        "$:/language/RelativeDate/Future/Hours": {
            "title": "$:/language/RelativeDate/Future/Hours",
            "text": "<<period>> 小时后"
        },
        "$:/language/RelativeDate/Future/Minutes": {
            "title": "$:/language/RelativeDate/Future/Minutes",
            "text": "<<period>> 分钟后"
        },
        "$:/language/RelativeDate/Future/Months": {
            "title": "$:/language/RelativeDate/Future/Months",
            "text": "<<period>> 个月后"
        },
        "$:/language/RelativeDate/Future/Second": {
            "title": "$:/language/RelativeDate/Future/Second",
            "text": "1 秒后"
        },
        "$:/language/RelativeDate/Future/Seconds": {
            "title": "$:/language/RelativeDate/Future/Seconds",
            "text": "<<period>> 秒后"
        },
        "$:/language/RelativeDate/Future/Years": {
            "title": "$:/language/RelativeDate/Future/Years",
            "text": "<<period>> 年后"
        },
        "$:/language/RelativeDate/Past/Days": {
            "title": "$:/language/RelativeDate/Past/Days",
            "text": "<<period>> 天前"
        },
        "$:/language/RelativeDate/Past/Hours": {
            "title": "$:/language/RelativeDate/Past/Hours",
            "text": "<<period>> 小时前"
        },
        "$:/language/RelativeDate/Past/Minutes": {
            "title": "$:/language/RelativeDate/Past/Minutes",
            "text": "<<period>> 分钟前"
        },
        "$:/language/RelativeDate/Past/Months": {
            "title": "$:/language/RelativeDate/Past/Months",
            "text": "<<period>> 个月前"
        },
        "$:/language/RelativeDate/Past/Second": {
            "title": "$:/language/RelativeDate/Past/Second",
            "text": "1 秒前"
        },
        "$:/language/RelativeDate/Past/Seconds": {
            "title": "$:/language/RelativeDate/Past/Seconds",
            "text": "<<period>> 秒前"
        },
        "$:/language/RelativeDate/Past/Years": {
            "title": "$:/language/RelativeDate/Past/Years",
            "text": "<<period>> 年前"
        },
        "$:/language/Docs/ModuleTypes/allfilteroperator": {
            "title": "$:/language/Docs/ModuleTypes/allfilteroperator",
            "text": "''all'' 筛选器算子的子算子。"
        },
        "$:/language/Docs/ModuleTypes/animation": {
            "title": "$:/language/Docs/ModuleTypes/animation",
            "text": "动画模块包含可用于 RevealWidget 的动画。"
        },
        "$:/language/Docs/ModuleTypes/bitmapeditoroperation": {
            "title": "$:/language/Docs/ModuleTypes/bitmapeditoroperation",
            "text": "一个位图编辑器工具栏操作。"
        },
        "$:/language/Docs/ModuleTypes/command": {
            "title": "$:/language/Docs/ModuleTypes/command",
            "text": "可于 Node.js 执行的指令。"
        },
        "$:/language/Docs/ModuleTypes/config": {
            "title": "$:/language/Docs/ModuleTypes/config",
            "text": "加入 `$tw.config` 的数据。"
        },
        "$:/language/Docs/ModuleTypes/filteroperator": {
            "title": "$:/language/Docs/ModuleTypes/filteroperator",
            "text": "个别筛选器算子方法。"
        },
        "$:/language/Docs/ModuleTypes/global": {
            "title": "$:/language/Docs/ModuleTypes/global",
            "text": "加入 `$tw` 的全域数据。"
        },
        "$:/language/Docs/ModuleTypes/info": {
            "title": "$:/language/Docs/ModuleTypes/info",
            "text": "透过 [[$:/temp/info-plugin]] 伪插件,发布系统信息。"
        },
        "$:/language/Docs/ModuleTypes/isfilteroperator": {
            "title": "$:/language/Docs/ModuleTypes/isfilteroperator",
            "text": "''is'' 筛选器算子的运算符。"
        },
        "$:/language/Docs/ModuleTypes/library": {
            "title": "$:/language/Docs/ModuleTypes/library",
            "text": "一般用途的 JavaScript 模块的通用模块类型。"
        },
        "$:/language/Docs/ModuleTypes/macro": {
            "title": "$:/language/Docs/ModuleTypes/macro",
            "text": "JavaScript ''宏''定义。"
        },
        "$:/language/Docs/ModuleTypes/parser": {
            "title": "$:/language/Docs/ModuleTypes/parser",
            "text": "不同内容类型的解析器。"
        },
        "$:/language/Docs/ModuleTypes/saver": {
            "title": "$:/language/Docs/ModuleTypes/saver",
            "text": "于浏览器保存文件的不同的保存处理方法。"
        },
        "$:/language/Docs/ModuleTypes/startup": {
            "title": "$:/language/Docs/ModuleTypes/startup",
            "text": "启动时期的功能函数。"
        },
        "$:/language/Docs/ModuleTypes/storyview": {
            "title": "$:/language/Docs/ModuleTypes/storyview",
            "text": "查看模式用以自订 list 小部件的动画与行为。"
        },
        "$:/language/Docs/ModuleTypes/texteditoroperation": {
            "title": "$:/language/Docs/ModuleTypes/texteditoroperation",
            "text": "一个文本编辑器工具栏操作。"
        },
        "$:/language/Docs/ModuleTypes/tiddlerdeserializer": {
            "title": "$:/language/Docs/ModuleTypes/tiddlerdeserializer",
            "text": "转换不同内容类型至条目。"
        },
        "$:/language/Docs/ModuleTypes/tiddlerfield": {
            "title": "$:/language/Docs/ModuleTypes/tiddlerfield",
            "text": "定义个别条目栏位的行为。"
        },
        "$:/language/Docs/ModuleTypes/tiddlermethod": {
            "title": "$:/language/Docs/ModuleTypes/tiddlermethod",
            "text": "添加方法至 `$tw.Tiddler` 原型。"
        },
        "$:/language/Docs/ModuleTypes/upgrader": {
            "title": "$:/language/Docs/ModuleTypes/upgrader",
            "text": "于升级/导入过程中,套用升级处理至条目。"
        },
        "$:/language/Docs/ModuleTypes/utils": {
            "title": "$:/language/Docs/ModuleTypes/utils",
            "text": "添加方法至 `$tw.utils`。"
        },
        "$:/language/Docs/ModuleTypes/utils-node": {
            "title": "$:/language/Docs/ModuleTypes/utils-node",
            "text": "将特定于 Node.js 的方法添加到 '$tw.utils'。"
        },
        "$:/language/Docs/ModuleTypes/widget": {
            "title": "$:/language/Docs/ModuleTypes/widget",
            "text": "封装 DOM 渲染和刷新的小部件。"
        },
        "$:/language/Docs/ModuleTypes/wikimethod": {
            "title": "$:/language/Docs/ModuleTypes/wikimethod",
            "text": "添加方法至 `$tw.Wiki`。"
        },
        "$:/language/Docs/ModuleTypes/wikirule": {
            "title": "$:/language/Docs/ModuleTypes/wikirule",
            "text": "WikiText 解析器的个别的语法规则。"
        },
        "$:/language/Docs/PaletteColours/alert-background": {
            "title": "$:/language/Docs/PaletteColours/alert-background",
            "text": "警示背景"
        },
        "$:/language/Docs/PaletteColours/alert-border": {
            "title": "$:/language/Docs/PaletteColours/alert-border",
            "text": "警示边框"
        },
        "$:/language/Docs/PaletteColours/alert-highlight": {
            "title": "$:/language/Docs/PaletteColours/alert-highlight",
            "text": "警示高亮度"
        },
        "$:/language/Docs/PaletteColours/alert-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/alert-muted-foreground",
            "text": "警示的低调前景"
        },
        "$:/language/Docs/PaletteColours/background": {
            "title": "$:/language/Docs/PaletteColours/background",
            "text": "一般背景"
        },
        "$:/language/Docs/PaletteColours/blockquote-bar": {
            "title": "$:/language/Docs/PaletteColours/blockquote-bar",
            "text": "引言条"
        },
        "$:/language/Docs/PaletteColours/button-background": {
            "title": "$:/language/Docs/PaletteColours/button-background",
            "text": "默认按钮背景"
        },
        "$:/language/Docs/PaletteColours/button-border": {
            "title": "$:/language/Docs/PaletteColours/button-border",
            "text": "默认按钮边框"
        },
        "$:/language/Docs/PaletteColours/button-foreground": {
            "title": "$:/language/Docs/PaletteColours/button-foreground",
            "text": "默认按钮前景"
        },
        "$:/language/Docs/PaletteColours/code-background": {
            "title": "$:/language/Docs/PaletteColours/code-background",
            "text": "代码背景"
        },
        "$:/language/Docs/PaletteColours/code-border": {
            "title": "$:/language/Docs/PaletteColours/code-border",
            "text": "代码边框"
        },
        "$:/language/Docs/PaletteColours/code-foreground": {
            "title": "$:/language/Docs/PaletteColours/code-foreground",
            "text": "代码前景"
        },
        "$:/language/Docs/PaletteColours/dirty-indicator": {
            "title": "$:/language/Docs/PaletteColours/dirty-indicator",
            "text": "未保存变更指示器"
        },
        "$:/language/Docs/PaletteColours/download-background": {
            "title": "$:/language/Docs/PaletteColours/download-background",
            "text": "下载按钮背景"
        },
        "$:/language/Docs/PaletteColours/download-foreground": {
            "title": "$:/language/Docs/PaletteColours/download-foreground",
            "text": "下载按钮前景"
        },
        "$:/language/Docs/PaletteColours/dragger-background": {
            "title": "$:/language/Docs/PaletteColours/dragger-background",
            "text": "拖动区背景"
        },
        "$:/language/Docs/PaletteColours/dragger-foreground": {
            "title": "$:/language/Docs/PaletteColours/dragger-foreground",
            "text": "拖动区前景"
        },
        "$:/language/Docs/PaletteColours/dropdown-background": {
            "title": "$:/language/Docs/PaletteColours/dropdown-background",
            "text": "下拉背景"
        },
        "$:/language/Docs/PaletteColours/dropdown-border": {
            "title": "$:/language/Docs/PaletteColours/dropdown-border",
            "text": "下拉边框"
        },
        "$:/language/Docs/PaletteColours/dropdown-tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/dropdown-tab-background-selected",
            "text": "选定的下拉页签背景"
        },
        "$:/language/Docs/PaletteColours/dropdown-tab-background": {
            "title": "$:/language/Docs/PaletteColours/dropdown-tab-background",
            "text": "下拉页签背景"
        },
        "$:/language/Docs/PaletteColours/dropzone-background": {
            "title": "$:/language/Docs/PaletteColours/dropzone-background",
            "text": "拖放背景"
        },
        "$:/language/Docs/PaletteColours/external-link-background-hover": {
            "title": "$:/language/Docs/PaletteColours/external-link-background-hover",
            "text": "悬停外部链结背景"
        },
        "$:/language/Docs/PaletteColours/external-link-background-visited": {
            "title": "$:/language/Docs/PaletteColours/external-link-background-visited",
            "text": "已造访过的外部链结背景"
        },
        "$:/language/Docs/PaletteColours/external-link-background": {
            "title": "$:/language/Docs/PaletteColours/external-link-background",
            "text": "外部链结背景"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground-hover",
            "text": "悬停外部链结前景"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground-visited": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground-visited",
            "text": "已造访过的外部链结前景"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground",
            "text": "外部链结前景"
        },
        "$:/language/Docs/PaletteColours/foreground": {
            "title": "$:/language/Docs/PaletteColours/foreground",
            "text": "一般前景"
        },
        "$:/language/Docs/PaletteColours/message-background": {
            "title": "$:/language/Docs/PaletteColours/message-background",
            "text": "信息框背景"
        },
        "$:/language/Docs/PaletteColours/message-border": {
            "title": "$:/language/Docs/PaletteColours/message-border",
            "text": "信息边框"
        },
        "$:/language/Docs/PaletteColours/message-foreground": {
            "title": "$:/language/Docs/PaletteColours/message-foreground",
            "text": "信息框前景"
        },
        "$:/language/Docs/PaletteColours/modal-backdrop": {
            "title": "$:/language/Docs/PaletteColours/modal-backdrop",
            "text": "模块背景幕"
        },
        "$:/language/Docs/PaletteColours/modal-background": {
            "title": "$:/language/Docs/PaletteColours/modal-background",
            "text": "模块背景"
        },
        "$:/language/Docs/PaletteColours/modal-border": {
            "title": "$:/language/Docs/PaletteColours/modal-border",
            "text": "模块边框"
        },
        "$:/language/Docs/PaletteColours/modal-footer-background": {
            "title": "$:/language/Docs/PaletteColours/modal-footer-background",
            "text": "模块页脚背景"
        },
        "$:/language/Docs/PaletteColours/modal-footer-border": {
            "title": "$:/language/Docs/PaletteColours/modal-footer-border",
            "text": "模块页脚边框"
        },
        "$:/language/Docs/PaletteColours/modal-header-border": {
            "title": "$:/language/Docs/PaletteColours/modal-header-border",
            "text": "模块标题边框"
        },
        "$:/language/Docs/PaletteColours/muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/muted-foreground",
            "text": "一般低调前景"
        },
        "$:/language/Docs/PaletteColours/notification-background": {
            "title": "$:/language/Docs/PaletteColours/notification-background",
            "text": "通知背景"
        },
        "$:/language/Docs/PaletteColours/notification-border": {
            "title": "$:/language/Docs/PaletteColours/notification-border",
            "text": "通知边框"
        },
        "$:/language/Docs/PaletteColours/page-background": {
            "title": "$:/language/Docs/PaletteColours/page-background",
            "text": "页面背景"
        },
        "$:/language/Docs/PaletteColours/pre-background": {
            "title": "$:/language/Docs/PaletteColours/pre-background",
            "text": "pre 背景"
        },
        "$:/language/Docs/PaletteColours/pre-border": {
            "title": "$:/language/Docs/PaletteColours/pre-border",
            "text": "pre 边框"
        },
        "$:/language/Docs/PaletteColours/primary": {
            "title": "$:/language/Docs/PaletteColours/primary",
            "text": "主颜色"
        },
        "$:/language/Docs/PaletteColours/sidebar-button-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-button-foreground",
            "text": "侧边栏按钮前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover",
            "text": "悬停侧边栏控制项前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-controls-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground",
            "text": "侧边栏控制项前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-foreground-shadow": {
            "title": "$:/language/Docs/PaletteColours/sidebar-foreground-shadow",
            "text": "侧边栏前景阴影"
        },
        "$:/language/Docs/PaletteColours/sidebar-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-foreground",
            "text": "侧边栏前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover",
            "text": "悬停侧边栏低调前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground",
            "text": "侧边栏低调前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-background-selected",
            "text": "侧边栏选定页签背景"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-background": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-background",
            "text": "侧边栏页签背景"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-border-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-border-selected",
            "text": "侧边栏选定页签边框"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-border": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-border",
            "text": "侧边栏页签边框"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-divider": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-divider",
            "text": "侧边栏页签分隔线"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected",
            "text": "侧边栏选定页签前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground",
            "text": "侧边栏页签前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover",
            "text": "侧边栏悬停条目链结前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground",
            "text": "侧边栏条目链结前景"
        },
        "$:/language/Docs/PaletteColours/site-title-foreground": {
            "title": "$:/language/Docs/PaletteColours/site-title-foreground",
            "text": "网站标题前景"
        },
        "$:/language/Docs/PaletteColours/static-alert-foreground": {
            "title": "$:/language/Docs/PaletteColours/static-alert-foreground",
            "text": "静态警示前景"
        },
        "$:/language/Docs/PaletteColours/tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-background-selected",
            "text": "选定的页签背景"
        },
        "$:/language/Docs/PaletteColours/tab-background": {
            "title": "$:/language/Docs/PaletteColours/tab-background",
            "text": "页签背景"
        },
        "$:/language/Docs/PaletteColours/tab-border-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-border-selected",
            "text": "选定的页签边框"
        },
        "$:/language/Docs/PaletteColours/tab-border": {
            "title": "$:/language/Docs/PaletteColours/tab-border",
            "text": "页签边框"
        },
        "$:/language/Docs/PaletteColours/tab-divider": {
            "title": "$:/language/Docs/PaletteColours/tab-divider",
            "text": "页签分隔线"
        },
        "$:/language/Docs/PaletteColours/tab-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-foreground-selected",
            "text": "选定的页签前景"
        },
        "$:/language/Docs/PaletteColours/tab-foreground": {
            "title": "$:/language/Docs/PaletteColours/tab-foreground",
            "text": "页签前景"
        },
        "$:/language/Docs/PaletteColours/table-border": {
            "title": "$:/language/Docs/PaletteColours/table-border",
            "text": "表格边框"
        },
        "$:/language/Docs/PaletteColours/table-footer-background": {
            "title": "$:/language/Docs/PaletteColours/table-footer-background",
            "text": "表格页脚背景"
        },
        "$:/language/Docs/PaletteColours/table-header-background": {
            "title": "$:/language/Docs/PaletteColours/table-header-background",
            "text": "表格标题背景"
        },
        "$:/language/Docs/PaletteColours/tag-background": {
            "title": "$:/language/Docs/PaletteColours/tag-background",
            "text": "标签背景"
        },
        "$:/language/Docs/PaletteColours/tag-foreground": {
            "title": "$:/language/Docs/PaletteColours/tag-foreground",
            "text": "标签前景"
        },
        "$:/language/Docs/PaletteColours/tiddler-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-background",
            "text": "条目背景"
        },
        "$:/language/Docs/PaletteColours/tiddler-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-border",
            "text": "条目边框"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover",
            "text": "悬停的条目控制项前景"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected",
            "text": "选定的条目控制项前景"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground",
            "text": "条目控制项前景"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-background",
            "text": "条目编辑器背景"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-border-image": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-border-image",
            "text": "条目编辑器边框图片"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-border",
            "text": "条目编辑器边框"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-fields-even": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-even",
            "text": "条目编辑器中偶数栏位背景"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd",
            "text": "条目编辑器中奇数栏位背景"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-background",
            "text": "条目信息面板背景"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-border",
            "text": "条目信息面板边框"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-tab-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-tab-background",
            "text": "条目信息面板页签背景"
        },
        "$:/language/Docs/PaletteColours/tiddler-link-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-link-background",
            "text": "条目链结背景"
        },
        "$:/language/Docs/PaletteColours/tiddler-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-link-foreground",
            "text": "条目链结前景"
        },
        "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground",
            "text": "条目副标题前景"
        },
        "$:/language/Docs/PaletteColours/tiddler-title-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-title-foreground",
            "text": "条目标题前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-new-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-new-button",
            "text": "工具栏 '添加条目' 按钮前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-options-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-options-button",
            "text": "工具栏 '选项' 按钮前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-save-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-save-button",
            "text": "工具栏 '保存' 按钮前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-info-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-info-button",
            "text": "工具栏 '资讯' 按钮前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-edit-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-edit-button",
            "text": "工具栏 '编辑' 按钮前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-close-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-close-button",
            "text": "工具栏 '关闭' 按钮前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-delete-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-delete-button",
            "text": "工具栏 '删除' 按钮前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-cancel-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-cancel-button",
            "text": "工具栏 '取消' 按钮前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-done-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-done-button",
            "text": "工具栏 '完成  按钮前景"
        },
        "$:/language/Docs/PaletteColours/untagged-background": {
            "title": "$:/language/Docs/PaletteColours/untagged-background",
            "text": "未设标签的背景"
        },
        "$:/language/Docs/PaletteColours/very-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/very-muted-foreground",
            "text": "非常低调前景"
        },
        "$:/language/EditTemplate/Body/External/Hint": {
            "title": "$:/language/EditTemplate/Body/External/Hint",
            "text": "这是保存于主要的 TiddlyWiki 文件之外的外部条目。你可以编辑其标签和栏位,但不能直接编辑内容本身"
        },
        "$:/language/EditTemplate/Body/Placeholder": {
            "title": "$:/language/EditTemplate/Body/Placeholder",
            "text": "输入此条目的内容"
        },
        "$:/language/EditTemplate/Body/Preview/Type/Output": {
            "title": "$:/language/EditTemplate/Body/Preview/Type/Output",
            "text": "输出"
        },
        "$:/language/EditTemplate/Field/Remove/Caption": {
            "title": "$:/language/EditTemplate/Field/Remove/Caption",
            "text": "删除栏位"
        },
        "$:/language/EditTemplate/Field/Remove/Hint": {
            "title": "$:/language/EditTemplate/Field/Remove/Hint",
            "text": "删除栏位"
        },
        "$:/language/EditTemplate/Fields/Add/Button": {
            "title": "$:/language/EditTemplate/Fields/Add/Button",
            "text": "添加"
        },
        "$:/language/EditTemplate/Fields/Add/Dropdown/System": {
            "title": "$:/language/EditTemplate/Fields/Add/Dropdown/System",
            "text": "系统栏位"
        },
        "$:/language/EditTemplate/Fields/Add/Dropdown/User": {
            "title": "$:/language/EditTemplate/Fields/Add/Dropdown/User",
            "text": "使用者栏位"
        },
        "$:/language/EditTemplate/Fields/Add/Name/Placeholder": {
            "title": "$:/language/EditTemplate/Fields/Add/Name/Placeholder",
            "text": "栏位名称"
        },
        "$:/language/EditTemplate/Fields/Add/Prompt": {
            "title": "$:/language/EditTemplate/Fields/Add/Prompt",
            "text": "添加栏位:"
        },
        "$:/language/EditTemplate/Fields/Add/Value/Placeholder": {
            "title": "$:/language/EditTemplate/Fields/Add/Value/Placeholder",
            "text": "栏位内容"
        },
        "$:/language/EditTemplate/Shadow/Warning": {
            "title": "$:/language/EditTemplate/Shadow/Warning",
            "text": "这是一个默认条目。您做的任何更改将会覆盖来自 <<pluginLink>> 插件的默认版本。"
        },
        "$:/language/EditTemplate/Shadow/OverriddenWarning": {
            "title": "$:/language/EditTemplate/Shadow/OverriddenWarning",
            "text": "这是一个修改过的默认条目。删除此条目可以还原为 <<pluginLink>> 插件中的默认版本。"
        },
        "$:/language/EditTemplate/Tags/Add/Button": {
            "title": "$:/language/EditTemplate/Tags/Add/Button",
            "text": "添加"
        },
        "$:/language/EditTemplate/Tags/Add/Placeholder": {
            "title": "$:/language/EditTemplate/Tags/Add/Placeholder",
            "text": "标签名称"
        },
        "$:/language/EditTemplate/Tags/Dropdown/Caption": {
            "title": "$:/language/EditTemplate/Tags/Dropdown/Caption",
            "text": "标签清单"
        },
        "$:/language/EditTemplate/Tags/Dropdown/Hint": {
            "title": "$:/language/EditTemplate/Tags/Dropdown/Hint",
            "text": "显示标签清单"
        },
        "$:/language/EditTemplate/Title/BadCharacterWarning": {
            "title": "$:/language/EditTemplate/Title/BadCharacterWarning",
            "text": "请注意,避免在条目名称中使用这些字符:<<bad-chars>>"
        },
        "$:/language/EditTemplate/Title/Exists/Prompt": {
            "title": "$:/language/EditTemplate/Title/Exists/Prompt",
            "text": "目标条目已经存在"
        },
        "$:/language/EditTemplate/Title/Relink/Prompt": {
            "title": "$:/language/EditTemplate/Title/Relink/Prompt",
            "text": "将在其他条目的 //tags// 和 //list// 栏位中的 ''<$text text=<<fromTitle>>/>'' 改为 ''<$text text=<<toTitle>>/>''"
        },
        "$:/language/EditTemplate/Type/Dropdown/Caption": {
            "title": "$:/language/EditTemplate/Type/Dropdown/Caption",
            "text": "内容类型清单"
        },
        "$:/language/EditTemplate/Type/Dropdown/Hint": {
            "title": "$:/language/EditTemplate/Type/Dropdown/Hint",
            "text": "显示内容类型清单"
        },
        "$:/language/EditTemplate/Type/Delete/Caption": {
            "title": "$:/language/EditTemplate/Type/Delete/Caption",
            "text": "删除内容类型"
        },
        "$:/language/EditTemplate/Type/Delete/Hint": {
            "title": "$:/language/EditTemplate/Type/Delete/Hint",
            "text": "删除内容类型"
        },
        "$:/language/EditTemplate/Type/Placeholder": {
            "title": "$:/language/EditTemplate/Type/Placeholder",
            "text": "内容类型"
        },
        "$:/language/EditTemplate/Type/Prompt": {
            "title": "$:/language/EditTemplate/Type/Prompt",
            "text": "类型:"
        },
        "$:/language/Exporters/StaticRiver": {
            "title": "$:/language/Exporters/StaticRiver",
            "text": "静态 HTML"
        },
        "$:/language/Exporters/JsonFile": {
            "title": "$:/language/Exporters/JsonFile",
            "text": "JSON 文件"
        },
        "$:/language/Exporters/CsvFile": {
            "title": "$:/language/Exporters/CsvFile",
            "text": "CSV 文件"
        },
        "$:/language/Exporters/TidFile": {
            "title": "$:/language/Exporters/TidFile",
            "text": "\".tid\" 文件"
        },
        "$:/language/Docs/Fields/_canonical_uri": {
            "title": "$:/language/Docs/Fields/_canonical_uri",
            "text": "外部图像条目的完整的 URI"
        },
        "$:/language/Docs/Fields/bag": {
            "title": "$:/language/Docs/Fields/bag",
            "text": "条目的来源集的名称"
        },
        "$:/language/Docs/Fields/caption": {
            "title": "$:/language/Docs/Fields/caption",
            "text": "显示于页签或按钮上的标题文字"
        },
        "$:/language/Docs/Fields/color": {
            "title": "$:/language/Docs/Fields/color",
            "text": "条目的 CSS 颜色值"
        },
        "$:/language/Docs/Fields/component": {
            "title": "$:/language/Docs/Fields/component",
            "text": "负责[[警示条目|AlertMechanism]]的组件名称"
        },
        "$:/language/Docs/Fields/created": {
            "title": "$:/language/Docs/Fields/created",
            "text": "条目的创建日期"
        },
        "$:/language/Docs/Fields/creator": {
            "title": "$:/language/Docs/Fields/creator",
            "text": "条目的创建者"
        },
        "$:/language/Docs/Fields/current-tiddler": {
            "title": "$:/language/Docs/Fields/current-tiddler",
            "text": "用于缓存[[浏览历史列表|HistoryMechanism]]的最上层条目"
        },
        "$:/language/Docs/Fields/dependents": {
            "title": "$:/language/Docs/Fields/dependents",
            "text": "插件的相依插件列表"
        },
        "$:/language/Docs/Fields/description": {
            "title": "$:/language/Docs/Fields/description",
            "text": "插件的说明、描述"
        },
        "$:/language/Docs/Fields/draft.of": {
            "title": "$:/language/Docs/Fields/draft.of",
            "text": "草稿条目,包含条目的标题、标签、栏位 ..."
        },
        "$:/language/Docs/Fields/draft.title": {
            "title": "$:/language/Docs/Fields/draft.title",
            "text": "草稿条目的标题"
        },
        "$:/language/Docs/Fields/footer": {
            "title": "$:/language/Docs/Fields/footer",
            "text": "wizard 的注脚"
        },
        "$:/language/Docs/Fields/hack-to-give-us-something-to-compare-against": {
            "title": "$:/language/Docs/Fields/hack-to-give-us-something-to-compare-against",
            "text": "于 [[$:/core/templates/static.content]] 使用的临时保存栏位"
        },
        "$:/language/Docs/Fields/icon": {
            "title": "$:/language/Docs/Fields/icon",
            "text": "条目的标题含有与条目关联的图标"
        },
        "$:/language/Docs/Fields/library": {
            "title": "$:/language/Docs/Fields/library",
            "text": "若设为 “yes”,表示条目应该被保存为一个 JavaScript 程序库"
        },
        "$:/language/Docs/Fields/list": {
            "title": "$:/language/Docs/Fields/list",
            "text": "条目的列表,指定一些条目的标题清单"
        },
        "$:/language/Docs/Fields/list-before": {
            "title": "$:/language/Docs/Fields/list-before",
            "text": "前条目名称将被添加到条目排序清单中的设置条目名称之前,或若此栏位存在但是空的,则在清单的起始位置"
        },
        "$:/language/Docs/Fields/list-after": {
            "title": "$:/language/Docs/Fields/list-after",
            "text": "当前条目名称将被添加到条目排序清单的设置条目名称之后"
        },
        "$:/language/Docs/Fields/modified": {
            "title": "$:/language/Docs/Fields/modified",
            "text": "条目的最近修改日期与时间"
        },
        "$:/language/Docs/Fields/modifier": {
            "title": "$:/language/Docs/Fields/modifier",
            "text": "条目的最近修改者"
        },
        "$:/language/Docs/Fields/name": {
            "title": "$:/language/Docs/Fields/name",
            "text": "具可读性的插件条目的名称"
        },
        "$:/language/Docs/Fields/plugin-priority": {
            "title": "$:/language/Docs/Fields/plugin-priority",
            "text": "插件条目的优先级数值"
        },
        "$:/language/Docs/Fields/plugin-type": {
            "title": "$:/language/Docs/Fields/plugin-type",
            "text": "插件条目的类型"
        },
        "$:/language/Docs/Fields/released": {
            "title": "$:/language/Docs/Fields/released",
            "text": "TiddlyWiki 的发布日期"
        },
        "$:/language/Docs/Fields/revision": {
            "title": "$:/language/Docs/Fields/revision",
            "text": "条目存放于服务器中的修订版本"
        },
        "$:/language/Docs/Fields/source": {
            "title": "$:/language/Docs/Fields/source",
            "text": "条目的网址"
        },
        "$:/language/Docs/Fields/subtitle": {
            "title": "$:/language/Docs/Fields/subtitle",
            "text": "一个 wizard 的副标题"
        },
        "$:/language/Docs/Fields/tags": {
            "title": "$:/language/Docs/Fields/tags",
            "text": "条目的标签清单"
        },
        "$:/language/Docs/Fields/text": {
            "title": "$:/language/Docs/Fields/text",
            "text": "条目的内文"
        },
        "$:/language/Docs/Fields/title": {
            "title": "$:/language/Docs/Fields/title",
            "text": "条目的唯一名称"
        },
        "$:/language/Docs/Fields/type": {
            "title": "$:/language/Docs/Fields/type",
            "text": "条目的内容类型"
        },
        "$:/language/Docs/Fields/version": {
            "title": "$:/language/Docs/Fields/version",
            "text": "插件的版本信息"
        },
        "$:/language/Filters/AllTiddlers": {
            "title": "$:/language/Filters/AllTiddlers",
            "text": "所有条目,不含系统条目"
        },
        "$:/language/Filters/RecentSystemTiddlers": {
            "title": "$:/language/Filters/RecentSystemTiddlers",
            "text": "最近修改的条目,包含系统条目"
        },
        "$:/language/Filters/RecentTiddlers": {
            "title": "$:/language/Filters/RecentTiddlers",
            "text": "最近修改的条目"
        },
        "$:/language/Filters/AllTags": {
            "title": "$:/language/Filters/AllTags",
            "text": "所有标签,不含系统标签"
        },
        "$:/language/Filters/Missing": {
            "title": "$:/language/Filters/Missing",
            "text": "缺失条目"
        },
        "$:/language/Filters/Drafts": {
            "title": "$:/language/Filters/Drafts",
            "text": "草稿条目"
        },
        "$:/language/Filters/Orphans": {
            "title": "$:/language/Filters/Orphans",
            "text": "孤立条目"
        },
        "$:/language/Filters/SystemTiddlers": {
            "title": "$:/language/Filters/SystemTiddlers",
            "text": "系统条目"
        },
        "$:/language/Filters/ShadowTiddlers": {
            "title": "$:/language/Filters/ShadowTiddlers",
            "text": "默认条目"
        },
        "$:/language/Filters/OverriddenShadowTiddlers": {
            "title": "$:/language/Filters/OverriddenShadowTiddlers",
            "text": "被覆写的默认条目"
        },
        "$:/language/Filters/SystemTags": {
            "title": "$:/language/Filters/SystemTags",
            "text": "系统标签"
        },
        "$:/language/Filters/StoryList": {
            "title": "$:/language/Filters/StoryList",
            "text": "故事河中的条目,不含 ~$:/AdvancedSearch"
        },
        "$:/language/Filters/TypedTiddlers": {
            "title": "$:/language/Filters/TypedTiddlers",
            "text": "非维基文字条目"
        },
        "GettingStarted": {
            "title": "GettingStarted",
            "text": "\\define lingo-base() $:/language/ControlPanel/Basics/\n欢迎使用 ~TiddlyWiki 及参与 ~TiddlyWiki 社群\n\n开始将重要资讯存放于 ~TiddlyWiki 之前,确认您可以可靠地保存变更是很重要的。详细资讯请参阅 http://tiddlywiki.com/#GettingStarted\n\n!! 设置此 ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\n请参阅[[控制台|$:/ControlPanel]]查看更多选项。"
        },
        "$:/language/Help/build": {
            "title": "$:/language/Help/build",
            "description": "自动执行已配置的命令",
            "text": "生成指定的生成目标为当前 wiki。若未指定任何生成目标,则生成所有可用的目标。\n\n```\n--build <target> [<target> ...]\n```\n\n生成目标在 wiki 文件夹的 `tiddlywiki.info` 文件中定义。\n"
        },
        "$:/language/Help/clearpassword": {
            "title": "$:/language/Help/clearpassword",
            "description": "清除用于后续加密的密码",
            "text": "清除用于后续加密的密码\n\n```\n--clearpassword\n```\n"
        },
        "$:/language/Help/default": {
            "title": "$:/language/Help/default",
            "text": "\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\n用法: tiddlywiki [<wikifolder>] [--<command> [<args>...]...]\n```\n\n可用的命令:\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link>: <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\n取得关于某个命令的详细帮助:\n\n```\ntiddlywiki --help <command>\n```\n"
        },
        "$:/language/Help/editions": {
            "title": "$:/language/Help/editions",
            "description": "列出可用的 TiddlyWiki 版本",
            "text": "列出可用版本的名称和描述。您可以用 `--init` 命令创建一个指定版本的新维基。\n\n```\n--editions\n```\n"
        },
        "$:/language/Help/fetch": {
            "title": "$:/language/Help/fetch",
            "description": "通过网址从维基撷取条目",
            "text": "通过 HTTP/HTTPS 撷取一个或多个文件,并导入匹配筛选器的条目,可选的转换传入的名称。\n\n```\n--fetch file <url> <import-filter> <transform-filter>\n--fetch files <url-filter> <import-filter> <transform-filter>\n```\n\n使用 \"file\" 选项为仅撷取单个文件,且第一个参数为要读取文件的网址。\n\n使用 \"files\" 选项为撷取多个文件,且第一个参数是一个产生要读取文件的网址清单的筛选器。例如,给定标签为 \"remote-server\" 的一组具有字段 \"url\" 的条目,筛选器 `[tag[remote-server]get[url]]` 将取回所有可用的网址。\n\n`<import-filter>` 参数指定一个筛选器,用于确定要导入哪些条目。如果未提供,则默认为 `[all[tiddlers]]`。\n\n`<transform-filter>` 参数指定一个可选的筛选器,用于转换导入条目的名称。例如,`[addprefix[$:/myimports/]]` 会将前缀 `$:/myimports/` 加至每个名称。\n\n于 `--fetch` 之前使用 `--verbose` 命令,将在导入期间输出进度信息。\n\n请注意,TiddlyWiki 不会撷取一个已经加载插件的旧版本。\n\n以下示例从 http://tiddlywiki.com 取回所有非系统条目,并将其保存到一个 JSON 文件:\n\n```\ntiddlywiki --verbose --fetch file \"http://tiddlywiki.com/\" \"[!is[system]]\" \"\" --rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[!is[system]]\"\n```\n\n"
        },
        "$:/language/Help/help": {
            "title": "$:/language/Help/help",
            "description": "显示 TiddlyWiki 命令的说明",
            "text": "显示命令的帮助文本:\n\n```\n--help [<command>]\n```\n\n若省略命令名称,则显示可用命令的清单。\n"
        },
        "$:/language/Help/init": {
            "title": "$:/language/Help/init",
            "description": "初始化一个新的 wiki 文件夹",
            "text": "初始化一个空的 [[WikiFolder|WikiFolders]] 的指定版本的副本。\n\n```\n--init <edition> [<edition> ...]\n```\n\n例如:\n\n```\ntiddlywiki ./MyWikiFolder --init empty\n```\n\n注意:\n\n* 若有需要,将创建 wiki 文件夹目录\n* 其中 \"edition\" 默认为 ''empty''\n* 若 wiki 文件夹不是空的,则初始化命令将失败\n* 初始化命令会删除 'tiddlywiki.info' 文件内所有 'includeWikis' 的定义。\n* 当指定多个版本时,这些版本于初始化后,将覆写早期版本共用的所有文件 (故此最终的 `tiddlywiki.info` 文件将是从最近的版本复制而得)\n* `--editions` 传回所有可用版本的清单。\n"
        },
        "$:/language/Help/load": {
            "title": "$:/language/Help/load",
            "description": "从文件中加载条目",
            "text": "从 2.x.x TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` 或其他文件加载条目\n\n```\n--load <filepath>\n```\n\n从已加密的 TiddlyWiki 文件中加载条目,须使用 PasswordCommand 指定密码,例如:\n\n```\ntiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html\n```\n\n请注意 TiddlyWiki 将不加载旧版本的已挂载的插件。\n"
        },
        "$:/language/Help/makelibrary": {
            "title": "$:/language/Help/makelibrary",
            "description": "构建升级处理所需的程式库插件",
            "text": "为升级处理构建 `$:/UpgradeLibrary` 条目。\n\n升级程式库被格式化为一个插件类型为 `library` 的一般插件条目。它包含 TiddlyWiki5 存储库中所有可用的插件、布景主题和语言包的副本。\n\n此命令仅供内部使用;它只是与使用者构建一个自订的升级程序相关。\n\n```\n--makelibrary <title>\n```\n\n标题参数默认为 `$:/UpgradeLibrary`。\n"
        },
        "$:/language/Help/notfound": {
            "title": "$:/language/Help/notfound",
            "text": "无此帮助项目"
        },
        "$:/language/Help/output": {
            "title": "$:/language/Help/output",
            "description": "设置后续命令的基准输出文件夹",
            "text": "设置后续命令的基准输出文件夹,默认为该版本文件夹的 `output` 子文件夹。\n\n```\n--output <pathname>\n```\n\n若指定的路径是相对路径,则它是被解析相对于当前的工作文件夹。例如:`--output .` 將輸出文件夹設置為當前工作文件夹。"
        },
        "$:/language/Help/password": {
            "title": "$:/language/Help/password",
            "description": "设置用以加密的密码",
            "text": "设置用以加密的密码\n\n```\n--password <password>\n```\n\n''请注意'':这不是用于提供 TiddlyWiki 具有密码保护功能。相反地,请看 [[ServerCommand]] 的密码选项说明。\n"
        },
        "$:/language/Help/rendertiddler": {
            "title": "$:/language/Help/rendertiddler",
            "description": "呈现个别条目为指定的内容类型",
            "text": "呈现个别条目为指定的[[内容类型|ContentType]],默认为 `text/html` 且保存为指定的文件名。\n\n还可以指定一个模板,在这种情况下,\"currentTiddler\" 变量设为正在呈现的条目 (第一个参数值) 与模板条目合并呈现。\n\n也能可选地指定附加变量的名称与其值。\n\n```\n--rendertiddler <title> <filename> [<type>] [<template>]\n```\n\n默认情况下,文件名被解析为相对于版本文件夹的 `output` 子文件夹。 `--output` 命令可以用于将输出指定到一个不同的文件夹。\n\n自动创建在文件名称的路径中任何缺少的文件夹。\n\n例如,以下命令通过使用核心模板 `$:/core/templates/exporters/JsonFile`,将所有匹配筛选器 `[tag[done]]` 的条目保存到名为 `output.json` 的 JSON 文件。\n\n```\n--rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[tag[done]]\"\n```"
        },
        "$:/language/Help/rendertiddlers": {
            "title": "$:/language/Help/rendertiddlers",
            "description": "呈现符合筛选条件的条目为指定的内容类型",
            "text": "呈现符合筛选条的条目为指定的[[内容类型|ContentType]] (默认为 `text/html`) 与扩展名 (默认为 `.html`).\n\n```\n--rendertiddlers <filter> <template> <pathname> [<type>] [<extension>] [\"noclean\"]\n```\n\n例如:\n\n```\n--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain\n```\n\n默认情况下,路径名被解析为相对于版本文件夹的 `output` 子文件夹。 `--output` 命令可以用于将输出指定到一个不同的文件。\n\n在目标文件夹中的任何文件都会被删除,除非指定 ''noclean'' 旗标。若缺少目标文件夹,则以递归方式创建。"
        },
        "$:/language/Help/savetiddler": {
            "title": "$:/language/Help/savetiddler",
            "description": "将条目的原始内容保存到一个文件",
            "text": "保存个别条目的原始文本或二进制格式到指定的文件名。\n\n```\n--savetiddler <title> <filename>\n```\n\n默认情况下,文件名被解析为相对于版本文件夹的 `output` 子文件夹。 `--output` 命令可以用于将输出指定到一个不同的文件。\n\n自动创建在文件名称的路径中任何缺少的文件夹。\n"
        },
        "$:/language/Help/savetiddlers": {
            "title": "$:/language/Help/savetiddlers",
            "description": "将一群条目的原始内容保存到一个文件夹",
            "text": "保存一群条目的原始文字或二进制格式到指定的文件夹。\n\n```\n--savetiddlers <filter> <pathname> [noclean]\n```\n\n默认情况下,路径名被解析为相对于版本文件夹的 `output` 子文件夹。 `--output` 命令可以用于将输出指定到一个不同的文件夹。\n\n保存指定的文件之前,会先清除输出目录的现有文件。可藉由指定 ''noclean'' 旗标,禁用该删除动作。\n\n自动创建在路径中任何缺少的文件夹。\n"
        },
        "$:/language/Help/server": {
            "title": "$:/language/Help/server",
            "description": "提供一个 HTTP 服务器介面到 TiddlyWiki",
            "text": "在服务器中内置 TiddlyWiki5 是非常简单。虽与 TiddlyWeb 兼容,但不支持许多健全互联网面向的使用方式所需的功能。\n\n提供呈现一个指定条目,也可将个别条目编码成 JSON,且支持基本的 HTTP 操作 `GET`、`PUT` 及 `DELETE`.\n\n```\n--server <port> <roottiddler> <rendertype> <servetype> <username> <password> <host> <pathprefix>\n```\n\n参数说明:\n\n* ''port'' - 服务的埠号 (默认为 \"8080\")\n* ''roottiddler'' - 服务的基本条目 (默认为 \"$:/core/save/all\")\n* ''rendertype'' - 呈现的基本条目内容类型 (默认为 \"text/plain\")\n* ''servetype'' - 服务的基本条目内容类型(默认为 \"text/html\")\n* ''username'' - 默认的编辑者署名\n* ''password'' - 可选的基本验证密码\n* ''host'' - 可选的主机名称, (默认为 \"127.0.0.1\" 或名为 \"localhost\")\n* ''pathprefix'' - 可选的路径前缀\n\n若指定密码参数,浏览器将提示使用者输入用户名与密码。注意,密码系以明码方式传递,因此并不适合一般正式用途。\n\n例如:\n\n```\n--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n\n若您需要设置主机名称或路径前缀而不要求输入密码,则可以指定空字符串的使用者名和密码:\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\n同时执行多个 TiddlyWiki 服务,须分别指定不同的埠号。\n"
        },
        "$:/language/Help/setfield": {
            "title": "$:/language/Help/setfield",
            "description": "准备用于外部条目",
            "text": "//请注意此命令是试验性的,且可能会更改或在最终定稿前被替换//\n\n设置一群条目的指定栏位到 wikifying 范本条目的结果,其中的  `currentTiddler` 变数设置为各该条目。\n\n```\n--setfield <filter> <fieldname> <templatetitle> <rendertype>\n```\n\n参数说明:\n\n* ''filter'' - 受影响的辨识条目的筛选条件\n* ''fieldname'' - 要修改的栏位(默认为 \"text\")\n* ''templatetitle'' - 该条目 wikify 到指定栏位。若为空白或丢失,则删除指定的栏位\n* ''rendertype'' - 要呈现的文本类型(默认为 \"text/plain\"; \"text/html\" 可以用于包含 HTML 标记))\n"
        },
        "$:/language/Help/unpackplugin": {
            "title": "$:/language/Help/unpackplugin",
            "description": "从插件解开附属的条目",
            "text": "提取插件的附属条目,将其建立为一般条目:\n\n```\n--unpackplugin <title>\n```\n"
        },
        "$:/language/Help/verbose": {
            "title": "$:/language/Help/verbose",
            "description": "触发详细的输出模式",
            "text": "触发显示详细的命令执行过程,可用于调试\n\n```\n--verbose\n```\n"
        },
        "$:/language/Help/version": {
            "title": "$:/language/Help/version",
            "description": "显示 TiddlyWiki 的版本编号",
            "text": "显示 TiddlyWiki 的版本编号。\n\n```\n--version\n```\n"
        },
        "$:/language/Import/Imported/Hint": {
            "title": "$:/language/Import/Imported/Hint",
            "text": "下列条目已被导入:"
        },
        "$:/language/Import/Listing/Cancel/Caption": {
            "title": "$:/language/Import/Listing/Cancel/Caption",
            "text": "取消"
        },
        "$:/language/Import/Listing/Hint": {
            "title": "$:/language/Import/Listing/Hint",
            "text": "这些条目已备妥导入:"
        },
        "$:/language/Import/Listing/Import/Caption": {
            "title": "$:/language/Import/Listing/Import/Caption",
            "text": "导入"
        },
        "$:/language/Import/Listing/Select/Caption": {
            "title": "$:/language/Import/Listing/Select/Caption",
            "text": "选择"
        },
        "$:/language/Import/Listing/Status/Caption": {
            "title": "$:/language/Import/Listing/Status/Caption",
            "text": "状态"
        },
        "$:/language/Import/Listing/Title/Caption": {
            "title": "$:/language/Import/Listing/Title/Caption",
            "text": "条目"
        },
        "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible": {
            "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible",
            "text": "封锁的不兼容或过时插件"
        },
        "$:/language/Import/Upgrader/Plugins/Suppressed/Version": {
            "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Version",
            "text": "封锁的插件 (由于传入的 <<incoming>> 较现有版本 <<existing>> 旧)"
        },
        "$:/language/Import/Upgrader/Plugins/Upgraded": {
            "title": "$:/language/Import/Upgrader/Plugins/Upgraded",
            "text": "升级插件,从 <<incoming>> 到 <<upgraded>>"
        },
        "$:/language/Import/Upgrader/State/Suppressed": {
            "title": "$:/language/Import/Upgrader/State/Suppressed",
            "text": "封锁的暂存状态条目"
        },
        "$:/language/Import/Upgrader/System/Suppressed": {
            "title": "$:/language/Import/Upgrader/System/Suppressed",
            "text": "封锁的系统条目"
        },
        "$:/language/Import/Upgrader/ThemeTweaks/Created": {
            "title": "$:/language/Import/Upgrader/ThemeTweaks/Created",
            "text": "从 <$text text=<<from>>/> 迁移布景主题"
        },
        "$:/language/AboveStory/ClassicPlugin/Warning": {
            "title": "$:/language/AboveStory/ClassicPlugin/Warning",
            "text": "您貌似要加载为 ~TiddlyWiki 经典版设计的插件。请注意,[[这些插件无法运行于 TiddlyWiki 5.x.x 版|http://tiddlywiki.com/#TiddlyWikiClassic]]。检测到 ~TiddlyWiki 经典版插件:"
        },
        "$:/language/BinaryWarning/Prompt": {
            "title": "$:/language/BinaryWarning/Prompt",
            "text": "此条目包含二进制数据"
        },
        "$:/language/ClassicWarning/Hint": {
            "title": "$:/language/ClassicWarning/Hint",
            "text": "此条目以经典版 TiddlyWiki 标记格式撰写,不完全兼容新版 TiddlyWiki 的格式,详细信息请参阅:http://tiddlywiki.com/static/Upgrading。"
        },
        "$:/language/ClassicWarning/Upgrade/Caption": {
            "title": "$:/language/ClassicWarning/Upgrade/Caption",
            "text": "升级"
        },
        "$:/language/CloseAll/Button": {
            "title": "$:/language/CloseAll/Button",
            "text": "全部关闭"
        },
        "$:/language/ColourPicker/Recent": {
            "title": "$:/language/ColourPicker/Recent",
            "text": "最近︰"
        },
        "$:/language/ConfirmCancelTiddler": {
            "title": "$:/language/ConfirmCancelTiddler",
            "text": "您确定要放弃对条目 \"<$text text=<<title>>/>\" 的更改?"
        },
        "$:/language/ConfirmDeleteTiddler": {
            "title": "$:/language/ConfirmDeleteTiddler",
            "text": "您确定要删除条目 \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmOverwriteTiddler": {
            "title": "$:/language/ConfirmOverwriteTiddler",
            "text": "您确定要覆写条目 \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmEditShadowTiddler": {
            "title": "$:/language/ConfirmEditShadowTiddler",
            "text": "您即将要编辑默认条目,任何更改将会覆盖默认的系统,使未来的升级不寻常。您确定要编辑 \"<$text text=<<title>>/>\"?"
        },
        "$:/language/Count": {
            "title": "$:/language/Count",
            "text": "计数"
        },
        "$:/language/DefaultNewTiddlerTitle": {
            "title": "$:/language/DefaultNewTiddlerTitle",
            "text": "新条目"
        },
        "$:/language/DropMessage": {
            "title": "$:/language/DropMessage",
            "text": "拖放到此处 (或按 ESC 键取消)"
        },
        "$:/language/Encryption/Cancel": {
            "title": "$:/language/Encryption/Cancel",
            "text": "取消"
        },
        "$:/language/Encryption/ConfirmClearPassword": {
            "title": "$:/language/Encryption/ConfirmClearPassword",
            "text": "您要清除密码吗?当保存此维基时,这将删除已套用的加密"
        },
        "$:/language/Encryption/Username": {
            "title": "$:/language/Encryption/Username",
            "text": "用户名称"
        },
        "$:/language/Encryption/Password": {
            "title": "$:/language/Encryption/Password",
            "text": "密码"
        },
        "$:/language/Encryption/PromptSetPassword": {
            "title": "$:/language/Encryption/PromptSetPassword",
            "text": "为此 TiddlyWiki 设置一个新密码"
        },
        "$:/language/Encryption/RepeatPassword": {
            "title": "$:/language/Encryption/RepeatPassword",
            "text": "重复输入密码"
        },
        "$:/language/Encryption/PasswordNoMatch": {
            "title": "$:/language/Encryption/PasswordNoMatch",
            "text": "密码不匹配"
        },
        "$:/language/Encryption/SetPassword": {
            "title": "$:/language/Encryption/SetPassword",
            "text": "设定密码"
        },
        "$:/language/Error/Caption": {
            "title": "$:/language/Error/Caption",
            "text": "错误"
        },
        "$:/language/Error/EditConflict": {
            "title": "$:/language/Error/EditConflict",
            "text": "服务器上的文件已更改"
        },
        "$:/language/Error/Filter": {
            "title": "$:/language/Error/Filter",
            "text": "筛选器错误"
        },
        "$:/language/Error/FilterSyntax": {
            "title": "$:/language/Error/FilterSyntax",
            "text": "筛选器运算式中的语法错误"
        },
        "$:/language/Error/IsFilterOperator": {
            "title": "$:/language/Error/IsFilterOperator",
            "text": "筛选器错误︰'is' 筛选器运算符的未知操作数"
        },
        "$:/language/Error/LoadingPluginLibrary": {
            "title": "$:/language/Error/LoadingPluginLibrary",
            "text": "加载插件程式库时,发生错误"
        },
        "$:/language/Error/RecursiveTransclusion": {
            "title": "$:/language/Error/RecursiveTransclusion",
            "text": "于 transclude 小部件中的递回嵌入错误"
        },
        "$:/language/Error/RetrievingSkinny": {
            "title": "$:/language/Error/RetrievingSkinny",
            "text": "简要条目清单撷取错误"
        },
        "$:/language/Error/SavingToTWEdit": {
            "title": "$:/language/Error/SavingToTWEdit",
            "text": "保存到 TWEdit 时,发生错误"
        },
        "$:/language/Error/WhileSaving": {
            "title": "$:/language/Error/WhileSaving",
            "text": "保存时,发生错误"
        },
        "$:/language/Error/XMLHttpRequest": {
            "title": "$:/language/Error/XMLHttpRequest",
            "text": "XMLHttpRequest 错误代码"
        },
        "$:/language/InternalJavaScriptError/Title": {
            "title": "$:/language/InternalJavaScriptError/Title",
            "text": "内部的 JavaScript 错误"
        },
        "$:/language/InternalJavaScriptError/Hint": {
            "title": "$:/language/InternalJavaScriptError/Hint",
            "text": "喔,真是令人尴尬。建议刷新您的浏览器,重新启动 TiddlyWiki"
        },
        "$:/language/InvalidFieldName": {
            "title": "$:/language/InvalidFieldName",
            "text": "栏位名称 \"<$text text=<<fieldName>>/>\" 包含无效字符,栏位名称只能包含小写字母、数字、底线 (`_`)、 连字号 (`-`) 和小数点 (`.`)"
        },
        "$:/language/LazyLoadingWarning": {
            "title": "$:/language/LazyLoadingWarning",
            "text": "<p>正在从 ''<$text text={{!!_canonical_uri}}/>'' 加载外部条目 ...</p><p>如果此信息未消失,可能您使用的浏览器不支援此配置的外部条目。请参阅 http://tiddlywiki.com/#ExternalText</p>"
        },
        "$:/language/LoginToTiddlySpace": {
            "title": "$:/language/LoginToTiddlySpace",
            "text": "登录 TiddlySpace"
        },
        "$:/language/Manager/Controls/FilterByTag/None": {
            "title": "$:/language/Manager/Controls/FilterByTag/None",
            "text": "(无)"
        },
        "$:/language/Manager/Controls/FilterByTag/Prompt": {
            "title": "$:/language/Manager/Controls/FilterByTag/Prompt",
            "text": "依标签筛选︰"
        },
        "$:/language/Manager/Controls/Order/Prompt": {
            "title": "$:/language/Manager/Controls/Order/Prompt",
            "text": "反向顺序"
        },
        "$:/language/Manager/Controls/Search/Placeholder": {
            "title": "$:/language/Manager/Controls/Search/Placeholder",
            "text": "搜寻"
        },
        "$:/language/Manager/Controls/Search/Prompt": {
            "title": "$:/language/Manager/Controls/Search/Prompt",
            "text": "搜寻︰"
        },
        "$:/language/Manager/Controls/Show/Option/Tags": {
            "title": "$:/language/Manager/Controls/Show/Option/Tags",
            "text": "标签"
        },
        "$:/language/Manager/Controls/Show/Option/Tiddlers": {
            "title": "$:/language/Manager/Controls/Show/Option/Tiddlers",
            "text": "条目"
        },
        "$:/language/Manager/Controls/Show/Prompt": {
            "title": "$:/language/Manager/Controls/Show/Prompt",
            "text": "显示︰"
        },
        "$:/language/Manager/Controls/Sort/Prompt": {
            "title": "$:/language/Manager/Controls/Sort/Prompt",
            "text": "排序︰"
        },
        "$:/language/Manager/Item/Colour": {
            "title": "$:/language/Manager/Item/Colour",
            "text": "颜色"
        },
        "$:/language/Manager/Item/Fields": {
            "title": "$:/language/Manager/Item/Fields",
            "text": "栏位"
        },
        "$:/language/Manager/Item/Icon/None": {
            "title": "$:/language/Manager/Item/Icon/None",
            "text": "(无)"
        },
        "$:/language/Manager/Item/Icon": {
            "title": "$:/language/Manager/Item/Icon",
            "text": "图标"
        },
        "$:/language/Manager/Item/RawText": {
            "title": "$:/language/Manager/Item/RawText",
            "text": "原始文字"
        },
        "$:/language/Manager/Item/Tags": {
            "title": "$:/language/Manager/Item/Tags",
            "text": "标签"
        },
        "$:/language/Manager/Item/Tools": {
            "title": "$:/language/Manager/Item/Tools",
            "text": "工具"
        },
        "$:/language/Manager/Item/WikifiedText": {
            "title": "$:/language/Manager/Item/WikifiedText",
            "text": "Wikified 文字"
        },
        "$:/language/MissingTiddler/Hint": {
            "title": "$:/language/MissingTiddler/Hint",
            "text": "佚失条目 \"<$text text=<<currentTiddler>>/>\" - 点击 {{$:/core/images/edit-button}} 可创建此条目"
        },
        "$:/language/No": {
            "title": "$:/language/No",
            "text": "否"
        },
        "$:/language/OfficialPluginLibrary": {
            "title": "$:/language/OfficialPluginLibrary",
            "text": "~TiddlyWiki 官方插件程式库"
        },
        "$:/language/OfficialPluginLibrary/Hint": {
            "title": "$:/language/OfficialPluginLibrary/Hint",
            "text": "此为在 tiddlywiki.com 的 ~TiddlyWiki 官方插件程式库。由核心团队维护的插件、主题和语言包。"
        },
        "$:/language/PluginReloadWarning": {
            "title": "$:/language/PluginReloadWarning",
            "text": "请保存 {{$:/core/ui/Buttons/save-wiki}} 并刷新页面 {{$:/core/ui/Buttons/refresh}} 允许更改插件才能生效"
        },
        "$:/language/RecentChanges/DateFormat": {
            "title": "$:/language/RecentChanges/DateFormat",
            "text": "YYYY年0MM月0DD日"
        },
        "$:/language/SystemTiddler/Tooltip": {
            "title": "$:/language/SystemTiddler/Tooltip",
            "text": "此为系统条目"
        },
        "$:/language/SystemTiddlers/Include/Prompt": {
            "title": "$:/language/SystemTiddlers/Include/Prompt",
            "text": "包括系统条目"
        },
        "$:/language/TagManager/Colour/Heading": {
            "title": "$:/language/TagManager/Colour/Heading",
            "text": "颜色"
        },
        "$:/language/TagManager/Count/Heading": {
            "title": "$:/language/TagManager/Count/Heading",
            "text": "计数"
        },
        "$:/language/TagManager/Icon/Heading": {
            "title": "$:/language/TagManager/Icon/Heading",
            "text": "图标"
        },
        "$:/language/TagManager/Info/Heading": {
            "title": "$:/language/TagManager/Info/Heading",
            "text": "信息"
        },
        "$:/language/TagManager/Tag/Heading": {
            "title": "$:/language/TagManager/Tag/Heading",
            "text": "标签"
        },
        "$:/language/Tiddler/DateFormat": {
            "title": "$:/language/Tiddler/DateFormat",
            "text": "YYYY年0MM月0DD日 0hh:0mm"
        },
        "$:/language/UnsavedChangesWarning": {
            "title": "$:/language/UnsavedChangesWarning",
            "text": "在此 TiddlyWiki 您有尚未保存的变更"
        },
        "$:/language/Yes": {
            "title": "$:/language/Yes",
            "text": "是"
        },
        "$:/language/Modals/Download": {
            "title": "$:/language/Modals/Download",
            "type": "text/vnd.tiddlywiki",
            "subtitle": "Download changes",
            "footer": "<$button message=\"tm-close-tiddler\">关闭</$button>",
            "help": "http://tiddlywiki.com/",
            "text": "您的浏览器只支援手动保存。\n\n要保存更动的维基,右键点击下方的下载链结,选择\"下载文件\"或\"保存文件\",然后选择文件夹或文件名。\n\n//您可以藉由按一下 Ctrl 键(Windows)或 options/ alt 键(Mac OS X)中的链接,稍微加速操作。您不会被提示文件夹或文件名,您的浏览器可能无法辨认它的文件名 -- 在做其他任何事之前,您可能需要重新命名扩展名为 `.html` 的文件。//\n\n在智能型手机上,不允许下载文件,但您可以标记链结,然后从一台可以正常保存维基的台式机的维基同步你的书签。"
        },
        "$:/language/Modals/SaveInstructions": {
            "title": "$:/language/Modals/SaveInstructions",
            "type": "text/vnd.tiddlywiki",
            "subtitle": "Save your work",
            "footer": "<$button message=\"tm-close-tiddler\">关闭</$button>",
            "help": "http://tiddlywiki.com/static/SavingChanges.html",
            "text": "您对此 wiki 的变更需被保存为 ~TiddlyWiki HTML 文件。\n\n!!! 桌面版浏览器\n\n# 从''文件''菜单点选 ''另存为''\n# 选定文件名及保存位置\n#* 某些浏览器依然需要明确指定文件格式为 ''Webpage, HTML only'' 或类似的。\n# 关闭此页签\n\n!!! 智能手机版浏览器\n\n# 为此页建立书签\n#* 若您已设置 iCloud 或 Google 同步,该书签将自动与之前开启及保存于您电脑的书签同步。\n# 关闭此页签\n\n//若您再次于 Mobile Safari 开启该书签,将会再看到此信息。若要继续使用该文件,只需点击下列 ''关闭'' 按钮//\n"
        },
        "$:/config/NewJournal/Title": {
            "title": "$:/config/NewJournal/Title",
            "text": "YYYY年0MM月0DD日"
        },
        "$:/config/NewJournal/Text": {
            "title": "$:/config/NewJournal/Text",
            "text": ""
        },
        "$:/config/NewJournal/Tags": {
            "title": "$:/config/NewJournal/Tags",
            "text": "日志"
        },
        "$:/language/Notifications/Save/Done": {
            "title": "$:/language/Notifications/Save/Done",
            "text": "已保存 wiki"
        },
        "$:/language/Notifications/Save/Starting": {
            "title": "$:/language/Notifications/Save/Starting",
            "text": "开始保存 wiki"
        },
        "$:/language/Search/DefaultResults/Caption": {
            "title": "$:/language/Search/DefaultResults/Caption",
            "text": "列表"
        },
        "$:/language/Search/Filter/Caption": {
            "title": "$:/language/Search/Filter/Caption",
            "text": "筛选"
        },
        "$:/language/Search/Filter/Hint": {
            "title": "$:/language/Search/Filter/Hint",
            "text": "以[[筛选表达式|http://tiddlywiki.com/static/Filters.html]]查找"
        },
        "$:/language/Search/Filter/Matches": {
            "title": "$:/language/Search/Filter/Matches",
            "text": "//<small><<resultCount>> 个条目符合条件</small>//"
        },
        "$:/language/Search/Matches": {
            "title": "$:/language/Search/Matches",
            "text": "//<small><<resultCount>> 个条目符合条件</small>//"
        },
        "$:/language/Search/Matches/All": {
            "title": "$:/language/Search/Matches/All",
            "text": "所有匹配:"
        },
        "$:/language/Search/Matches/Title": {
            "title": "$:/language/Search/Matches/Title",
            "text": "条目名称匹配:"
        },
        "$:/language/Search/Search": {
            "title": "$:/language/Search/Search",
            "text": "查找"
        },
        "$:/language/Search/Search/TooShort": {
            "title": "$:/language/Search/Search/TooShort",
            "text": "查找文本太短"
        },
        "$:/language/Search/Shadows/Caption": {
            "title": "$:/language/Search/Shadows/Caption",
            "text": "默认"
        },
        "$:/language/Search/Shadows/Hint": {
            "title": "$:/language/Search/Shadows/Hint",
            "text": "查找默认条目"
        },
        "$:/language/Search/Shadows/Matches": {
            "title": "$:/language/Search/Shadows/Matches",
            "text": "//<small><<resultCount>> 个条目符合条件</small>//"
        },
        "$:/language/Search/Standard/Caption": {
            "title": "$:/language/Search/Standard/Caption",
            "text": "标准"
        },
        "$:/language/Search/Standard/Hint": {
            "title": "$:/language/Search/Standard/Hint",
            "text": "查找一般条目"
        },
        "$:/language/Search/Standard/Matches": {
            "title": "$:/language/Search/Standard/Matches",
            "text": "//<small><<resultCount>> 个条目符合条件</small>//"
        },
        "$:/language/Search/System/Caption": {
            "title": "$:/language/Search/System/Caption",
            "text": "系统"
        },
        "$:/language/Search/System/Hint": {
            "title": "$:/language/Search/System/Hint",
            "text": "查找系统条目"
        },
        "$:/language/Search/System/Matches": {
            "title": "$:/language/Search/System/Matches",
            "text": "//<small><<resultCount>> 个条目符合条件</small>//"
        },
        "$:/language/SideBar/All/Caption": {
            "title": "$:/language/SideBar/All/Caption",
            "text": "全部"
        },
        "$:/language/SideBar/Contents/Caption": {
            "title": "$:/language/SideBar/Contents/Caption",
            "text": "目录"
        },
        "$:/language/SideBar/Drafts/Caption": {
            "title": "$:/language/SideBar/Drafts/Caption",
            "text": "草稿"
        },
        "$:/language/SideBar/Missing/Caption": {
            "title": "$:/language/SideBar/Missing/Caption",
            "text": "缺失"
        },
        "$:/language/SideBar/More/Caption": {
            "title": "$:/language/SideBar/More/Caption",
            "text": "更多"
        },
        "$:/language/SideBar/Open/Caption": {
            "title": "$:/language/SideBar/Open/Caption",
            "text": "开启"
        },
        "$:/language/SideBar/Orphans/Caption": {
            "title": "$:/language/SideBar/Orphans/Caption",
            "text": "孤立"
        },
        "$:/language/SideBar/Recent/Caption": {
            "title": "$:/language/SideBar/Recent/Caption",
            "text": "最近"
        },
        "$:/language/SideBar/Shadows/Caption": {
            "title": "$:/language/SideBar/Shadows/Caption",
            "text": "默认"
        },
        "$:/language/SideBar/System/Caption": {
            "title": "$:/language/SideBar/System/Caption",
            "text": "系统"
        },
        "$:/language/SideBar/Tags/Caption": {
            "title": "$:/language/SideBar/Tags/Caption",
            "text": "标签"
        },
        "$:/language/SideBar/Tags/Untagged/Caption": {
            "title": "$:/language/SideBar/Tags/Untagged/Caption",
            "text": "未设标签"
        },
        "$:/language/SideBar/Tools/Caption": {
            "title": "$:/language/SideBar/Tools/Caption",
            "text": "工具"
        },
        "$:/language/SideBar/Types/Caption": {
            "title": "$:/language/SideBar/Types/Caption",
            "text": "类型"
        },
        "$:/SiteSubtitle": {
            "title": "$:/SiteSubtitle",
            "text": "一个非线性的网页式笔记"
        },
        "$:/SiteTitle": {
            "title": "$:/SiteTitle",
            "text": "我的 ~TiddlyWiki"
        },
        "$:/language/Snippets/ListByTag": {
            "title": "$:/language/Snippets/ListByTag",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "依标签筛选的条目列表",
            "text": "<<list-links \"[tag[task]sort[title]]\">>\n"
        },
        "$:/language/Snippets/MacroDefinition": {
            "title": "$:/language/Snippets/MacroDefinition",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "宏的定义",
            "text": "\\define macroName(param1:\"默认值\",param2)\n宏的内容\n\\end\n"
        },
        "$:/language/Snippets/Table4x3": {
            "title": "$:/language/Snippets/Table4x3",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "4 x 3 的表格",
            "text": "|! | !一 | !二 | !三 | !四 |\n|! 1| | | | |\n|! 2| | | | |\n|! 3 | | | | |\n"
        },
        "$:/language/Snippets/TableOfContents": {
            "title": "$:/language/Snippets/TableOfContents",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "目录",
            "text": "<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'TableOfContents'>>\n\n</div>"
        },
        "$:/language/ThemeTweaks/ThemeTweaks": {
            "title": "$:/language/ThemeTweaks/ThemeTweaks",
            "text": "主题调整"
        },
        "$:/language/ThemeTweaks/ThemeTweaks/Hint": {
            "title": "$:/language/ThemeTweaks/ThemeTweaks/Hint",
            "text": "您可以调整 ''Vanilla'' 布景主题的某些样貌。"
        },
        "$:/language/ThemeTweaks/Options": {
            "title": "$:/language/ThemeTweaks/Options",
            "text": "选项"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout",
            "text": "侧边栏布局"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid",
            "text": "固定故事,浮动侧边栏"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed",
            "text": "浮动故事,固定侧边栏"
        },
        "$:/language/ThemeTweaks/Options/StickyTitles": {
            "title": "$:/language/ThemeTweaks/Options/StickyTitles",
            "text": "置顶标题"
        },
        "$:/language/ThemeTweaks/Options/StickyTitles/Hint": {
            "title": "$:/language/ThemeTweaks/Options/StickyTitles/Hint",
            "text": "导致条目名称\"黏着\"于浏览器窗口的顶部。<br>注意︰此功能无法运作于 Chrome,且于 Firefox 中会导致一些布局问题"
        },
        "$:/language/ThemeTweaks/Options/CodeWrapping": {
            "title": "$:/language/ThemeTweaks/Options/CodeWrapping",
            "text": "在代码区块中折行"
        },
        "$:/language/ThemeTweaks/Settings": {
            "title": "$:/language/ThemeTweaks/Settings",
            "text": "设置"
        },
        "$:/language/ThemeTweaks/Settings/FontFamily": {
            "title": "$:/language/ThemeTweaks/Settings/FontFamily",
            "text": "字型"
        },
        "$:/language/ThemeTweaks/Settings/CodeFontFamily": {
            "title": "$:/language/ThemeTweaks/Settings/CodeFontFamily",
            "text": "代码字型"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImage": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImage",
            "text": "页面背景图像"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment",
            "text": "页面背景图像附属"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll",
            "text": "随条目卷动"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed",
            "text": "固定于窗口"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize",
            "text": "页面背景图像大小"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto",
            "text": "自动"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover",
            "text": "覆盖"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain",
            "text": "包含"
        },
        "$:/language/ThemeTweaks/Metrics": {
            "title": "$:/language/ThemeTweaks/Metrics",
            "text": "大小"
        },
        "$:/language/ThemeTweaks/Metrics/FontSize": {
            "title": "$:/language/ThemeTweaks/Metrics/FontSize",
            "text": "字体大小"
        },
        "$:/language/ThemeTweaks/Metrics/LineHeight": {
            "title": "$:/language/ThemeTweaks/Metrics/LineHeight",
            "text": "行高"
        },
        "$:/language/ThemeTweaks/Metrics/BodyFontSize": {
            "title": "$:/language/ThemeTweaks/Metrics/BodyFontSize",
            "text": "条目本文的字体大小"
        },
        "$:/language/ThemeTweaks/Metrics/BodyLineHeight": {
            "title": "$:/language/ThemeTweaks/Metrics/BodyLineHeight",
            "text": "条目本文的行高"
        },
        "$:/language/ThemeTweaks/Metrics/StoryLeft": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryLeft",
            "text": "故事左侧位置"
        },
        "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint",
            "text": "故事河(条目区)的左边缘与页面左端的间距"
        },
        "$:/language/ThemeTweaks/Metrics/StoryTop": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryTop",
            "text": "故事顶端位置"
        },
        "$:/language/ThemeTweaks/Metrics/StoryTop/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryTop/Hint",
            "text": "故事河(条目区)的上边缘与页面顶端的间距"
        },
        "$:/language/ThemeTweaks/Metrics/StoryRight": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryRight",
            "text": "故事右侧位置"
        },
        "$:/language/ThemeTweaks/Metrics/StoryRight/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryRight/Hint",
            "text": "侧边栏的左边缘与页面左端的间距"
        },
        "$:/language/ThemeTweaks/Metrics/StoryWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryWidth",
            "text": "故事的宽度"
        },
        "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint",
            "text": "故事河的整体宽度"
        },
        "$:/language/ThemeTweaks/Metrics/TiddlerWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth",
            "text": "条目宽度"
        },
        "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint",
            "text": "在故事河内"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint",
            "text": "侧边栏中断点"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint",
            "text": "故事河和侧边栏会并排显示的最小页面宽度"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth",
            "text": "侧边栏宽度"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint",
            "text": "在浮动-固定布局中,侧边栏的宽度"
        },
        "$:/language/TiddlerInfo/Advanced/Caption": {
            "title": "$:/language/TiddlerInfo/Advanced/Caption",
            "text": "高级"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint",
            "text": "无信息"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading",
            "text": "插件明细"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint",
            "text": "此插件包含以下预设条目:"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading",
            "text": "默认条目状态"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint",
            "text": "<$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> 不是一个默认条目"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint",
            "text": "<$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> 是一个默认条目"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source",
            "text": "此条目定义于插件 <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint",
            "text": "已被一般条目覆写"
        },
        "$:/language/TiddlerInfo/Fields/Caption": {
            "title": "$:/language/TiddlerInfo/Fields/Caption",
            "text": "栏位"
        },
        "$:/language/TiddlerInfo/List/Caption": {
            "title": "$:/language/TiddlerInfo/List/Caption",
            "text": "列表"
        },
        "$:/language/TiddlerInfo/List/Empty": {
            "title": "$:/language/TiddlerInfo/List/Empty",
            "text": "此条目无指定列表"
        },
        "$:/language/TiddlerInfo/Listed/Caption": {
            "title": "$:/language/TiddlerInfo/Listed/Caption",
            "text": "被列于"
        },
        "$:/language/TiddlerInfo/Listed/Empty": {
            "title": "$:/language/TiddlerInfo/Listed/Empty",
            "text": "此条目未出现于其他条目的列表中"
        },
        "$:/language/TiddlerInfo/References/Caption": {
            "title": "$:/language/TiddlerInfo/References/Caption",
            "text": "参照"
        },
        "$:/language/TiddlerInfo/References/Empty": {
            "title": "$:/language/TiddlerInfo/References/Empty",
            "text": "无条目链接至此"
        },
        "$:/language/TiddlerInfo/Tagging/Caption": {
            "title": "$:/language/TiddlerInfo/Tagging/Caption",
            "text": "子条目"
        },
        "$:/language/TiddlerInfo/Tagging/Empty": {
            "title": "$:/language/TiddlerInfo/Tagging/Empty",
            "text": "无任何条目以此条目之标题为标签"
        },
        "$:/language/TiddlerInfo/Tools/Caption": {
            "title": "$:/language/TiddlerInfo/Tools/Caption",
            "text": "工具"
        },
        "$:/language/Docs/Types/application/javascript": {
            "title": "$:/language/Docs/Types/application/javascript",
            "description": "JavaScript 源码",
            "name": "application/javascript",
            "group": "开发者"
        },
        "$:/language/Docs/Types/application/json": {
            "title": "$:/language/Docs/Types/application/json",
            "description": "JSON 数据",
            "name": "application/json",
            "group": "开发者"
        },
        "$:/language/Docs/Types/application/x-tiddler-dictionary": {
            "title": "$:/language/Docs/Types/application/x-tiddler-dictionary",
            "description": "数据字典",
            "name": "application/x-tiddler-dictionary",
            "group": "开发者"
        },
        "$:/language/Docs/Types/image/gif": {
            "title": "$:/language/Docs/Types/image/gif",
            "description": "GIF 图像",
            "name": "image/gif",
            "group": "图像"
        },
        "$:/language/Docs/Types/image/jpeg": {
            "title": "$:/language/Docs/Types/image/jpeg",
            "description": "JPEG 图像",
            "name": "image/jpeg",
            "group": "图像"
        },
        "$:/language/Docs/Types/image/png": {
            "title": "$:/language/Docs/Types/image/png",
            "description": "PNG 图像",
            "name": "image/png",
            "group": "图像"
        },
        "$:/language/Docs/Types/image/svg+xml": {
            "title": "$:/language/Docs/Types/image/svg+xml",
            "description": "结构式矢量图",
            "name": "image/svg+xml",
            "group": "图像"
        },
        "$:/language/Docs/Types/image/x-icon": {
            "title": "$:/language/Docs/Types/image/x-icon",
            "description": "图标",
            "name": "image/x-icon",
            "group": "图像"
        },
        "$:/language/Docs/Types/text/css": {
            "title": "$:/language/Docs/Types/text/css",
            "description": "静态样式",
            "name": "text/css",
            "group": "开发者"
        },
        "$:/language/Docs/Types/text/html": {
            "title": "$:/language/Docs/Types/text/html",
            "description": "HTML 标记",
            "name": "text/html",
            "group": "文本"
        },
        "$:/language/Docs/Types/text/plain": {
            "title": "$:/language/Docs/Types/text/plain",
            "description": "纯文本",
            "name": "text/plain",
            "group": "文本"
        },
        "$:/language/Docs/Types/text/vnd.tiddlywiki": {
            "title": "$:/language/Docs/Types/text/vnd.tiddlywiki",
            "description": "TiddlyWiki 5",
            "name": "text/vnd.tiddlywiki",
            "group": "文本"
        },
        "$:/language/Docs/Types/text/x-tiddlywiki": {
            "title": "$:/language/Docs/Types/text/x-tiddlywiki",
            "description": "TiddlyWiki 2",
            "name": "text/x-tiddlywiki",
            "group": "文本"
        },
        "$:/languages/zh-Hans/icon": {
            "title": "$:/languages/zh-Hans/icon",
            "type": "image/svg+xml",
            "text": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"1500\" height=\"1000\" viewBox=\"-5 -5 30 20\">\n<title>Flag of the People's Republic of China</title>\n<rect fill=\"#de2910\" x=\"-5\" y=\"-5\" width=\"30\" height=\"20\"/>\n<defs>\n<polygon id=\"s\" points=\"0,-513674 301930,415571 -488533,-158734 488533,-158734 -301930,415571\"\nfill=\"#ffde00\" transform=\"scale(0.0000019467600073)\"/>\n</defs>\n<use xlink:href=\"#s\" transform=\"scale(3)\"/>\n<use xlink:href=\"#s\" transform=\"translate(5,-3) rotate(-120.963756)\"/>\n<use xlink:href=\"#s\" transform=\"translate(7,-1) rotate(-98.130102)\"/>\n<use xlink:href=\"#s\" transform=\"translate(7,2) rotate(-74.054604)\"/>\n<use xlink:href=\"#s\" transform=\"translate(5,4) rotate(-51.3401917)\"/>\n</svg>\n"
        }
    }
}
{
    "tiddlers": {
        "$:/plugins/danielo/encryptTiddler/Changelog": {
            "title": "$:/plugins/danielo/encryptTiddler/Changelog",
            "text": "!! V2.1\n* Added control panel.\n* Added ability to batch encrypt and decrypt tiddlers.\n* Added some documentation an language strings.\n\n"
        },
        "$:/plugins/danielo/encryptTiddler/control-panel/batch-encrypt": {
            "title": "$:/plugins/danielo/encryptTiddler/control-panel/batch-encrypt",
            "caption": "Batch Encryption",
            "text": "\\define lingo-base() $:/language/Search/\n<<lingo Filter/Hint>>\n{{$:/plugins/danielo/encryptTiddler/language/batch}}\n\n<$linkcatcher to=\"$:/temp/encrypt/filter\">\n\n<div class=\"tc-search tc-advanced-search\">\n<$edit-text tiddler=\"$:/temp/encrypt/filter\" type=\"search\" tag=\"input\" default=\"\" placeholder=\"filter tiddlers\"/>\n<$button popup=<<qualify \"$:/state/filterDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n<$reveal state=\"$:/temp/encrypt/filter\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/encrypt/filter\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n\n\n<$edit-text tag=\"input\" tiddler=\"$:/temp/password\" placeholder=\"password\" type=\"password\" default=\"\" col=\"4\"/><$encryptTiddler passwordTiddler=\"$:/temp/password\" filter={{$:/temp/encrypt/filter}}>\n<$button message=\"tw-encrypt-tiddler\">\nEncrypt\n</$button>\n<$button message=\"tw-decrypt-tiddler\">\nDecrypt\n</$button>\n</$encryptTiddler>\n</$reveal>\n</div>\n\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/filterDropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Filter]!sort[]] -[[$:/core/Filters/SystemTags]] -[[$:/core/Filters/AllTags]]\"><$link to={{!!filter}}><$transclude field=\"description\"/></$link>\n</$list>\n</div>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/encrypt/filter\" type=\"nomatch\" text=\"\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/encrypt/filter}}/>\"\"\">\n<div class=\"tc-search-results\">\n<<lingo Filter/Matches>>\n<$list filter={{$:/temp/encrypt/filter}} template=\"$:/plugins/danielo/encryptTiddler/ui/listItemTemplate\"/>\n</div>\n</$set>\n</$reveal>"
        },
        "$:/plugins/danielo/encryptTiddler/control-panel": {
            "title": "$:/plugins/danielo/encryptTiddler/control-panel",
            "tags": "$:/tags/ControlPanel",
            "caption": "Encrypt Tiddlers",
            "text": "\\define prefix(name) $:/plugins/danielo/encryptTiddler/control-panel/$name$\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]prefix[$:/plugins/danielo/encryptTiddler/control-panel/]]\" default=<<prefix \"batch-encrypt\">> state=\"$:/state/encryptTiddler/control-panel/tabs\">>"
        },
        "$:/plugins/danielo/encryptTiddler/crypt-batch-button": {
            "creator": "Danielo",
            "title": "$:/plugins/danielo/encryptTiddler/crypt-batch-button",
            "text": "<span title=\"Encrypt/Decrypt tiddler\" class=\"pc-batch-controls\">\n<$reveal state=<<qualify \"$:/state/encrypt\">> type=\"nomatch\" text={{!!title}} animate=\"no\"><$button set=<<qualify \"$:/state/encrypt\">> setTo={{!!title}} class=\"tc-btn-invisible\">{{$:/plugins/danielo/encryptTiddler/unlocked}}</$button></$reveal><$reveal state=<<qualify \"$:/state/encrypt\">> type=\"match\" text={{!!title}} animate=\"no\"><$button set=<<qualify \"$:/state/encrypt\">> setTo=\"\" class=\"tc-btn-invisible\">{{$:/plugins/danielo/encryptTiddler/unlocked}}</$button></$reveal>\n<$encryptTiddler passwordTiddler=\"$:/temp/password\" filter={{$:/temp/encrypt/filter}}><$reveal state=<<qualify \"$:/state/encrypt\">> type=\"match\" text={{!!title}} animate=\"yes\">\n<div class=\"tc-block-dropdown tw-crypt-dropdown\">\n<span class=\"tw-password-field\"><$edit-text tiddler=\"$:/temp/password\" tag=\"input\" type=\"password\" default=\"\" placeholder=\"password\" class=\"tc-edit-texteditor\"/></span>\n<span class=\"tw-crypt-button\"> <$button message=\"tw-encrypt-tiddler\"  set=<<qualify \"$:/state/encrypt\">> setTo=\"\" >Encrypt</$button> <$button message=\"tw-decrypt-tiddler\" set=<<qualify \"$:/state/encrypt\">> setTo=\"\" >Decrypt</$button></span>\n</div>\n</$reveal></$encryptTiddler>\n</span>"
        },
        "$:/plugins/danielo/encryptTiddler/crypt-button": {
            "created": "20140405233000477",
            "creator": "Danielo",
            "modified": "20140608121335075",
            "tags": "$:/tags/ViewToolbar button encrypt export",
            "title": "$:/plugins/danielo/encryptTiddler/crypt-button",
            "type": "text/vnd.tiddlywiki",
            "text": "<span title=\"Encrypt/Decrypt tiddler\"><$transclude tiddler=\"$:/plugins/danielo/encryptTiddler/openPopup\"/>\n</span><$encryptTiddler passwordTiddler=\"$:/temp/password\"><$reveal state=\"$:/state/encrypt\" type=\"match\" text={{!!title}} animate=\"yes\">\n<div class=\"tc-block-dropdown tw-crypt-dropdown\">\n<span class=\"tw-password-field\"><$edit-text tiddler=\"$:/temp/password\" tag=\"input\" type=\"password\" default=\"\" placeholder=\"password\" class=\"tc-edit-texteditor\"/></span>\n<span class=\"tw-crypt-button\"> <$list filter=\"[all[current]!has[encrypted]]\"> <$button message=\"tw-encrypt-tiddler\"  set=\"$:/state/encrypt\" setTo=\"\" >Encrypt</$button></$list><$list filter=\"[is[current]has[encrypted]]\"> <$button message=\"tw-decrypt-tiddler\" set=\"$:/state/encrypt\" setTo=\"\" >Decrypt</$button></$list></span>\n</div>\n</$reveal></$encryptTiddler>\n"
        },
        "$:/plugins/danielo/encryptTiddler/Encrypt-Tiddler": {
            "created": "20140406153742691",
            "creator": "pepito",
            "description": "add the hability to encrypt individual tiddlers",
            "modified": "20141029152631265",
            "modifier": "Danielo Rodriguez",
            "tags": "index plugins",
            "title": "$:/plugins/danielo/encryptTiddler/Encrypt-Tiddler",
            "type": "text/vnd.tiddlywiki",
            "caption": "readme",
            "text": "This plugin adds the ability to encrypt your tiddlers individually. This have several advantages:\n\n* You can specify a different password for each tiddler if you want.\n* You don't have to encrypt your whole wiky.\n* If you forget your password, you only lose a tiddler.\n* It's possible to edit the tiddler content , tags and fields ''except the encrypt field'' after encryption. Decrypting your tiddler will restore it to its original state when you encrypted it. This way you can hide the encrypted tiddlers as a \"different\" thing.\n* You can even encrypt images.\n* You can have sensible data in a day to day wiky.\n* I didn't try this, but theoretically you can apply double encryption by encrypting your wiki too."
        },
        "$:/plugins/danielo/encryptTiddler/encrypttiddler.js": {
            "text": "/*\\\ntitle: $:/plugins/danielo/encryptTiddler/encrypttiddler.js\ntype: application/javascript\nmodule-type: widget\n\nencrypttiddler widget\n\n```\n\n```\n\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar encryptTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t\t{type: \"tw-encrypt-tiddler\", handler: \"handleEncryptevent\"},\n\t\t\t{type: \"tw-decrypt-tiddler\", handler: \"handleDecryptevent\"},\n\t\t\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nencryptTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nencryptTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tconsole.log(\"Render\");\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nencryptTiddlerWidget.prototype.execute = function() {\n\t// Get attributes\n\t this.tiddlerTitle=this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t this.filter=this.getAttribute(\"filter\",undefined);\n \t this.passwordTiddler=this.getAttribute(\"passwordTiddler\");\n\t// Construct the child widgets\n\tconsole.log(this.targetTiddler);\n\t\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nencryptTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.filter) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nencryptTiddlerWidget.prototype.getTiddlersToProcess = function(){\n\tif(this.filter){ //we have a filter to work with\n\t\treturn this.wiki.filterTiddlers(this.filter);\n\t}else{ //single tiddler case\n\t\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\t\treturn tiddler? [tiddler.fields.title] : [];\n\t}\n};\n\nencryptTiddlerWidget.prototype.handleEncryptevent = function(event){\n\tvar password = this.getPassword();\n\tvar tiddlers = this.getTiddlersToProcess();\n\n\tif(tiddlers.length > 0 && password){\n\t\tvar self = this;\n\t\t$tw.utils.each(tiddlers, function(title){\n\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\tvar fields={text:\"!This is an encrypted Tiddler\",\n\t\t\t\t\t\t\t\t  encrypted:self.encryptFields(title,password)};\n\t\t\tself.saveTiddler(tiddler,fields);\n\t\t});\n\n\t}else{\n\t\tconsole.log(\"We did not find any tiddler to encrypt or password not set!\")\n\t}\n};\n\nencryptTiddlerWidget.prototype.handleDecryptevent = function(event){\n\tvar password =this.getPassword();\n\tvar tiddlers = this.getTiddlersToProcess();\n\n\tif(tiddlers.length > 0 && password){\n\t\tvar self = this;\n\t\t$tw.utils.each(tiddlers, function(title){\n\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\tvar fields = self.decryptFields(tiddler,password);\n\t\t\tif(fields)self.saveTiddler(tiddler,fields);\n\t\t});\n\t}\n};\n\nencryptTiddlerWidget.prototype.saveTiddler=function(tiddler,fields){\n\tthis.wiki.addTiddler(  new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,this.clearNonStandardFields(tiddler), fields ) )\n}\n\nencryptTiddlerWidget.prototype.encryptFields = function (title,password){\n\tvar jsonData=this.wiki.getTiddlerAsJson(title);\n\treturn $tw.crypto.encrypt(jsonData,password);\n\n};\n\nencryptTiddlerWidget.prototype.decryptFields = function(tiddler,password){\n\t\tvar JSONfields =$tw.crypto.decrypt(tiddler.fields.encrypted,password);\n\t\tif(JSONfields!==null){\n\t\t\treturn JSON.parse(JSONfields);\n\t\t}\n\t\tconsole.log(\"Error decrypting \"+tiddler.fields.title+\". Probably bad password\")\n\t\treturn false\n};\n\nencryptTiddlerWidget.prototype.getPassword = function(){\n\tvar tiddler=this.wiki.getTiddler(this.passwordTiddler);\n\tif(tiddler){\n\t\tvar password=tiddler.fields.text;\n\t\tthis.saveTiddler(tiddler); //reset password tiddler\n\t\treturn password;\n\t}\n\n\treturn false\n};\n\n// This function erases every field of a tiddler that is not standard and also\n// the text field\nencryptTiddlerWidget.prototype.clearNonStandardFields =function(tiddler) {\n\tvar standardFieldNames = \"title tags modified modifier created creator\".split(\" \");\n\t\tvar clearFields = {};\n\t\tfor(var fieldName in tiddler.fields) {\n\t\t\tif(standardFieldNames.indexOf(fieldName) === -1) {\n\t\t\t\tclearFields[fieldName] = undefined;\n\t\t\t}\n\t\t}\n\t\tconsole.log(\"Cleared fields \"+JSON.stringify(clearFields));\n\t\treturn clearFields;\n};\n\nexports.encryptTiddler = encryptTiddlerWidget;\n\n})();",
            "title": "$:/plugins/danielo/encryptTiddler/encrypttiddler.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/plugins/danielo/encryptTiddler/Filters/encrypted-tiddlers": {
            "title": "$:/plugins/danielo/encryptTiddler/Filters/encrypted-tiddlers",
            "description": "All encrypted tiddlers",
            "filter": "[has[encrypted]]",
            "tags": "$:/tags/Filter"
        },
        "$:/plugins/danielo/encryptTiddler/Filters/normal-unencrypted-tiddlers": {
            "title": "$:/plugins/danielo/encryptTiddler/Filters/normal-unencrypted-tiddlers",
            "filter": "[!is[system]!has[encrypted]]",
            "description": "Non-encrypted normal tiddlers",
            "tags": "$:/tags/Filter"
        },
        "$:/plugins/danielo/encryptTiddler/language/batch": {
            "title": "$:/plugins/danielo/encryptTiddler/language/batch",
            "text": "Use below controls to encrypt or decrypt a bunch of tiddlers. Encryption ''controls are hidden'' until you type something in the search box. All listed tiddlers will be affected. The presence of a small padlock (<span class=\"pc-listItem-lock\">{{$:/core/images/locked-padlock}}</span>) next to the tiddler title indicates that particular tiddler is already encrypted."
        },
        "$:/plugins/danielo/encryptTiddler/ui/listItemTemplate": {
            "title": "$:/plugins/danielo/encryptTiddler/ui/listItemTemplate",
            "text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n<$list filter=\"[all[current]has[encrypted]]\">\n<span class=\"pc-listItem-lock\">{{$:/core/images/locked-padlock}}</span>\n</$list>\n</$link>\n</div>"
        },
        "$:/plugins/danielo/encryptTiddler/openPopup": {
            "created": "20140406151910358",
            "creator": "Danielo",
            "modified": "20140608121417975",
            "modifier": "pepito",
            "tags": "button encrypt export",
            "title": "$:/plugins/danielo/encryptTiddler/openPopup",
            "type": "text/vnd.tiddlywiki",
            "text": "<$reveal state=\"$:/state/encrypt\" type=\"nomatch\" text={{!!title}} animate=\"no\"><$button set=\"$:/state/encrypt\" setTo={{!!title}} class=\"tc-btn-invisible\">{{$:/plugins/danielo/encryptTiddler/unlocked}}</$button></$reveal><$reveal state=\"$:/state/encrypt\" type=\"match\" text={{!!title}} animate=\"no\"><$button set=\"$:/state/encrypt\" setTo=\"\" class=\"tc-btn-invisible\">{{$:/plugins/danielo/encryptTiddler/unlocked}}</$button></$reveal>"
        },
        "$:/plugins/danielo/encryptTiddler/styles": {
            "created": "20140406110705085",
            "creator": "pepito",
            "modified": "20140608121510064",
            "modifier": "pepito",
            "tags": "$:/tags/Stylesheet encrypt export",
            "title": "$:/plugins/danielo/encryptTiddler/styles",
            "type": "text/plain",
            "text": ".tw-password-field {\n\tdisplay: inline-block;\n\twidth: 55%;\n  font-size:1em;\n  line-height:0;\n  margin:0;\n\tpadding-left:7%;\n}\n\n.pc-batch-controls .tw-crypt-dropdown{\n\tright: 0px;\n}\n\n.pc-batch-controls{\n\t\tposition:relative;\n}\n\n.pc-listItem-lock svg{\n\theight: 1em;\n\twidth: 1em;\n\tfill: #aaaaaa;\n}\n\n/*It is for use in combination with tc-block-dropdown */\n.tw-crypt-dropdown{\n      line-height:0;\n\t\t\tpadding-left:5px;\n\t\t\t}\n\n.tw-password-field input{\n       font-size:0.5em;\n\n}\n\n.tw-crypt-button {\n\tdisplay: inline-block;\n\twidth: 10%;\n}\n\n.tw-crypt-button button{\n\tfont-size:0.5em;\n}\n"
        },
        "$:/plugins/danielo/encryptTiddler/unlocked": {
            "created": "20140406101339943",
            "creator": "danielo515",
            "modified": "20140608121532690",
            "modifier": "danielo515",
            "tags": "encrypt export",
            "title": "$:/plugins/danielo/encryptTiddler/unlocked",
            "type": "text/vnd.tiddlywiki",
            "text": "<svg version=\"1.1\" id=\"Capa_1\" xmlns=\"http://www.w3.org/2000/svg\" class=\"tc-image-button\"\n\t viewBox=\"0 0 100 100\" style=\"enable-background:new 0 0 100 100;\" xml:space=\"preserve\">\n<g>\n\t<path d=\"M77.555,50H35.304V31.63c0-4.057,1.435-7.521,4.305-10.391c2.87-2.87,6.333-4.305,10.391-4.305\n\t\tc4.056,0,7.52,1.435,10.39,4.305s4.305,6.335,4.305,10.391c0,0.996,0.363,1.857,1.091,2.583c0.727,0.729,1.588,1.09,2.583,1.09\n\t\th3.674c0.995,0,1.856-0.361,2.583-1.09c0.727-0.727,1.091-1.588,1.091-2.583c0-7.079-2.517-13.136-7.549-18.17\n\t\tC63.136,8.428,57.08,5.912,50,5.912c-7.081,0-13.137,2.516-18.169,7.548c-5.033,5.034-7.549,11.091-7.549,18.17V50h-1.837\n\t\tc-1.531,0-2.833,0.536-3.904,1.608c-1.072,1.072-1.607,2.372-1.607,3.902v33.067c0,1.532,0.535,2.832,1.607,3.904\n\t\tc1.071,1.072,2.372,1.608,3.904,1.608h55.11c1.53,0,2.832-0.536,3.904-1.608c1.071-1.072,1.607-2.372,1.607-3.904V55.51\n\t\tc0-1.529-0.536-2.83-1.607-3.902C80.387,50.536,79.085,50,77.555,50z M54.315,72.937V83.72c0,2.173-1.762,3.935-3.935,3.935H49.62\n\t\tc-2.173,0-3.935-1.762-3.935-3.935V72.937c-2.31-1.443-3.852-4.001-3.852-6.925c0-4.511,3.657-8.167,8.167-8.167\n\t\ts8.167,3.657,8.167,8.167C58.167,68.937,56.625,71.495,54.315,72.937z\"/>\n</g>\n</svg>\n"
        }
    }
}




{}


{
    "originalVersion": "0.13.4+9665",
    "dataStructureState": "0.11.0",
    "showWelcomeMessage": false
}
{
    "tiddlers": {
        "$:/plugins/telmiger/EditorCounter/counter.js": {
            "created": "20170207230719552",
            "creator": "Thomas Elmiger",
            "text": "/*\\\ntitle: $:/plugins/telmiger/EditorCounter/counter.js\ntype: application/javascript\nmodule-type: widget\n\nversion: 0.6.3\n\nCount the number of words or characters in a tiddler/field/input string – Autosave while editing\n\nUsage: see the plugin’s readme.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CounterWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCounterWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM – reset autosave attributes\n*/\nCounterWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\t// autosave attributes\n\tthis.diffTotal = 0;\n\tthis.saveNow = false;\n\t// calculate state \n\tthis.execute();\n\tif(this.mode == \"autosave\") {\n\t\t// store the number of last saved characters\n\t\tthis.lastSavedCount = this.currentCount;\n\t\tthis.diffLastCount = this.currentCount;\n\t} \n\tvar textNode = this.document.createTextNode(this.currentCount);\n\tvar domNode = this.document.createElement(\"span\");\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCalculate the numbers\n*/\nCounterWidget.prototype.getLength = function(text) {\n\tvar result = 0;\n\tswitch(this.mode) {\n\t\tcase \"character\":\n\t\t\tresult = text.length.toString();\n\t\t\tbreak;\n\t\tcase \"autosave\":\n\t\t\tresult = text.length.toString();\n\t\t\t// sum up difference since last count\n\t\t\tthis.diffTotal += this.checkAutosave(result);\n\t\t\t// check saving limit\n\t\t\tthis.saveNow = (this.diffTotal >= this.saveLimit) ? true : false;\n\t\t\tbreak;\n\t\tcase \"word\":\n\t\t\tif(text.match(/\\w+/g)) {\n\t\t\t\tresult = text.match(/\\w+/g).length.toString();\n\t\t\t} else {\n\t\t\t\tresult = 0;\n\t\t\t}\n\t\t\tbreak;\n\t\tdefault: // \"?!\"\n\t\t\tresult = \"mode undefined\";\n\t}\n\treturn result;\n}\n\n/*\nSet autosave \n*/\nCounterWidget.prototype.checkAutosave = function(textlength) {\n\t// calculate difference since last count\n\tthis.diffChars = Math.abs(textlength - this.diffLastCount);\n\t// store text length\n\tthis.diffLastCount = textlength;\n\treturn this.diffChars;\n}\n\n/*\nGet the colors as an array\n*/\nCounterWidget.prototype.getColors = function() {\n\tvar color_array1 = this.colors.split(',');\n\tvar i;\n\tcolor_array1.sort(function sortfunction(a, b){\n\t\treturn a.split(':')[1] - b.split(':')[1];\n\t});\n\tfor(i = 0; i < color_array1.length; i++) {\n\t\tthis.color_array[i] = color_array1[i].split(':')[0];\n\t\tthis.count_array[i] = color_array1[i].split(':')[1];\n\t}\n}\n\n/*\nGet the numbers\n*/\nCounterWidget.prototype.getNumber = function() {\n\t// Count letters or words as appropriate.\n\tvar result = 0;\n\tif(this.countText) {\n\t\t// text supplied as parameter \n\t\tresult = this.getLength(this.countText);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.tiddler);\n\t\tvar fieldContent = tiddler.getFieldString(this.field);\n\t\tif(fieldContent) {\n\t\t\tresult = this.getLength(fieldContent);\n\t\t} else {\n\t\t\tresult = 0;\n\t\t}\n\t}\n\treturn result;\n}\n\n/*\nCompute the internal state of the widget\n*/\nCounterWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.mode = this.getAttribute(\"mode\",\"character\");\n\tthis.saveLimit = this.getAttribute(\"savelimit\",200);\n\tthis.tiddler = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.field = this.getAttribute(\"field\",\"text\");\n\tthis.countText = this.getAttribute(\"text\");\n\tthis.colors = this.getAttribute(\"colors\");\n\tthis.stateTiddler = this.getAttribute(\"colorState\");\n\t// Count letters or words as appropriate.\n\tthis.currentCount = this.getNumber();\n\tthis.diffChars = 0;\n\t//Find the color cut-offs, if any.\n\tif(this.colors) {\n\t\tthis.color_array = [];\n\t\tthis.count_array = [];\n\t\tvar i;\n\t\tthis.getColors();\n\n\t\t// set the color if the counter is high enough. The color with the largest value that is less than this.currentCount wins.\n\t\tfor(i = 0; i < this.color_array.length; i++) {\n\t\t\tif(Number(this.currentCount) >= Number(this.count_array[this.color_array.length - 1 - i])) {\n\t\t\t\tif(this.stateTiddler) {\n\t\t\t\t\tthis.wiki.setText(this.stateTiddler,\"text\",undefined,this.color_array[this.color_array.length -1 - i]);\n\t\t\t\t}\n\t\t\t\tthis.currentCount = '@@color:' + this.color_array[this.color_array.length -1 - i] + ';' \n\t\t\t\t\t+ this.currentCount + '@@';\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(this.stateTiddler && i === this.color_array.length-1) {\n\t\t\t\tthis.wiki.setText(this.stateTiddler,\"text\",undefined,'');\n\t\t\t}\n\t\t}\n\t}\n\tvar parser = this.wiki.parseText(\"text/vnd.tiddlywiki\",this.currentCount,{parseAsInline: true});\n\tvar parseTreeNodes = parser ? parser.tree : [];\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCounterWidget.prototype.refresh = function(changedTiddlers) {\n\tvar refreshed = false;\n\t// Re-execute the filter to get the count\n\tthis.computeAttributes();\n\tvar oldCount = this.currentCount;\n\tthis.execute();\n\tif(this.currentCount !== oldCount && this.mode !== \"autosave\") {\n\t\t// Regenerate and rerender the widget and replace the existing DOM node\n\t\tthis.refreshSelf();\n\t\trefreshed = true;\n\t}\n\tif(this.saveNow) {\n\t\t// Trigger an autosave and refresh\n\t\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t\tthis.refreshSelf();\n\t\trefreshed = true;\n\t} \n\treturn refreshed;\n};\n\nexports[\"editor-counter\"] = CounterWidget;\n\n})();\n",
            "type": "application/javascript",
            "title": "$:/plugins/telmiger/EditorCounter/counter.js",
            "tags": "EditorCounter",
            "module-type": "widget",
            "modifier": "Thomas Elmiger",
            "modified": "20170513200904421"
        },
        "$:/plugins/telmiger/EditorCounter/icon": {
            "created": "20170209074404836",
            "text": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"64.003\" height=\"64.003\" viewBox=\"-500.5 395.5 64.003 64.003\"><path d=\"M-468.5 396.5l26.426 15.5v31l-26.425 15.5-26.426-15.5v-31l26.427-15.5z\"/><path fill=\"#FFF\" d=\"M-485.996 419.088h34.99v16.824h-34.99z\"/><path fill=\"#E2001A\" d=\"M-468.5 405.5c-12.15 0-22 9.85-22 22s9.85 22 22 22 22-9.85 22-22-9.85-22-22-22zm13.11 21.637c-1.022.682-2.674 1.023-4.954 1.023h-2.838c-1.505 0-2.598.3-3.28.9-.68.6-1.22 1.804-1.622 3.615 0 0-.063.526-.178.526s-.13-.31-.184-.562c-.056-.263-.14-.59-.256-.977-.224-.758-.447-1.332-.67-1.72-.27-.482-.613-.87-1.024-1.165-.412-.294-.883-.47-1.413-.528l-.74-.088h-3.637c-2.178 0-3.796-.343-4.855-1.024-1.764-1.12-2.71-3.24-2.842-6.357-.01-.25 0-.48.047-.772h.208c.142 1.41 1.304 2.502 2.158 3.274.853.77 2.222 1.155 4.104 1.155h3.3c1.896 0 3.28.436 4.158 1.306.79.786 1.31 2.017 1.56 3.69.028.183.012.263.064.263.053 0 .04-.09.06-.278.253-2.173 1.094-3.627 2.522-4.363.88-.46 2.28-.676 4.196-.652l2.257.035c1.527.023 2.814-.278 3.86-.908 1.046-.63 2.285-1.803 2.425-3.52h.21c.065.17.057.56.045.828-.13 3.105-1.023 5.206-2.68 6.3z\"/></svg>",
            "type": "image/svg+xml",
            "title": "$:/plugins/telmiger/EditorCounter/icon",
            "tags": "",
            "modified": "20170209074423973"
        },
        "$:/plugins/telmiger/EditorCounter/readme": {
            "created": "20170209064758307",
            "creator": "Thomas Elmiger",
            "text": "!! Count Your Texts & Autosave\nThe [[EditorCounter plugin|https://tid.li/tw5/plugins.html#EditorCounter]] provides counters for words and characters in the edit view of your tiddlers. And it can save your texts automagically in the background while you work.\n\n!!! The counters\n* In edit mode users can see stats concerning the tiddler’s text and title fields. The numbers are updated whenever they pause typing.\n* Counters for words and characters can be activated in the [[plugin settings|$:/plugins/telmiger/EditorCounter/settings]].\n* The colours of the counters change at some predefined numbers.\n** Settings for colors and color limits are not available in the plugin configuration. <br>Workaround: edit [[the template|$:/plugins/telmiger/EditorCounter/EditTemplate]].\n\n!!! Autosave\n* When activated in the [[plugin settings|$:/plugins/telmiger/EditorCounter/settings]], //autosave// will try to save the wiki in the background during editing: whenever a predefined number of characters has been added or removed, a save is triggered.\n** As an option you can show a checkbox in the editor to pause/activate automatic saving.\n\n!!! Parameters\n\n|!Parameter |!Description |\n|colors |Optionally, define an array of color and number pairs to set minimal color limits. |\n|colorState |Optional state tiddler to save the color value. |\n|field |Calculate for the text in this field. |\n|mode |Entity to calculate: //word// or //character// or //autosave//. Defaults to \"character\". |\n|savelimit |A number of character changes after which //autosave// is performed. Default value: 200 |\n|text |Calculate this text. |\n|tiddler |Optional title of a tiddler to take the field from. Defaults to current tiddler. |\n\n!!! Widget usage\nThis plugin is based on a similar [[solution by Jed Carty|$:/plugins/telmiger/EditorCounter/credits]] – many thanks! \n\nThe widget can be used in other contexts than the plugin. The usage would be very similar to [[Jed’s examples on ooktech.com|http://ooktech.com/jed/ExampleWikis/WordCount/#%24%3A%2Fplugins%2Finmysocks%2FWordCount%2FWord%20Count%20Widget]] \n\nKnown differences: instead of `<$word-count` start with `<$editor-counter`. Default mode is //character//.\n\n!!!! Widget examples\n\n```\n<$editor-counter tiddler=SomeTiddler field=some_field mode=word/>\n<$editor-counter tiddler=SomeTiddler mode=character colors=\"blue:10,green:50,red:100\"/>\n<$editor-counter text=\"some text string\" mode=character colorState=\"$:/state/someTextColor\" colors=\"blue:10,green:50\"/>\n<$editor-counter mode=autosave savelimit=300/>\n```\n",
            "title": "$:/plugins/telmiger/EditorCounter/readme",
            "tags": "EditorCounter",
            "modifier": "Thomas Elmiger",
            "modified": "20170513193917595"
        },
        "$:/plugins/telmiger/EditorCounter/settings": {
            "text": "!! Counter Settings\nActivate counters here. Your choice will be visible below the text field in edit mode.\n\n<$checkbox tiddler=\"$:/plugins/telmiger/EditorCounter/settings/characters\" field=\"text\" checked=\"yes\" unchecked=\"no\"> Character counter</$checkbox>\n\n<$checkbox tiddler=\"$:/plugins/telmiger/EditorCounter/settings/words\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> Word counter</$checkbox>\n\n<$checkbox tiddler=\"$:/plugins/telmiger/EditorCounter/settings/title\" field=\"text\" checked=\"yes\" unchecked=\"no\"> Title characters counter</$checkbox>\n\n!! Autosave Settings\nAutosave will try to save your wiki in the background after adding or removing 200 characters. You can change this value below.\n\n<$checkbox tiddler=\"$:/plugins/telmiger/EditorCounter/settings/autosave\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> Autosave</$checkbox>\n every <$edit-text tiddler=\"$:/plugins/telmiger/EditorCounter/settings/autosave\" field=\"limit\" size=\"4\"/> characters.\n\n<$checkbox tiddler=\"$:/plugins/telmiger/EditorCounter/settings/autosave-pause\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> Show checkbox to start/pause autosave in editor</$checkbox>\n\n<br>''\n\n<$button message=\"tm-save-wiki\" param={{$:/config/SaveWikiButton/Template}} tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>>\n<span class=\"tc-dirty-indicator\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/save-button}} {{$:/language/Buttons/SaveWiki/Hint}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/SaveWiki/Caption}}/></span>\n</$list>\n</span>\n</$button>\n\n''<br>\n\nNote: ''All'' characters are counted as entered in the editor, regardless if they are invisible in the result or if they produce more text based on data or transclusion.",
            "title": "$:/plugins/telmiger/EditorCounter/settings",
            "tags": "EditorCounter",
            "modifier": "Thomas Elmiger",
            "modified": "20170513185158209",
            "creator": "Thomas Elmiger",
            "created": "20170208062643245"
        },
        "$:/plugins/telmiger/EditorCounter/settings/characters": {
            "created": "20170208063042363",
            "creator": "Thomas Elmiger",
            "text": "yes",
            "title": "$:/plugins/telmiger/EditorCounter/settings/characters",
            "modifier": "Thomas Elmiger",
            "modified": "20170209071527563",
            "tags": "EditorCounter"
        },
        "$:/plugins/telmiger/EditorCounter/settings/title": {
            "created": "20170208211524752",
            "creator": "Thomas Elmiger",
            "text": "yes",
            "title": "$:/plugins/telmiger/EditorCounter/settings/title",
            "modified": "20170209071517463",
            "modifier": "Thomas Elmiger",
            "tags": "EditorCounter"
        },
        "$:/plugins/telmiger/EditorCounter/settings/words": {
            "text": "no",
            "title": "$:/plugins/telmiger/EditorCounter/settings/words",
            "tags": "EditorCounter",
            "modifier": "Thomas Elmiger",
            "modified": "20170216003921105",
            "creator": "Thomas Elmiger",
            "created": "20170208063040756"
        },
        "$:/plugins/telmiger/EditorCounter/EditTemplate": {
            "text": "<span style=\"display:block; margin-top:-18px; margin-bottom:18px;\">\n<$reveal type=\"match\" text=\"yes\" state=\"$:/plugins/telmiger/EditorCounter/settings/characters\">\n<$editor-counter tiddler=<<currentTiddler>> colors='black:0,gray:140,green:300,indianred:800,red:1600'/> characters </$reveal>\n<$reveal type=\"match\" text=\"yes\" state=\"$:/plugins/telmiger/EditorCounter/settings/autosave\">\n<span class=\"tc-muted\"><span class=\"tc-dirty-indicator\">•</span> <$editor-counter mode=autosave savelimit={{$:/plugins/telmiger/EditorCounter/settings/autosave!!limit}}/> saved</span>\n</$reveal>\n<$reveal type=\"match\" text=\"yes\" state=\"$:/plugins/telmiger/EditorCounter/settings/characters\"> &nbsp;&nbsp; \n</$reveal>\n<$reveal type=\"match\" text=\"yes\" state=\"$:/plugins/telmiger/EditorCounter/settings/words\">\n<$editor-counter mode=word colors='black:0,gray:200,green:300,indianred:1000,red:2000'/> words &nbsp;&nbsp; \n</$reveal>\n<$reveal type=\"match\" text=\"yes\" state=\"$:/plugins/telmiger/EditorCounter/settings/autosave-pause\">\n<$checkbox tiddler=\"$:/plugins/telmiger/EditorCounter/settings/autosave\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> Autosave</$checkbox>\n<$reveal type=\"match\" text=\"yes\" state=\"$:/plugins/telmiger/EditorCounter/settings/autosave\">\n (uncheck to pause)\n</$reveal>\n</$reveal>\n</span>\n\n<!--\n* Show the number of characters and/or words entered in edit mode.\n* Show the number of characters at last autosave (autosave at a character difference as defined in settings).\n-->",
            "title": "$:/plugins/telmiger/EditorCounter/EditTemplate",
            "tags": "$:/tags/EditTemplate EditorCounter",
            "modifier": "Thomas Elmiger",
            "modified": "20170513184811368",
            "list-before": "$:/core/ui/EditTemplate/type",
            "creator": "Thomas Elmiger",
            "created": "20170126185919666"
        },
        "$:/plugins/telmiger/EditorCounter/TitleTemplate": {
            "text": "<$reveal type=\"match\" text=\"yes\" state=\"$:/plugins/telmiger/EditorCounter/settings/title\">\n<span title=\"Title length\" style=\"display:block; text-align:right; margin: -22px 3px 2px 0; opacity:0.6;\">\n<$editor-counter tiddler=<<currentTiddler>> field=\"draft.title\" colors='green:20,indianred:30,red:40'/> chars\n</span>\n</$reveal>\n\n<!--\nShow the number of characters in the title\n-->",
            "title": "$:/plugins/telmiger/EditorCounter/TitleTemplate",
            "tags": "$:/tags/EditTemplate EditorCounter",
            "modifier": "Thomas Elmiger",
            "modified": "20170303172302480",
            "list-before": "$:/core/ui/EditTemplate/tags",
            "creator": "Thomas Elmiger",
            "created": "20170213190419968"
        },
        "$:/plugins/telmiger/EditorCounter/settings/autosave": {
            "created": "20170303132537685",
            "creator": "Thomas Elmiger",
            "text": "no",
            "title": "$:/plugins/telmiger/EditorCounter/settings/autosave",
            "modifier": "Thomas Elmiger",
            "modified": "20170304110651863",
            "limit": "200",
            "tags": "EditorCounter"
        },
        "$:/plugins/telmiger/EditorCounter/credits": {
            "text": "!! Credits\n\nMany thanks to Jed for his blueprint widget and demo site, originally on http://ooktech.com/jed/ExampleWikis/WordCount/ as well as to Skeeve who obviousliy contributed the original macro version Jed based his solution on.\n\n* http://ooktech.com/TiddlyWiki/\n* http://ooktech.com/TiddlyWiki/WordCount/\n\n//Powered by the fantastic TiddlyWiki community.//\n",
            "title": "$:/plugins/telmiger/EditorCounter/credits",
            "tags": "EditorCounter",
            "modifier": "Thomas Elmiger",
            "modified": "20170304104718649",
            "creator": "Thomas Elmiger",
            "created": "20170304102433909"
        }
    }
}
{
    "tiddlers": {
        "$:/plugins/telmiger/lib/language": {
            "text": "$:/plugins/telmiger/lib/languages/en-GB",
            "created": "20160820133735127",
            "creator": "Thomas Elmiger",
            "modified": "20160917153239827",
            "modifier": "Thomas Elmiger",
            "priority": "2",
            "tags": "ToDoDone ToDoComponents",
            "title": "$:/plugins/telmiger/lib/language",
            "todo-deadline": "",
            "todo-done": "20160820234641 20160821004547"
        },
        "$:/plugins/telmiger/lib/languages/en-GB": {
            "created": "20160820190056478",
            "creator": "Thomas Elmiger",
            "text": "ID:English\ndate-created-tmpl: {{$:/language/Tiddler/DateFormat}}\ndate-created-tmpl-info: DDth MMM YYYY at hh12:0mmpm\ndate-deadline-tmpl: YYYY-0MM-0DD\n<!-- strings: strigs start here -->\nAdd-tag: Add tag\nAdd-tags-from-the-list: Add tags from the list\nall: all\nall-projects: all projects\narchive: archive\nAre-you-sure?: Are you sure?\nChange-deadline: Change deadline\nchange-priority: Change priority\nchange-priority-to: set priority to\nClick-to-edit-title: Click the title to edit!\nclose: Close\nClose: Close\ndays-back: days back\nDetails: Show details\nDo-it-again: Do it again\nDo-now: Do now\nDone: Done\nEdit: Edit\nHide-list: Hide list\nlate: late\nManage-tags: Manage tags\nMove-down: Move down\nMove-up: Move up\nNew-ToDo-Item: New ToDo Item\nNext week: Next week\nno.: no.\nNothing-to-do-?: Nothing to do? Create a task using this button\nPick-a-task-: Pick a task from the list below using this button\nPrint-window-hint: Open in new window to print\nProject: Project\nRecycle: Recycle\nRelax-Nothing-to-do: Relax. Nothing to do.\nRemove-deadline: Remove deadline\nRemove-tags?: Remove tags?\nReset: Reset\nsearch: search …\nSend-it-down: Send it down\nSet-deadline: Set deadline\nShow-list: Show list\nSort-by-deadline: Sort by deadline\nSort-by-modification: Sort by last modification\nSort-by-priority: Sort all by priority\nSort-by-title: Sort all by title\nsorted-by-deadline: sorted by deadline\nsorted-by-modification: sorted by last modification\nsorted-by-priority: sorted by priority\nsorted-by-title: sorted by title\nSwitch-to-edit-mode: Switch to edit mode\nSwitch-to-safe-mode: Switch to save mode\nTake-it-up: Take it up!\nThis-is-done: This is done\nThis-week: This week\ntoday: today\nToday: Today\nToDo: ToDo\nToDo-template-title: ToDo Item\nToDo-template-text: Motivation: Description * Tests/Acceptance criteria\nTomorrow: Tomorrow\nUuups: Uuups!\n<!-- comments: comments -->\n<!-- translation requires: $:/plugins/telmiger/lib/telang  -->\n<!-- use translated term: <<telang term>> -->",
            "type": "application/x-tiddler-dictionary",
            "todo-done": "20160821121501",
            "title": "$:/plugins/telmiger/lib/languages/en-GB",
            "tags": "Translation ToDoComponents",
            "modifier": "Thomas Elmiger",
            "modified": "20170713195435035"
        },
        "$:/plugins/telmiger/lib/telang": {
            "text": "\\define telang(term)\n<$transclude tiddler={{$:/plugins/telmiger/lib/language}} index=\"$term$\"><$transclude tiddler=\"$:/plugins/telmiger/lib/languages/en-GB\" index=\"$term$\"/></$transclude>\n\\end\n",
            "created": "20160917153627850",
            "creator": "Thomas Elmiger",
            "modified": "20160917160018287",
            "modifier": "Thomas Elmiger",
            "priority": "2",
            "tags": "ToDoDone ToDoComponents $:/tags/Macro",
            "title": "$:/plugins/telmiger/lib/telang",
            "todo-deadline": "",
            "todo-done": "20160820234641 20160821004547"
        },
        "$:/plugins/telmiger/lib/telements/buttons": {
            "created": "20160816192735231",
            "creator": "Thomas Elmiger",
            "text": "\\define teBtnDelete1(tiddler:\"<<currentTiddler>>\",btntext:\"{{$:/core/images/delete-button}}\",tooltip:\"delete\",tip:\"really?\",class:\"\")\n<$vars tid=$tiddler$ btnclass=\"te-btn-action $class$\">\n<$button popup=\"$:/DeletePopupState\" class=<<btnclass>> tooltip=\"\"\"$tooltip$\"\"\">$btntext$</$button>\n<$reveal type=\"popup\" position=\"left\" state=\"$:/DeletePopupState\" class=\"te-popup-dark\">\n<$button class=\"te-delete $class$\" tooltip=\"$tip$\">\n<$action-deletetiddler $tiddler=<<tid>>/>\n<$action-deletetiddler $tiddler=\"$:/DeletePopupState\"/>\nConfirm deletion\n</$button> \n<$button class=\"te-secondary-btn $class$\">\n<$action-deletetiddler $tiddler=\"$:/DeletePopupState\"/>\nCancel\n</$button>\n</$reveal>\n</$vars>\n\\end\n\n\\define teBtnDelete(class:\"\")\n<$vars btnclass=\"te-btn-action te-btn-delete $class$\">\n<$button message=\"tm-delete-tiddler\" tooltip={{$:/language/Buttons/Delete/Hint}} aria-label={{$:/language/Buttons/Delete/Caption}} class=<<btnclass>>>\n{{$:/core/images/delete-button}}\n</$button>\n</$vars>\n\\end\n\n\\define teBtnHint(btntext,message,tooltip,tip,class:\"\")\n<$set name=\"btnclass\" value=\"te-hint $class$\">\n<$button class=<<btnclass>> tooltip=\"\"\"$tooltip$\"\"\" message=\"$message$\">\n$btntext$\n<span class=\"te-tip\">$tip$</span>\n</$button>\n</$set>\n\\end\n\n\\define teBtnTagListops(btntext,add-remove,tooltip,tip:\"_false_\",class:\"\")\n<$vars tip=\"\"\"$tip$\"\"\" btnclass=\"te-btn-action te-tag-listops $class$\">\n<$set name=\"mytip\" filter=\"[<tip>removeprefix[_false_]]\" emptyValue=\"\"\"<span class=\"te-tip\">$tip$</span>\"\"\">\n<$button class=<<btnclass>> tooltip=\"\"\"$tooltip$\"\"\">\n<$wikify name=\"timestampState\" text=\"{{$:/config/TimestampDisable}}\">\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"yes\"/>\n<$action-listops $tags=\"$add-remove$\" />\n$btntext$\n<<mytip>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=<<timestampState>>/>\n</$wikify>\n</$button>\n</$set>\n</$vars>\n\\end\n\n\\define teBtnEdit(sendmessage:\"tm-edit-tiddler\",class:\"\")\n<$wikify name=\"tt\" text=<<telang Edit>>>\n   <$button tooltip=<<tt>> class=\"te-btn-action te-edit $class$\">\n<$action-sendmessage $message=\"$sendmessage$\" $param=<<currentTiddler>> />\n{{$:/core/images/edit-button}}\n</$button>\n</$wikify>\n\\end\n\n\\define teBtnEditShowModified(sendmessage:\"tm-edit-tiddler\",class:\"\")\n<$wikify name=\"tt\" text=<<telang Edit>>>\n   <$button tooltip=<<tt>> class=\"te-btn-action te-edit $class$\">\n<$action-sendmessage $message=\"$sendmessage$\" $param=<<currentTiddler>> />\n{{$:/core/images/edit-button}}<span class=\"te-tip\"><$view tiddler=<<currentTiddler>> field=\"modified\" format=\"date\" template=\"YYYY-0MM-0DD 0hh:0mm\"/></span>\n</$button>\n</$wikify>\n\\end\n\n\\define teBtnPrio(btntext,priority,prioritylist:\"$:/plugins/telmiger/lib/telements/buttons\",tooltip,class:\"\")\n<$set name=\"nextprio\" filter=\"\"\"[list[$prioritylist$]nth[$priority$]]\"\"\">\n<$wikify name=\"next\" text=\"$tooltip$ <<nextprio>>\">\n<$button tooltip=<<next>> class=\"te-btn-action te-prio prio$priority$ $class$\">\n<$action-listops $field=\"priority\" $filter=<<nextprio>>/>\n$btntext$<span class=\"te-prionr\">$priority$</span>\n</$button>\n</$wikify>\n</$set>\n\\end\n\n\\define teBtnPrioPopup(tiddler,btntext,priority,prioritylist:\"$:/plugins/telmiger/lib/telements/buttons\",tooltip:\"change priority\",class:\"\")\n<$set name=\"qualstate\" value=<<qualify \"$:/state/reveal_priopop_$tiddler$_\">> >\n<$reveal type=\"nomatch\" state=<<qualstate>> text=\"show\" class=\"te-btn-reveal\">\n<$button tooltip=\"\"\"$tooltip$\"\"\" set=<<qualstate>> setTo=\"show\" class=\"te-btn-action te-prio prio$priority$ $class$\">\n$btntext$<span class=\"te-prionr\">$priority$</span>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<qualstate>> text=\"show\" class=\"te-btn-reveal\">\n<$button tooltip=\"close popup\" class=\"te-btn-action te-prio prio$priority$ $class$\">\n<$action-deletetiddler $tiddler=<<qualstate>>/>\n$btntext$<span class=\"te-prionr\">$priority$</span>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<qualstate>> text=\"show\">\n<$wikify name=\"tt\" text=\"set prio\">\n  <$macrocall $name=\"tePrioList\" tiddler=\"\"\"$tiddler$\"\"\" icon=\"{{$:/core/images/star-filled}}\" priorityfield=\"priority\" prioritylist=\"\"\"$prioritylist$\"\"\" tooltip=<<tt>> class=\"\" state=<<qualstate>>/>\n</$wikify>\n</$reveal>\n</$set>\n\\end\n\n\\define tePrioList(tiddler,prioritylist:\"_false_\",priorityfield:\"_false_\",icon:\"{{$:/core/images/star-filled}}\",state)\n<$vars priotid=\"\"\"$prioritylist$\"\"\" tid=\"\"\"$tiddler$\"\"\">\n<$set name=\"prioOld\" filter=\"[<currentTiddler>get[$priorityfield$]]\">\n<div class=\"te-prio-popup\">\n<ul class=\"te-prio-list\">\n<$list filter=\"[list<priotid>sort[]] -[<prioOld>]\" variable=\"prio\" emptyValue=\"error: no priorities in list field of $tiddler$\">\n<li>\n    <$macrocall $name=\"teBtnPrioSet\" tiddler=<<tid>> priority=<<prio>> priorityfield=\"\"\"$priorityfield$\"\"\" tooltip=\"set as prio\" icon=\"\"\"$icon$\"\"\" class=\"\" state=\"\"\"$state$\"\"\"/>\n</li>\n</$list>\n</ul>\n</div>\n</$set>\n</$vars>\n\\end\n\n\\define teBtnPrioSet(tiddler,priority,priorityfield,tooltip,icon,class:\"\",state)\n<$vars prio=\"\"\"$priority$\"\"\" qualstate=\"\"\"$state$\"\"\">\n<$button tooltip=\"\"\"$tooltip$\"\"\" class=\"te-btn-action te-prio prio$priority$ $class$\">\n<$wikify name=\"timestampState\" text=\"{{$:/config/TimestampDisable}}\">\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"yes\"/>\n<$action-listops $tiddler=\"\"\"$tiddler$\"\"\" $field=$priorityfield$ $filter=<<prio>>/>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=<<timestampState>>/>\n<$action-deletetiddler $tiddler=<<qualstate>>/>\n$icon$<span class=\"te-prionr\"><<prio>></span>\n</$wikify>\n</$button>\n</$vars>\n\\end\n\n\\define teBtnIcons(label,icon,hovericon)\n<span class=\"te-btn-label\">\"\"\"$label$\"\"\"</span>\n<span class=\"te-btn-icon\"><$transclude tiddler=\"\"\"$icon$\"\"\"/></span>\n<span class=\"te-btn-hovericon\"><$transclude tiddler=\"\"\"$hovericon$\"\"\"/></span>\n\\end\n\n<!-- !! Macros to produce nice buttons\n\nOptimize: Rewire field \"priority\" to a variable $saveto$?\n\n* teBtnDelete\n** delete a given tiddler – show a confirmation request first\n** teBtnDelete1 is my first try to implement this without using existing core as a blueprint.\n* teBtnHint(btntext,message,tooltip,tip,class:\"\")\n** add a message\n* teBtnTagListops(btntext,add-remove,tooltip,tip,class:\"\")\n** add-remove: add and remove tags in one statement \"addthis -removethat\"\n** does not update the modification date as of TW 5.1.14\n* teBtnEdit(sendmessage:\"tm-edit-tiddler\",class:\"\") \n** tiddler is currentTiddler\n* teBtnEditShowModified(sendmessage:\"tm-edit-tiddler\",class:\"\") – used in  $:/plugins/telmiger/listreveal/readme \n** shows modified timestamp on hover\n** tiddler is currentTiddler\n* teBtnPrio(btntext,priority,prioritylist:\"$:/plugins/telmiger/lib/telements/buttons\",tooltip,class:\"\")\n** let the user cycle through a list of choices (priorities) from the //list// field of a tiddler  \n* teBtnPrioPopup(tiddler,btntext,priority,prioritylist:\"$:/plugins/telmiger/lib/telements/buttons\",tooltip:\"change priority\",class:\"\")\n** let the user select a priority from a list of choices saved in the //list// field of a tiddler  \n* tePrioList – a helper macro for teBtnPrioPopup\n* teBtnPrioSet – a helper macro for teBtnPrioPopup\n* teBtnIcons(label,icon,hovericon) – create a set of spans for buttons with icons\n\n-->\n",
            "title": "$:/plugins/telmiger/lib/telements/buttons",
            "tags": "ToDoComponents $:/tags/Macro MyMacros Listreveal",
            "prio": "",
            "modifier": "Thomas Elmiger",
            "modified": "20170713202614284",
            "list": "3 1 2"
        },
        "01 Listreveal List Setup": {
            "created": "20170222232934553",
            "creator": "Thomas Elmiger",
            "text": "Explanations for the code of $:/plugins/telmiger/listreveal/readme – you can clone the linked tiddler and adapt it step by step to create your own listreveal project. The filter statement is a good point to start:\n\n```\n<$set name=\"listfilter\" \n   value=\"\"\"[tag[Listreveal]!is[system]sort[title]]\"\"\">\n<ul class=\"te-list\">\n<$list filter=<<listfilter>>>\n```\nAlways use a variable called //listfilter// to create your list. The list-based tag manager (see [[03 Context Tagging]]) is depending on this convention.\n\nIt is recommended to use the CSS classes you see in this example – add your own to change the looks.\n\n```\n<$set name=\"tidTitle\" value={{!!title}}>\n   <li class=\"todo-item te-flex-item\">\n      <span class=\"te-flex-item te-flex-half-full\">\n         <span class=\"te-flex-item te-flex-content te-flex-left\">\n   <$link to={{!!title}}><$view field=\"title\"/></$link>\n         </span>\n      </span>\n```\nThe styling relies on [[CSS3 flexbox|https://scotch.io/tutorials/a-visual-guide-to-css3-flexbox-properties]]. These spans help to make your list as mobile friendly as possible.\n\n```\n      <span class=\"te-flex-item te-flex-half-full\">\n         <span class=\"te-flex-item te-flex-content te-flex-right\">\n            <<teBtnEditShowModified>>\n```\nThis macro produces an edit button. It shows the tiddler’s modified date when the mouse hovers over it.\n\n```\n<$wikify name=\"cl\" text=<<telang close>> >\n<$wikify name=\"tt\" text=<<telang Details>> >\n   <$macrocall $name=\"listrevealButton\" title=<<tidTitle>> tooltip=<<tt>> close=<<cl>>/>\n</$wikify>\n</$wikify>\n```\nThis macrocall produces the button on the right side that opens and closes the tiddlers.\n\nThe variables //cl// and //tt// get predefined translations from the language tiddlers that are part of this plugin. You can replace the tooltip for opening (attribute //tooltip//) and closing (attribute //close//) with your own texts.\n\n```\n         </span>\n      </span>\n<$wikify name=\"tpl\" text=<<telang date-created-tmpl>> >\n   <$macrocall $name=\"listrevealContent\" title=<<tidTitle>> datetime=<<tpl>>/>\n</$wikify>\n```\nThis macrocall produces the text content and some details of your tiddler.\n\nAgain the variable //tpl// gets a predefined translation from the integrated language tiddlers. It is used as a [[date format template|http://tiddlywiki.com/#DateFormat]] when the created and modified timestamps of the tiddler are displayed. This attribute is optional.\n\n//tidTitle// is the variable for the title of your list elements (your tiddlers). It is set at the beginning (see second snippet).\n\n```\n   </li>\n</$set>\n</$list>\n</ul>\n</$set>\n```\nThe whole list is presented as an unordered HTML list `<ul>` with tiddlers as list items `<li>`.",
            "title": "01 Listreveal List Setup",
            "tags": "Listreveal",
            "modified": "20170224201650800",
            "modifier": "Thomas Elmiger"
        },
        "02 Edit Button": {
            "created": "20170222233632994",
            "creator": "Thomas Elmiger",
            "text": "Optionally you can add a lock/unlock button to switch your list into edit mode (all listreveal lists in your wiki to be precise). This presents the tiddler content in an editor field where you can change it using wikitext formatting. \n\n```\nUse this button to enable editing: <<listrevealBtnEdit>>\n```\nAdd your own parameter `class:\"your-class\"` for styling and positioning via CSS. The icon has a so called dirty indicator implemented: it turns red if you have unsaved changes.",
            "title": "02 Edit Button",
            "tags": "Listreveal",
            "modified": "20170224192922331",
            "modifier": "Thomas Elmiger"
        },
        "03 Context Tagging": {
            "created": "20170224195102124",
            "creator": "Thomas Elmiger",
            "text": "When you look inside a tiddler in the list using the ellipsis (…) button on the right, you see the tiddler’s tags, text and timestamps. \n\n{{$:/core/images/tag-button}}\n\nThe tags can be changed using the tag label icon. A unique feature called context tagging or list-based tagging appears in a popup. From there you are able to add suggested tags based on the other tiddlers in your list or remove single tags from the tiddler. ",
            "title": "03 Context Tagging",
            "tags": "Listreveal",
            "modified": "20170224195644691",
            "modifier": "Thomas Elmiger"
        },
        "04 Checklists": {
            "created": "20170224200058192",
            "creator": "Thomas Elmiger",
            "text": "This plugin comes with CSS to support checklists generated via a plugin by Tony Grosinger – indentation and the display of user interface elements to add and delete items should be optimized for use inside of listreveal lists.\n\n[ ] Install the plugin from https://grosinger.net/tw5-checklist/\n[ ] Make your first checklist\n[x] Read these hints on checklists",
            "todo-done": "20160917214708",
            "todo-deadline": "20160912220000000",
            "title": "04 Checklists",
            "tags": "Listreveal Usability Plugins",
            "priority": "2",
            "modifier": "Thomas Elmiger",
            "modified": "20170224201034767"
        },
        "05 Translations": {
            "text": "The following language tiddlers are shipped with this plugin: \n\n<ul>\n<$list filter=\"\"\"[all[tiddlers+shadows]prefix[$:/plugins/telmiger/lib/languages/]sort[]]\"\"\">\n<li>\n{{##ID}}:  <$link to={{!!title}}><$view field=\"title\"/></$link>\n</li>\n</$list>\n</ul>\n\nSet your language in $:/plugins/telmiger/lib/language (I hope I will find a way to use the language from the TW settings in the future).\n\nTo implement a new language you could clone and adapt one of them. They are used for other plugins too, this is why they contain way more text than needed for listreveal.\n",
            "title": "05 Translations",
            "tags": "Listreveal Translation",
            "modifier": "Thomas Elmiger",
            "modified": "20170714214826478",
            "creator": "Thomas Elmiger",
            "created": "20170224202239839"
        },
        "$:/plugins/telmiger/lib/languages/de-DE": {
            "created": "20160823202222125",
            "creator": "Thomas Elmiger",
            "text": "ID:Deutsch (Deutschland)\ndate-created-tmpl: {{$:/language/Tiddler/DateFormat}}\ndate-created-tmpl-info: DD. MMM YYYY, 0hh:0mm Uhr\ndate-deadline-tmpl: 0DD.0MM.YYYY\n<!-- strings: strings start here -->\nAdd-tag: Tag hinzufügen\nAdd-tags-from-the-list: Tags aus der Liste hinzufügen\nall: alle\nall-projects: alle Projekte\narchive: archivieren\nAre-you-sure?: Bist du sicher?\nChange-deadline: Fälligkeit ändern\nchange-priority: Priorität ändern\nchange-priority-to: Priorität ändern auf\nClick-to-edit-title: Auf Titel klicken zum Bearbeiten!\nclose: Schließen\nClose: Schließe\ndays-back: Tage\nDetails: Details\nDo-it-again: Mach’s nochmal\nDo-now: Jetzt erledigen\nDone: Erledigt\nEdit: bearbeiten\nHide-list: Liste ausblenden\nlate: später\nManage-tags: Tag-Manager\nMove-down: Nach unten\nMove-up: Nach oben\nNew-ToDo-Item: Neue Aufgabe\nno.: Anz.\nNothing-to-do-?: Nichts zu tun? Erstelle eine Aufgabe mit diesem Knopf\nPick-a-task-: Wähle eine Aufgabe aus der Liste unten mit diesem Knopf\nPrint-window-hint: In neuem Fenster öffnen zum Drucken\nProject: Projekt:\nRecycle: Nochmals verwenden\nRelax-Nothing-to-do: Schön. Es gibt nichts zu tun.\nRemove-deadline: Fälligkeit löschen\nRemove-tags?: Tags entfernen?\nReset: Zurücksetzen\nsearch: Suche\nSend-it-down: doch nicht jetzt\nSet-deadline: Termin festlegen\nShow-list: Liste anzeigen\nSort-by-deadline: Nach Termin sortieren\nSort-by-modification: Nach letzter Änderung sortieren\nSort-by-priority: Alle nach Priorität sortieren\nSort-by-title: Alle nach Titel sortieren\nsorted-by-deadline: sortiert nach Enddatum\nsorted-by-modification: sortiert nach letzter Änderung\nsorted-by-priority: sortiert nach Priorität\nsorted-by-title: sortiert nach Titel\nSwitch-to-edit-mode: Bearbeiten ermöglichen\nSwitch-to-safe-mode: Bearbeiten ausschalten\nTake-it-up: Rauf damit!\nThis-is-done: Das ist erledigt\nThis-week: Diese Woche\ntoday: heute\nToday: Heute\nToDo: ToDo\nToDo-template-title: Neue Aufgabe\nToDo-template-text: Motivation: Beschreibung * Tests/Abnahmekriterien\nTomorrow: Morgen\nUuups: Hoppla!\n<!-- comments: Kommentare -->\n<!-- translation requires: $:/plugins/telmiger/lib/telang  -->\n<!-- use translated term: <<telang term>> -->",
            "type": "application/x-tiddler-dictionary",
            "todo-done": "20160821121525",
            "title": "$:/plugins/telmiger/lib/languages/de-DE",
            "tags": "Translation ToDoComponents",
            "modifier": "Thomas Elmiger",
            "modified": "20170713195705076"
        },
        "$:/plugins/telmiger/lib/languages/de-CH": {
            "created": "20160821100821036",
            "creator": "Thomas Elmiger",
            "text": "ID:Deutsch (Schweiz)\ndate-created-tmpl: {{$:/language/Tiddler/DateFormat}}\ndate-created-tmpl-info: DD. MMM YYYY, 0hh:0mm Uhr\ndate-deadline-tmpl: 0DD.0MM.YYYY\n<!-- strings: strings start here -->\nAdd-tag: Tag hinzufügen\nAdd-tags-from-the-list: Tags aus der Liste hinzufügen\nall-projects: alle Projekte\narchive: archivieren\nAre-you-sure?: Bist du sicher?\nChange-deadline: Fälligkeit ändern\nchange-priority: Priorität ändern\nchange-priority-to: Priorität ändern auf\nClick-to-edit-title: Auf Titel klicken zum Bearbeiten!\nclose: Schliessen\nClose: Schliesse\ndays-back: Tage zurück\nDetails: Details\nDo-it-again: Mach’s nochmal\nDo-now: Jetzt erledigen\nDone: Erledigt\nEdit: bearbeiten\nHide-list: Liste ausblenden\nlate: später\nManage-tags: Tag-Manager\nMove-down: Nach unten\nMove-up: Nach oben\nNew-ToDo-Item: Neue Aufgabe\nno.: Anz.\nNothing-to-do-?: Nichts zu tun? Erstelle eine Aufgabe mit diesem Knopf\nPick-a-task-: Wähle eine Aufgabe aus der Liste unten mit diesem Knopf\nPrint-window-hint: In neuem Fenster öffnen für Druck\nProject: Projekt:\nRecycle: Nochmals verwenden\nRelax-Nothing-to-do: Schön. Es gibt nichts zu tun.\nRemove-deadline: Fälligkeit löschen\nRemove-tags?: Tags entfernen?\nReset: Zurücksetzen\nsearch: Suche …\nSend-it-down: doch nicht jetzt\nSet-deadline: Termin festlegen\nShow-list: Liste anzeigen\nSort-by-deadline: Nach Termin sortieren\nSort-by-modification: Nach letzter Änderung sortieren\nSort-by-priority: Alle nach Priorität sortieren\nSort-by-title: Alle nach Titel sortieren\nsorted-by-deadline: sortiert nach Enddatum\nsorted-by-modification: sortiert nach letzter Änderung\nsorted-by-priority: sortiert nach Priorität\nsorted-by-title: sortiert nach Titel\nSwitch-to-edit-mode: Bearbeiten ermöglichen\nSwitch-to-safe-mode: Bearbeiten ausschalten\nTake-it-up: Rauf damit!\nThis-is-done: Das ist erledigt\ntoday: heute\nToday: Heute\nToDo: ToDo\nToDo-template-title: ToDo Item\nToDo-template-text: Motivation: Description * Tests/Acceptance criteria\nThis-week: Diese Woche\nTomorrow: Morgen\nUuups: Hoppla!\n<!-- comments: Kommentare -->\n<!-- translation requires: $:/plugins/telmiger/lib/telang  -->\n<!-- use translated term: <<telang term>> -->",
            "type": "application/x-tiddler-dictionary",
            "todo-done": "20160821121525",
            "title": "$:/plugins/telmiger/lib/languages/de-CH",
            "tags": "Translation ToDoComponents",
            "modifier": "Thomas Elmiger",
            "modified": "20170713195742337"
        },
        "$:/plugins/telmiger/listreveal/icon": {
            "created": "20170224201850969",
            "text": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"64.003\" height=\"64.003\" viewBox=\"-500.5 395.5 64.003 64.003\"><path d=\"M-468.5 396.5l26.426 15.5v31l-26.425 15.5-26.426-15.5v-31l26.427-15.5z\"/><path fill=\"#FFF\" d=\"M-485.996 419.088h34.99v16.824h-34.99z\"/><path fill=\"#E2001A\" d=\"M-468.5 405.5c-12.15 0-22 9.85-22 22s9.85 22 22 22 22-9.85 22-22-9.85-22-22-22zm13.11 21.637c-1.022.682-2.674 1.023-4.954 1.023h-2.838c-1.505 0-2.598.3-3.28.9-.68.6-1.22 1.804-1.622 3.615 0 0-.063.526-.178.526s-.13-.31-.184-.562c-.056-.263-.14-.59-.256-.977-.224-.758-.447-1.332-.67-1.72-.27-.482-.613-.87-1.024-1.165-.412-.294-.883-.47-1.413-.528l-.74-.088h-3.637c-2.178 0-3.796-.343-4.855-1.024-1.764-1.12-2.71-3.24-2.842-6.357-.01-.25 0-.48.047-.772h.208c.142 1.41 1.304 2.502 2.158 3.274.853.77 2.222 1.155 4.104 1.155h3.3c1.896 0 3.28.436 4.158 1.306.79.786 1.31 2.017 1.56 3.69.028.183.012.263.064.263.053 0 .04-.09.06-.278.253-2.173 1.094-3.627 2.522-4.363.88-.46 2.28-.676 4.196-.652l2.257.035c1.527.023 2.814-.278 3.86-.908 1.046-.63 2.285-1.803 2.425-3.52h.21c.065.17.057.56.045.828-.13 3.105-1.023 5.206-2.68 6.3z\"/></svg>",
            "type": "image/svg+xml",
            "title": "$:/plugins/telmiger/listreveal/icon",
            "tags": "",
            "modified": "20170224201914042"
        },
        "$:/plugins/telmiger/listreveal/readme": {
            "created": "20170222172249206",
            "creator": "Thomas Elmiger",
            "text": "!! Good to Know\n\nA list of things you should know about this plugin. Click the ellipsis button on the right […] to see more.\n\nUse this button to enable editing: <<listrevealBtnEdit>>\n\n---\n\n<$set name=\"listfilter\" value=\"\"\"[all[shadows]prefix[0]sort[title]]\"\"\">\n<ul class=\"te-list\">\n<$list filter=<<listfilter>>>\n<$set name=\"tidTitle\" value={{!!title}}>\n   <li class=\"todo-item te-flex-item\">\n      <span class=\"te-flex-item te-flex-half-full\">\n         <span class=\"te-flex-item te-flex-content te-flex-left\">\n   <$link to={{!!title}}><$view field=\"title\"/></$link>\n         </span>\n      </span>\n      <span class=\"te-flex-item te-flex-half-full\">\n         <span class=\"te-flex-item te-flex-content te-flex-right\">\n            <<teBtnEditShowModified>>\n<$wikify name=\"cl\" text=<<telang close>> >\n<$wikify name=\"tt\" text=<<telang Details>> >\n   <$macrocall $name=\"listrevealButton\" title=<<tidTitle>> tooltip=<<tt>> close=<<cl>>/>\n</$wikify>\n</$wikify>\n         </span>\n      </span>\n<$wikify name=\"tpl\" text=<<telang date-created-tmpl>> >\n   <$macrocall $name=\"listrevealContent\" title=<<tidTitle>> datetime=<<tpl>>/>\n</$wikify>\n   </li>\n</$set>\n</$list>\n</ul>\n</$set>",
            "title": "$:/plugins/telmiger/listreveal/readme",
            "tags": "Listreveal",
            "modified": "20170224210736677",
            "modifier": "Thomas Elmiger"
        },
        "$:/plugins/telmiger/listreveal/tags": {
            "text": "\\define lrTaglist(tiddler:\"_false_\")\n<div class=\"lr-tag-popup\">\n<<telang Add-tags-from-the-list>> \n<$wikify name=\"tt\" text=<<telang Add-tag>>>\n<ul class=\"lr-tags-add\">\n<$list filter=\"[list[$:/temp/lr-tags-$tiddler$!!lr-tagsinlist]sort[]] -[list[$:/temp/lr-tags-$tiddler$!!lr-tagstoremove]]\" variable=\"tag\">\n<li>\n   <$macrocall $name=\"teBtnTagAddRemove\" btntext=<<tag>> add=<<tag>> tiddler=\"\"\"$tiddler$\"\"\" tooltip=<<tt>>/> \n</li>\n</$list>\n</ul>\n</$wikify>\n<<telang Remove-tags?>> \n<$wikify name=\"tt\" text=<<telang Are-you-sure?>>>\n<ul class=\"lr-tags-remove\">\n<$list filter=\"[list[$:/temp/lr-tags-$tiddler$!!lr-tagstoremove]sort[]]\" variable=\"tag\">\n<li>\n   <$macrocall $name=\"teBtnTagAddRemove\" btntext=<<tag>> remove=<<tag>> tiddler=\"\"\"$tiddler$\"\"\" tooltip=<<tt>>/> \n</li>\n</$list>\n</ul>\n</$wikify>\n</div>\n\\end\n\n\\define teBtnTagAddRemove(btntext,add:\"_false_\",remove:\"_false_\",tooltip,class:\"\",tiddler:\"_false_\")\n<$vars tip=\"\"\"$tip$\"\"\" tiddler=\"\"\"$tiddler$\"\"\" btnclass=\"te-popup-action $class$\" add=\"\"\"$add$\"\"\" remove=\"\"\"$remove$\"\"\">\n<$set name=\"actiontid\" filter=\"[<tiddler>!prefix[_false_]]\" value=<<tiddler>> emptyValue=<<currentTiddler>>>\n<$set name=\"subfilter\" filter=\"[<add>!prefix[_false_]]\" value=\"[[$add$]]\" emptyValue=\"-[[$remove$]]\">\n<$wikify name=\"at\" text=<<actiontid>>>\n<$button class=<<btnclass>> tooltip=\"\"\"$tooltip$\"\"\">\n<$wikify name=\"timestampState\" text=\"{{$:/config/TimestampDisable}}\">\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"yes\"/>\n<$action-listops $tiddler=<<at>> $field=\"tags\" $subfilter=<<subfilter>>/>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=<<timestampState>>/>\n<$action-setfield $tiddler=\"\"\"$(popstate)$\"\"\" $field=\"text\" $value=\"\"/>\n   <$text text=\"\"\"$btntext$\"\"\">\n</$wikify>\n</$button>\n</$wikify>\n</$set>\n</$set>\n</$vars>\n\\end\n\n\\define lrBtnAddTags(tiddler,class:\"\")\n<$vars tiddler=\"\"\"$tiddler$\"\"\" temptags=\"$:/temp/lr-tags-$tiddler$\">\n<$wikify name=\"tt\" text=<<telang Manage-tags>>>\n<$wikify name=\"tagfilter\" text=\"<<listfilter>> +[tags[]sort[]]\">\n<$button popup=<<qualify \"$:/state/popup/lr-tags-$tiddler$\">> class=\"\"\"te-btn-action addtag $class$\"\"\" tooltip=<<tt>> >\n<$action-listops $tiddler=<<temptags>> $field=\"lr-tagsinlist\" $filter=<<tagfilter>>/>\n<$action-listops $tiddler=<<temptags>> $field=\"lr-tagstoremove\" $filter=\"[<tiddler>tags[]]\"/>\n<$action-setfield $tiddler=<<temptags>> text=<<lrTaglist \"\"\"$tiddler$\"\"\">>/>\n{{$:/core/images/tag-button}}\n</$button>\n</$wikify>\n</$wikify>\n\\end\n\n\\define lrTagsPopup(tiddler)\n<$set name=\"popstate\" value=<<qualify \"$:/state/popup/lr-tags-$tiddler$\">>>\n<$reveal tag=\"div\" class=\"tc-block-dropdown tc-search-drop-down tc-popup-handle\" state=<<popstate>> type=\"nomatch\" text=\"\" default=\"\">\n{{$:/temp/lr-tags-$tiddler$}}\n</$reveal>\n</$set>\n\\end\n\n\\define lrBtnTags(class:\"\")\n<span class=\"lr-flex-wrapper\">\n<$wikify name=\"tiddler\" text=<<currentTiddler>>>\n   <$macrocall $name=\"lrBtnAddTags\" tiddler=<<tiddler>> class=\"\"\"$class$\"\"\"/>\n   <$macrocall $name=\"lrTagsPopup\" tiddler=<<tiddler>>/>\n</$wikify>\n</span>\n\\end\n\n\\define listreveal-tags()\n<span class=\"listreveal-tags te-flex-item\">\n<<lrBtnTags muted>>\n<span class=\"te-tags\">\n<$list filter=\"[all[current]tags[]sort[title]]\" template=\"$:/core/ui/TagTemplate\" storyview=\"pop\"/>\n</span>\n</span>\n\\end\n\n<!-- !! Listreveal Tags\n\n* lrTaglist\n** show a popup where tags can be added or removed\n* teBtnTagAddRemove\n** show a button to add/remove a tag from a tiddler \n** does not update the modification date as of TW 5.1.14\n* lrBtnTags\n** lrBtnAddTags: show the button (and save the tags that could be added/removed)\n** lrTagsPopup: reveal or hide the popup\n* listreveal-tags\n** put this in your revealed section to show the button and the existing tags\n\n-->",
            "title": "$:/plugins/telmiger/listreveal/tags",
            "tags": "$:/tags/Macro MyMacros ToDoComponents Listreveal ToDoArchive",
            "modifier": "Thomas Elmiger",
            "modified": "20170503060202645",
            "datetime": "",
            "creator": "Thomas Elmiger",
            "created": "20160915193628399"
        },
        "$:/plugins/telmiger/lib/telements.css": {
            "created": "20160816210925818",
            "creator": "Thomas Elmiger",
            "text": "/* library of reusable (t)elements */\n\n/* header */\n\nheader {\n   background-color: <<colour notification-background>>;\n   padding: 10px;\n   margin: 0 0 0 -10px;\n}\n\n/* te-summary as seen in extract macro */\n\n.te-summary {\n   width: 100%;\n   background-color: <<colour code-background>>;\n}\n\n/* flexbox layout */\n\n.te-flex-item {\n   display: flex;\n   flex-direction: row;\n   flex-wrap: wrap;\n   justify-content: space-between;\n   align-items: flex-start;\n   height: auto;\n}\n\n.te-flex-half-full {\n   flex-grow: 1;\n   min-width: 49%;\n}\n\n.te-flex-left {\n   justify-content: flex-start;\n}\n\n.te-flex-right {\n   justify-content: flex-end;\n}\n\n.te-flex-content {\n   width: 100%;\n}\n\n/* lists */\n\n.te-list {\n   list-style: outside none none;\n   margin: 0 0 1em 0;\n   padding: 0;\n   line-height: 2;\n}\n\n.te-list .te-flex-item {\n   border-top: 1px solid rgba(1,1,1,0);\n   border-bottom: 1px solid rgba(1,1,1,0);\n   margin-bottom: -1px;\n}\n\n.te-list .te-flex-item a.tc-tiddlylink-resolves {\n    flex-grow: 3;\n}\n\n\n/* buttons */\n/* big buttons */\n\n.te-btn-big {\n   display: inline-block;\n   position: absolute;\n   right: 42px;\n   height: 29px;\n   min-width: 2.2em;\n   background: none;\n   background-color: <<colour sidebar-tab-background-selected>>;\n   border: 1px solid lightgray;\n   font-size: 0.85em;\n   line-height: 0.5;\n   margin-left: 10px;\n   padding: 3px 6px 1px;\n}\n.te-btn-big:hover {\n   background-color: <<colour sidebar-tab-background>>;\n}\n.te-btn-big.te-inline {\n    position: relative;\n    left: 0px;\n    vertical-align: bottom;\n}\n/* in tabs e.g. plugin info */\n.tc-tab-set .te-btn-big {\n   right: 62px;\n}\n\n/* standard save button */\n\nspan.te-btn-big button {\n   margin: -2px 0 0 5px;\n   padding: 0;\n   background: none;\n   border: none;\n}\nspan.te-btn-big button svg {\n   height: 0.9em;\n}\n\n/* color overlay hack */\n\nbutton.te-btn-big.te-create::before {\n   background-color: <<colour download-background>>;\n   content: \"\";\n   position: absolute;\n   top: 0; \n   left: 0;\n   width: 100%; \n   height: 100%;  \n   opacity: 0.33; \n}\nbutton:hover.te-btn-big.te-create::before {\n   opacity: 0.66; \n}\n\n.te-btn-big.unlocked {\n   background-color: <<colour sidebar-tab-background>>;\n}\n.te-btn-big.unlocked:hover {\n   background-color: <<colour sidebar-tab-background-selected>>;\n}\n.te-btn-big.te-create {\n   background-color: unset;\n}\n.te-btn-big .tc-image-locked-padlock, \n.te-btn-big .tc-image-unlocked-padlock {\n   margin-bottom: 3px;\n}\n.te-btn-big .tc-image-new-button {\n   margin-bottom: 2px;\n   margin-top: 1px;\n}\n.te-btn-big .tc-image-unfold, \n.te-btn-big .tc-image-fold {\n   margin-top: 3px;\n}\n\n\n/* action buttons */\n\n.te-btn-action {\n   background: none;\n   border: none;\n   margin: 0.3em 0.3em 0 0.6em;\n   padding: 0;\n}\n.te-btn-action svg {\n   fill: #333;\n}\n.te-list .te-btn-action.muted svg {\n   opacity:0.3;\n}\n.te-list .te-btn-action:hover svg {\n   opacity:0.6;\n}\n\n.te-btn-action.addtag svg {\n   height: 1.5em;\n   width: 1.5em;\n}\n\n.te-btn-action.te-edit svg {\n   height: 1.25em;\n   width: 1.25em;\n   margin-bottom: -2px;\n}\n\n.te-btn-action.te-prio {\n   background-color: #777;\n   width: 18px;\n   height: 18px;\n   margin-top: 3px;\n   border: 3px solid white;\n   box-sizing: content-box;\n   border-radius: 5px;\n}\n.te-btn-action.te-prio.prio2 {\n   background-color: #999;\n}\n.te-btn-action.te-prio.prio3 {\n   background-color: #bbb;\n}\n.te-btn-action.te-prio.prio4 {\n   background-color: #ddd;\n}\n\n/* action button in te-tip */\n\n.te-tip .te-btn-action {\n    margin-left: 0.4em;\n    padding-bottom: 25px;\n}\n\n\n/* delete button and delete popup */\n\n.te-btn-delete svg.tc-image-delete-button {\n   width: 1.1em;\n   height: 1.45em;\n}\n\n/* unused !!! */\n.te-delete {\n   background-color: #faa;\n}\n.te-popup-dark {\n   padding: 0.5em;\n   background-color: #999;\n   text-align: center;\n}\n\n\n/* popup action buttons */\n\n.te-popup-action {\n    background: none;\n    border: none;\n    padding: 0;\n}\n\n/* date picker button */\n\n.te-btn-action.todo-deadline {\n    display: inline-block;\n    margin-top: 2px;\n    text-align: center;\n    width: 24px;\n}\n\n.te-btn-action.todo-deadline:hover {\n   cursor: pointer;\n   fill: #000;\n}\n.te-btn-action.todo-deadline span svg {\n    height: 1.33em;\n    width: 1.33em;\n    margin-bottom: -3px;\n    opacity: 0.6;\n    display: inline-flex;\n    position: absolute;\n    margin-left: -0.5em;\n    margin-top: 3px;\n}\n\n/* label and icons */\n.te-btn-label {\n   font-size: 0;\n   height: 1px;\n   overflow: hidden;\n   display: block;\n}\n.te-btn-icon {\n   display: block;\n}\nbutton:hover .te-btn-icon {\n   display: none;\n}\n.te-btn-hovericon {\n   display: none;\n}\nbutton:hover .te-btn-hovericon {\n   display: block;\n}\n\n/* urgent indicators */\n\n.te-btn-action .urgent {\n    display: table-cell;\n    position: relative;\n    margin-left: 0;\n    left: 0em;\n    top: -10px;\n    font-size: 0.75em;\n    line-height: 1.25;\n    padding: 0 0.1em 0 0.1em;\n    max-width: 3.25em;\n}\n\n.urgent.late {\n   background-color: red;\n   color: white;\n}\n.urgent.today {\n   background-color: yellow;\n   color: red;\n}\n\n\n/* priority buttons */\n\n.te-btn-action.te-prio svg {\n   position: relative;\n   height: 1.65em;\n   width: 1.5em;\n   margin-top: -3px;\n   opacity: 0;\n   z-index: 101;\n}\n.te-btn-action.te-prio.prio1:hover svg {\n   opacity: 0.6;\n}\n.te-btn-action.te-prio.prio2:hover svg {\n   opacity: 0.5;\n}\n.te-btn-action.te-prio:hover svg {\n   opacity: 0.4;\n}\n.te-btn-action .te-prionr {\n   position: relative;\n   top: -1.5em;\n   width: 100%;\n   color: #fefefe;\n   font-size: 1em;\n   font-weight: 600;\n   text-align: center;\n}\n.te-btn-action.te-prio.prio1 .te-prionr, .te-btn-action.te-prio.prio2 .te-prionr,\n.te-btn-action.te-prio.prio3 .te-prionr {\n   color: #eee;\n}\n\n.te-prio-list {\n    list-style: none;\n    line-height: 1em;\n    padding: 1em 0 0 0;\n    margin: -1.5em 0 0 0;\n    background-color: <<colour sidebar-tab-background>>;\n    width: 43px;\n    position: absolute;\n    z-index: 25;\n    border: 1px solid <<colour sidebar-tab-border>>;\n    border-radius: 4px;\n}\n.te-list .te-prio-list {\n    margin: 1.75em 0 0 -2.5em;\n}\n\n.te-btn-reveal.tc-reveal {\n    height: 1em;\n}\n\n.te-linkbutton {\n   color: <<colour tiddler-link-foreground>>;\n   background-color: transparent;\n   border: 0;\n}\n\n\n/* big buttons positions */\n\n.te-first {\n   margin-right: 2px;\n}\n.te-second {\n   margin-right: 60px;\n}\n.te-third {\n   margin-right: 120px;\n}\n\n\n/* text */\n\n.te-text {\n   margin: 0 0.5em 0 0.5em;\n}\n.te-text.right {\n   margin-left: 1em;\n   margin-right: 0.5em;\n   right: 6em;\n}\n\n\n/* popup tip */\n\n.te-tip {\n   position: absolute;\n   display: none;\n   font-size: 15px;\n   line-height: 1.4;\n   white-space: nowrap;\n   padding: 0 3px 0 3px;\n   border: 1px solid <<colour notification-border>>;\n   border-radius: 3px;\n   background-color: <<colour notification-background>>;\n}\n\n.te-btn-big:hover .te-tip {\n   margin-left: -8em;\n   margin-top: -1.66em;\n   z-index: 100;\n   display: unset;\n}\n\n.te-btn-action:hover .te-tip,\n.te-created:hover .te-tip,\n.te-modified:hover .te-tip {\n   margin-left: -0.4em;\n   margin-top: -1.35em;\n   z-index: 100;\n   display: unset;\n}\n\n.te-text:hover .te-tip {\n   margin-left: -0.8em;\n   margin-top: -0.75em;\n   display: inline-flex;\n   z-index: 100;\n   display: inline-grid;\n   text-align: center;\n   line-height: 1.1;\n}\n\n.te-tip:hover span .te-tip, \n.te-text:hover .te-tip button .te-tip, \n.te-tip:hover button .te-tip {\n   display: none;\n}\n.te-tip:hover span:hover .te-tip, \n.te-tip:hover button:hover .te-tip  {\n   margin-top: -1.25em;\n   z-index: 101;\n   display: unset;\n}\n.te-tip span span svg {\n   margin-top: 0.25em;\n}\n\n/* meta info */\n\n.te-created, .te-modified {\n   position: relative;\n}\n\n/* images */\n\n.te-created svg, .te-modified svg {\n   max-height: 1.25em;\n   opacity: 0.6;\n   margin-bottom: -0.2em;\n}\n\n/* very small screens */\n\n@media (max-width: 500px) {\n   .te-btn-action {\n      margin: 0.3em 0.8em 0 0.5em;\n   }\n}",
            "title": "$:/plugins/telmiger/lib/telements.css",
            "tags": "$:/tags/Stylesheet Listreveal ToDoComponents ToDoArchive",
            "modifier": "Thomas Elmiger",
            "modified": "20170714223553671"
        },
        "$:/plugins/telmiger/lib/telements-print.css": {
            "text": "/* print optimisation for (t)elements */\n\n@media print {\n\n.te-noprint, \n.te-btn-action, .te-btn-action.muted, \n.te-btn-big, .te-btn-big.te-first, .te-btn-big.te-second, .te-btn-big.te-third,\n.te-edit, .te-to-top { \n   display: none;\n}\n\n/* header */\n\nheader {\n   background-color: transparent;\n}\n\n/* show buttons? reset display */\n/* big buttons */\n\n/* action buttons */\n\n.te-btn-action.todo-deadline, .te-btn-action.te-prio {\n   display: initial;\n}\n\n.te-btn-action.te-prio.prio1 span.te-prionr, \n.te-btn-action.te-prio.prio1 {\n   color: #efefef;\n}\n\n.te-btn-action.te-prio span.te-prionr, .te-btn-action.te-prio.prio2 span.te-prionr, \n.te-btn-action.te-prio.prio3 span.te-prionr, .te-btn-action.te-prio.prio4 span.te-prionr {\n   color: #ddd;\n}\n\n.te-btn-action.te-prio {\n   background-color: #ddd;\n   border: 3px solid black;\n}\n.te-btn-action.te-prio.prio2 {\n   background-color: #bbb;\n}\n.te-btn-action.te-prio.prio3 {\n   background-color: #999;\n}\n.te-btn-action.te-prio.prio4 {\n   background-color: #777;\n}\n\n/* date picker button */\n\n.te-btn-action.deadline span svg {\n   opacity: 0.66;\n}\n\n/* text */\n\n/* meta info */\n\n/* images */\n\n.te-created svg, .te-modified svg {\n   opacity: 0.6;\n}\n\n\n/* **** END of print optimisation **** */\n}\n",
            "title": "$:/plugins/telmiger/lib/telements-print.css",
            "tags": "$:/tags/Stylesheet Listreveal ToDoComponents",
            "modifier": "Thomas Elmiger",
            "modified": "20170711223138932",
            "creator": "Thomas Elmiger",
            "created": "20170201215840974"
        },
        "$:/plugins/telmiger/listreveal/lr": {
            "created": "20160811053433681",
            "creator": "Thomas Elmiger",
            "text": "\\define listrevealButton(title,tooltip:\"Details\",close:\"Close\",class:\"\")\n<$vars showclass=\"\"\"listreveal-btn-show te-noprint $class$\"\"\" hideclass=\"\"\"listreveal-btn-hide te-noprint $class$\"\"\">\n<$set name=\"qualstate\" value=<<qualify \"$:/state/listreveal_$title$_\">> >\n<$reveal type=\"nomatch\" state=<<qualstate>> text=\"visible\" animate=\"yes\" class=\"listreveal\">\n   <$button set=<<qualstate>> setTo=\"visible\" class=<<showclass>> tooltip=\"$tooltip$\">…</$button></$reveal>\n<$reveal type=\"match\" state=<<qualstate>> text=\"visible\" animate=\"yes\" class=\"listreveal\">\n   <$button class=<<hideclass>> tooltip=\"$close$\">&times;<$action-deletetiddler $tiddler=<<qualstate>> />\n   </$button></$reveal>\n</$set>\n</$vars>\n\\end\n\n\\define listrevealContent(title,mode:\"block\",datetime:\"YYYY-MM-DD\",state:\"_false_\")\n<$vars state=\"\"\"$state$\"\"\">\n<$set name=\"qualstate\" filter=\"[<state>!prefix[_false_]]\" value=<<state>> emptyValue=<<qualify \"$:/state/listreveal_$title$_\">> >\n<$reveal type=\"match\" state=<<qualstate>> text=\"visible\" animate=\"yes\" class=\"listreveal-open\">\n<<listreveal-tags>>\n<span class=\"listreveal-content\">\n<$reveal type=\"nomatch\" state=\"$:/state/listreveal-mode\" text=\"edit\">\n   <$transclude tiddler=\"\"\"$title$\"\"\" mode=\"$mode$\"/>\n</$reveal>\n<$reveal type=\"match\" state=\"$:/state/listreveal-mode\" text=\"edit\">\n   <$edit tiddler=\"\"\"$title$\"\"\" class=\"listreveal-edit-text\"/>\n</$reveal>\n</span>\n   <$macrocall $name=\"listreveal-meta\" tiddler=\"\"\"$title$\"\"\" datetime=\"\"\"$datetime$\"\"\"/>\n</$reveal>\n</$set>\n</$vars>\n\\end\n\n\\define listreveal-meta(tiddler,datetime)\n<span class=\"listreveal-meta te-flex-item\">\n   <span class=\"te-created\">{{$:/core/images/file}}<span class=\"te-tip\"><$view tiddler=\"\"\"$tiddler$\"\"\" field=\"creator\"/></span><$view tiddler=\"\"\"$tiddler$\"\"\" field=\"created\" format=\"date\" template=\"\"\"$datetime$\"\"\"/></span>\n   <span class=\"te-separator\"></span>\n<<listreveal-showmodified \"\"\"$tiddler$\"\"\" \"\"\"$datetime$\"\"\">>\n\\end\n\n\\define listreveal-showmodified(tiddler,datetime)\n<span class=\"te-modified\">{{$:/core/images/edit-button}}<span class=\"te-tip\"><$view tiddler=\"\"\"$tiddler$\"\"\" field=\"modifier\"/></span><$view tiddler=\"\"\"$tiddler$\"\"\" field=\"modified\" format=\"date\" template=\"\"\"$datetime$\"\"\"/></span>\n\\end\n\n\\define listrevealBtnEdit(class:\"\")\n<$reveal type=\"nomatch\" state=\"$:/state/listreveal-mode\" text=\"edit\">\n<$wikify name=\"tt\" text=<<telang Switch-to-edit-mode>>>\n<$button set=\"$:/state/listreveal-mode\" setTo=\"edit\" tooltip=<<tt>> class=\"te-btn-big locked $class$\">{{$:/core/images/locked-padlock}}</$button>\n</$wikify>\n</$reveal><$reveal type=\"match\" state=\"$:/state/listreveal-mode\" text=\"edit\">\n<$wikify name=\"tt\" text=<<telang Switch-to-safe-mode>>>\n<$button set=\"$:/state/listreveal-mode\" setTo=\"locked\" tooltip=<<tt>> class=\"te-btn-big unlocked $class$\"><$action-sendmessage $message=\"tm-auto-save-wiki\"/><span class=\"tc-dirty-indicator\">{{$:/core/images/unlocked-padlock}}</span></$button>\n</$wikify>\n</$reveal>\n\\end\n\n<!-- !! Listreveal Plugin Macros\n\n!!! Macros to reveal listed tiddlers\n* listrevealButton(title,tooltip:\"Details\",close:\"Close\",class:\"\")\n** produce a button to show/hide tiddler content\n*** parameters: tooltips for show/hide actions and a CSS-class\n*  listrevealContent(title,mode:\"block\",datetime:\"YYYY-MM-DD\",state:\"_false_\")\n** show the content of a listed tiddler\n** use the state parameter if you don’t want tu use the standard button\n*** set the state to //visible// to show tiddler content \n\n!!! Optional macro\n* listrevealBtnEdit(class:\"\")\n** produce a button to \n*** put all listed tiddlers in edit mode (wikitext editor)\n*** lock the tiddlers and auto-save the wiki after editing\n\n!!! Helper macros for listrevealContent\n* listreveal-meta(tiddler,datetime)\n** show meta information of a tiddler: dates for created/modified and creator/modifier (on hover)\n*** datetime: a [[date format|http://tiddlywiki.com/#DateFormat]] string \n* listreveal-showmodified(tiddler,datetime)\n** show modified timestamp and modifier name (on hover)\n*** datetime: a [[date format|http://tiddlywiki.com/#DateFormat]] string \n\n-->",
            "title": "$:/plugins/telmiger/listreveal/lr",
            "tags": "$:/tags/Macro Listreveal",
            "modifier": "Thomas Elmiger",
            "modified": "20170227172955605",
            "datetime": ""
        },
        "$:/plugins/telmiger/listreveal/lr.css": {
            "text": "/* listreveal styles */\n/* === optimised for: ul class=\"te-list\" and li class=\"te-flex-item\" === */\n\n\n/* buttons */\n\n.listreveal-btn-show, .listreveal-btn-hide {\n   margin: 0.2em 2px 0 0.5em;\n   color: <<colour sidebar-tab-foreground-selected>>;\n   width: 2.65em;\n   height: 1.8em;\n   border: none;\n}\n.listreveal-btn-show {\n   background-color: <<colour sidebar-tab-background-selected>>;\n   height: 1.6em;\n   width: 2.35em;\n   margin-left: 0.8em;\n}\n\n.listreveal-btn-hide, .listreveal-btn-show:hover {\n   background-color: <<colour sidebar-tab-background>>;\n}\n\n/* tiddler content */\n\n.listreveal-open {\n   height: auto; \n   width: 100%;\n   transition: none 0s ease 0s ;\n}\n\n.listreveal-content {\n   display: block;\n   color: <<colour foreground>>;\n   background-color: <<colour sidebar-tab-background-selected>>;\n   border-top: solid 1px <<colour sidebar-tab-border>>;\n   border-bottom: solid 1px <<colour sidebar-tab-border>>;\n   line-height: 1.5;\n   padding: 0.5em 1em 1em 1em;\n  -webkit-animation: expanditem 1s ease-in-out 0s running;\n  animation-name: expanditem;\n  animation-duration: 1s;\n  animation-timing-function: ease-in-out;\n  animation-delay: 0s;\n  animation-iteration-count: 1;\n  animation-direction: normal;\n}\n\n.listreveal-content pre {\n   background-color: <<colour tiddler-info-background>>;\n}\n\n/* edit mode */\n\n.listreveal-edit-text {\n  width: 100%;\n  border: 1px solid gray;\n  padding: 1em;\n}\n\n/* meta info */\n\n.listreveal-meta.te-flex-item, .listreveal-tags.te-flex-item {\n   color: <<colour sidebar-tab-foreground>>;\n   background-color: <<colour sidebar-tab-background>>;\n   border-bottom: 1px solid <<colour sidebar-tab-border>>;\n   border-top: 1px solid <<colour sidebar-tab-border>>;\n   margin-top: -1px;\n   margin-bottom: -1px;\n   font-size: 0.85em;\n}\n\n.listreveal-meta {\n   padding-right: 0.5em;\n}\n\n/* tags info */\n\n.listreveal-tags .te-tags button.tc-tag-label {\n   background-color: <<colour sidebar-tab-background-selected>>;\n}\n\n.lr-tag-popup {\n   margin-left: 1em;\n}\n.lr-tag-popup ul {\n   margin: 0;\n   padding: 0 1em 1em 0;\n   line-height: 1.75;\n   list-style: none;\n   font-weight: 600;\n}\n.lr-tag-popup ul li:hover{\n   color: <<colour tiddler-link-foreground>>;\n}\n.lr-tag-popup ul.lr-tags-remove li:hover{\n   color: <<colour dirty-indicator>>;\n}\n.lr-tags-add li button::before {\n   content: \"+&#8197;\";\n   font-size: 1.2em;\n   color: <<colour tiddler-link-foreground>>;\n}\n.lr-tags-remove li button::before {\n   content: \"&#215;&#8197; \";\n   font-size: 1.2em;\n   color: <<colour dirty-indicator>>;\n}\n\n@media (max-width: 960px) {\n}\n\n/* listreveal animation */\n\n@keyframes expanditem {\n  0% { \n      height: 0;\n      opacity: 0;\n  }\n  80.0% {\n      height: 60%;\n      opacity: 0.9;\n  }\n  100.0% {\n      height: 100%;\n      opacity: 1;\n  }\n}\n\n@-webkit-keyframes expanditem {\n  0% { \n      height: 0;\n      opacity: 0;\n  }\n  100.0% {\n      height: 100%;\n      opacity: 1;\n  }\n}",
            "type": "text/vnd.tiddlywiki",
            "title": "$:/plugins/telmiger/listreveal/lr.css",
            "tags": "$:/tags/Stylesheet Listreveal ToDoComponents ToDoArchive",
            "modifier": "Thomas Elmiger",
            "modified": "20170628212920503",
            "creator": "Thomas Elmiger",
            "created": "20160816052415397"
        },
        "$:/plugins/telmiger/lib/icons/stopwatch-empty.svg": {
            "text": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\" class=\"te-stopwatch-button tc-image-button\">\n<path d=\"M64.075 11.522c-32.17 0-58.25 26.082-58.25 58.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S96.25 11.52 64.076 11.52zm0 100.5c-23.336 0-42.25-18.914-42.25-42.25 0-23.33 18.914-42.25 42.25-42.25 23.337 0 42.25 18.92 42.25 42.25 0 23.336-18.913 42.25-42.25 42.25zM55.53 10.022c-2.763 0-5-2.24-5.002-5-.003-2.756 2.24-5 5-5h16.988c2.76 0 5 2.24 5 5 .005 2.757-2.24 5-5 5H55.53z\"/>\n<path fill=\"#000\" d=\"M55 60h18v18H55z\"/>\n</svg>",
            "title": "$:/plugins/telmiger/lib/icons/stopwatch-empty.svg",
            "tags": "$:/tags/Image",
            "modifier": "Thomas Elmiger",
            "modified": "20170509160632118",
            "creator": "Thomas Elmiger",
            "created": "20170506112920842"
        },
        "$:/plugins/telmiger/lib/icons/stopwatch-stop.svg": {
            "text": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"5 0 128 128\" width=\"22pt\" height=\"22pt\" class=\"te-stopwatch-button tc-image-button\">\n<path d=\"M64.075 11.522c-32.17 0-58.25 26.082-58.25 58.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S96.25 11.52 64.076 11.52zm0 100.5c-23.336 0-42.25-18.914-42.25-42.25 0-23.33 18.914-42.25 42.25-42.25 23.337 0 42.25 18.92 42.25 42.25 0 23.336-18.913 42.25-42.25 42.25zM55.53 10.022c-2.763 0-5-2.24-5.002-5-.003-2.756 2.24-5 5-5h16.988c2.76 0 5 2.24 5 5 .005 2.757-2.24 5-5 5H55.53z\"/>\n<path d=\"M64.075 35.902c-18.777 0-33.998 15.224-33.998 33.998 0 18.773 15.22 34.002 33.998 34.002 18.784 0 34.002-15.23 34.002-34.002 0-18.774-15.218-33.998-34.002-33.998z\"/>\n<path fill=\"#FFF\" d=\"M49 54h30v30H49z\"/>\n</svg>",
            "title": "$:/plugins/telmiger/lib/icons/stopwatch-stop.svg",
            "tags": "$:/tags/Image",
            "modifier": "Thomas Elmiger",
            "modified": "20170509161709012",
            "creator": "Thomas Elmiger",
            "created": "20170507053913584"
        },
        "$:/plugins/telmiger/lib/icons/stopwatch.svg": {
            "text": "<svg class=\"te-stopwatch-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10c-2.762 0-5-2.24-5-5-.004-2.756 2.238-5 5-5H66.69c2.762 0 5.002 2.24 5 5 .006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M13.41 27.178c-2.116 1.775-5.27 1.498-7.045-.613-1.772-2.11-1.498-5.27.616-7.047l9.95-8.348c2.115-1.774 5.27-1.5 7.045.618 1.775 2.108 1.498 5.27-.616 7.043l-9.95 8.348zM102.983 27.178c2.116 1.775 5.27 1.498 7.045-.613 1.772-2.11 1.498-5.27-.616-7.047l-9.95-8.348c-2.114-1.774-5.27-1.5-7.044.618-1.775 2.108-1.498 5.27.616 7.043l9.95 8.348zM65.097 71.072c0 3.826-3.09 6.928-6.897 6.928-3.804.006-6.9-3.102-6.903-6.928 0 0 4.76-39.072 6.903-39.072s6.897 39.072 6.897 39.072z\"/>\n    </g>\n</svg>\n",
            "title": "$:/plugins/telmiger/lib/icons/stopwatch.svg",
            "tags": "$:/tags/Image",
            "modifier": "Thomas Elmiger",
            "modified": "20170509160445448",
            "creator": "Thomas Elmiger",
            "created": "20170509160027462"
        },
        "$:/plugins/telmiger/lib/entities": {
            "text": "\\define ldsbra() [[\n\\define rdsbra() ]]\n\n<!-- !! Entities as Macro Definitions\n\n!!! Very short macros for use in other macros\n* ldsbra and rdsbra – left double square brackets and right //dsbra//\n\n-->",
            "todo-done": "20160819011650",
            "title": "$:/plugins/telmiger/lib/entities",
            "tags": "$:/tags/Macro ToDoComponents",
            "modifier": "Thomas Elmiger",
            "modified": "20170702091256635",
            "creator": "Thomas Elmiger",
            "created": "20170629183744936"
        },
        "$:/plugins/telmiger/lib/languages/da-DK": {
            "text": "ID:Dansk\ndate-created-tmpl: {{$:/language/Tiddler/DateFormat}}\ndate-created-tmpl: DD. MMM YYYY, kl. 0hh:0mm\ndate-deadline-tmpl: 0DD.0MM.YYYY\n<!-- strings: strigs start here -->\nAdd-tag: Tilføj tag\nAdd-tags-from-the-list: Tilføj tags fra listen\nall: alle\nall-projects: alle projekter\narchive: arkiv\nAre-you-sure?: Er du sikker?\nChange-deadline: Ændre slutdato\nchange-priority: Ændre prioritet\nchange-priority-to: sæt prioritet til\nClick-to-edit-title: Klik på titlen for at redigere!\nclose: luk\nClose: Luk\ndays-back: dage tilbage\nDetails: Vis detaljer\nDo-it-again: Gør det igen\nDo-now: Udfør nu\nDone: Udført\nEdit: Redigér\nHide-list: Skjul liste\nlate: senere\nManage-tags: Tag-Manager\nMove-down: Flyt ned\nMove-up: Flyt op\nNew-ToDo-Item: Ny opgave\nno.: nr.\nNothing-to-do-?: Intet at lave? Beskriv en ny opgave med denne knap\nPick-a-task-: Vælg en opgave fra listen nedenunder med denne knap\nPrint-window-hint: Åbn i nyt vindue for at printe ud\nProject: Projekt\nRecycle: Genbrug\nRelax-Nothing-to-do: Slap af. Der er ikke noget at lave.\nRemove-deadline: Fjern slutdato\nRemove-tags?: Fjern tags?\nReset: Reset\nsearch: søg …\nSend-it-down: ikke endnu\nSet-deadline: Sæt slutdato\nShow-list: Vis liste\nSort-by-deadline: Sortér efter slutdato\nSort-by-modification: Sortér efter sidste ændring\nSort-by-priority: Sortér alle efter prioritet\nSort-by-title: Sortér alle efter titel\nsorted-by-deadline: sorteret efter slutdato\nsorted-by-modification: sorteret efter sidste ændring\nsorted-by-priority: sorteret efter prioritet\nsorted-by-title: sorteret efter titel\nSwitch-to-edit-mode: Slå redigering til\nSwitch-to-safe-mode: Slå redigering fra\nTake-it-up: Tag det op!\nThis-is-done: Dette er udført\nThis-week: I&nbsp;denne uge\ntoday: i&nbsp;dag\nToday: I&nbsp;dag\nToDo: ToDo\nToDo-template-title: Ny opgave\nToDo-template-text: Motivation: Beskrivelse * Tests/Accept kriterier\nTomorrow: I&nbsp;morgen\nUuups: Uuups!\n<!-- comments: Kommentarer -->\n<!-- credits: Tusind tak til Birthe for den oprindelige oversættelse! -->\n<!-- translation requires: $:/plugins/telmiger/lib/telang  -->\n<!-- use translated term: <<telang term>> -->\n",
            "type": "application/x-tiddler-dictionary",
            "todo-done": "20160821121501",
            "title": "$:/plugins/telmiger/lib/languages/da-DK",
            "tags": "ToDoComponents Translation",
            "modifier": "Thomas Elmiger",
            "modified": "20170714214949515",
            "creator": "BC",
            "created": "20170530162200369"
        },
        "$:/plugins/telmiger/lib/dates": {
            "created": "20170627092117795",
            "creator": "Thomas Elmiger",
            "text": "\\define yearsSince(date-field:\"modified\",tiddler)\n<<yearsDiff \"\"\"$date-field$\"\"\" \"\"\"$tiddler$\"\"\">>\n\\end\n\n\\define monthsSince(date-field:\"modified\",tiddler)\n<$wikify name=\"years\" text='<<yearsDiff $date-field$ \"\"\"$tiddler$\"\"\">>'>\n<$wikify name=\"yearsM\" text='<$macrocall $name=\"rpn\" a=<<years>> b=12 operation=\"*\"/>'>\n<$wikify name=\"months\" text='<<monthsDiff $date-field$ \"\"\"$tiddler$\"\"\">>'>\n<$macrocall $name=\"rpn\" a=<<yearsM>> b=<<months>>/>\n</$wikify></$wikify></$wikify>\n\\end\n\n\\define daysSince(date-field:\"modified\",tiddler)\n<<daysDiff $date-field$ \"\"\"$tiddler$\"\"\">>\n\\end\n\n\\define hoursSince(date-field:\"modified\",tiddler)\n<$wikify name=\"days\" text='<<daysSince $date-field$ \"\"\"$tiddler$\"\"\">>'>\n<$wikify name=\"daysH\" text='<$macrocall $name=\"rpn\" a=<<days>> b=\"24\" operation=\"*\"/>'>\n<$wikify name=\"hours\" text='<<hoursDiff $date-field$ \"\"\"$tiddler$\"\"\">>'>\n<$macrocall $name=\"rpn\" a=<<daysH>> b=<<hours>>/>\n</$wikify></$wikify></$wikify>\n\\end\n\n\\define minutesSince(date-field:\"modified\",tiddler)\n<$wikify name=\"hours\" text='<<hoursSince $date-field$ \"\"\"$tiddler$\"\"\">>'><$wikify name=\"hoursM\" text='<$macrocall $name=\"rpn\" a=<<hours>> b=\"60\" operation=\"*\"/>'><$wikify name=\"minutes\" text='<<minutesDiff $date-field$ \"\"\"$tiddler$\"\"\">>'><$macrocall $name=\"rpn\" a=<<hoursM>> b=<<minutes>>/></$wikify></$wikify></$wikify>\n\\end\n\n\\define hoursMinutesSince(date-field:\"modified\",tiddler)\n<$wikify name=\"minutes\" text='<<minutesSince $date-field$ \"\"\"$tiddler$\"\"\">>'><$macrocall $name=\"rpn\" a=<<minutes>> b=60 operation=\"/\" precision=\"f\"/> h <$macrocall $name=\"rpn\" a=<<minutes>> b=60 operation=\"%\"/> m</$wikify>\n\\end\n\n\\define minutesTo(date-field:\"modified\",tiddler)\n<$wikify name=\"minutes\" text='<<minutesSince $date-field$ \"\"\"$tiddler$\"\"\">>'><$wikify name=\"result\" text='<$macrocall $name=\"rpn\" a=<<minutes>> b=\"-1\" operation=\"*\"/>'><<result>></$wikify></$wikify>\n\\end\n\n\\define hoursTo(date-field:\"modified\",tiddler)\n<$wikify name=\"hours\" text='<<hoursSince $date-field$ \"\"\"$tiddler$\"\"\">>'><$wikify name=\"result\" text='<$macrocall $name=\"rpn\" a=<<hours>> b=\"-1\" operation=\"*\"/>'><<result>></$wikify></$wikify>\n\\end\n\n\\define yearsDiff(date-field:\"modified\",tiddler)\n<$wikify name=\"a\" text='<<now YYYY>>'><$wikify name=\"b\" text='<$macrocall $name=\"yearValue\" field=$date-field$ tiddler=\"\"\"$tiddler$\"\"\"/>'><$macrocall $name=\"rpn\" a=<<a>> b=<<b>> operation=\"-\"/></$wikify></$wikify>\n\\end\n\n\\define monthsDiff(date-field:\"modified\",tiddler)\n<$wikify name=\"a\" text='<<now MM>>'><$wikify name=\"b\" text='<$macrocall $name=\"monthValue\" field=$date-field$ tiddler=\"\"\"$tiddler$\"\"\"/>'><$macrocall $name=\"rpn\" a=<<a>> b=<<b>> operation=\"-\"/></$wikify></$wikify>\n\\end\n\n\\define daysDiff(date-field:\"modified\",tiddler)\n<$wikify name=\"a\" text='<<now DD>>'><$wikify name=\"b\" text='<$macrocall $name=\"dayValue\" field=$date-field$ tiddler=\"\"\"$tiddler$\"\"\"/>'><$macrocall $name=\"rpn\" a=<<a>> b=<<b>> operation=\"-\"/></$wikify></$wikify>\n\\end\n\n\\define hoursDiff(date-field:\"modified\",tiddler)\n<$wikify name=\"a\" text='<<now 0hh>>'><$wikify name=\"b\" text='<$macrocall $name=\"hoursValue\" field=$date-field$ tiddler=\"\"\"$tiddler$\"\"\"/>'><$macrocall $name=\"rpn\" a=<<a>> b=<<b>> operation=\"-\"/></$wikify></$wikify>\n\\end\n\n\\define minutesDiff(date-field:\"modified\",tiddler)\n<$set name=\"update-everything-now\" value=<<now 0mm>>><$wikify name=\"a\" text=\"<<update-everything-now>>\"><$wikify name=\"b\" text='<$macrocall $name=\"minutesValue\" field=$date-field$ tiddler=\"\"\"$tiddler$\"\"\"/>'><$macrocall $name=\"rpn\" a=<<a>> b=<<b>> operation=\"-\"/></$wikify></$wikify></$set>\n\\end\n\n<!-- !! Calculations with dates\nTransform dates in TW [[Date Field Format|http://tiddlywiki.com/#Date%20Fields]]\n\nTODO: Jed Carty has better macros for similar things – build a new version based on these http://ooktech.com/jed/ExampleWikis/DateMacros/\n\nWe compare the date string in a given field with the result of the `<<now>>` macro combined with one of the selectors YYYY for years, MM for months, DD for Days, 0hh …, 0mm …, 0ss. Note the 0-prefix for values that could be zero! (They disappear and return nothing when this is missing).\n\nThis was developped for use with due dates. The macros are good enough to check if a deadline was missed or if it will be reached soon.\n\n* time since the given timestamp\n** yearsSince(date-field:\"modified\",tiddler) – tiddler defaults to current\n** monthsSince (counts also the year difference)\n** daysSince – does NOT take the month into account\n*** this would be complicated because of differing number of days in each month\n** hoursSince (counts also the days)\n*** this can result in errors when the days are in different monts\n*** we recommend to filter for days in the same month first\n** minutesSince (counts also the hours and days)\n** hoursMinutesSince – turn minutes from minutesSince back into hours and minutes \n* time to the given datestamp … – time since inverted (* -1)\n** minutesTo\n** hoursTo\n** missing: daysTo, monthsTo, yearsTo\n* Diff macros\n** yearsDiff(date-field:\"modified\",tiddler)\n** … and so on for months, days, hours, minutes\n\n\nSyntax: `<<yearsSince created>>`\n\nResult: <<yearsSince created>>\n\n-->\n",
            "title": "$:/plugins/telmiger/lib/dates",
            "tags": "[[ToDo Addons]] $:/tags/Macro",
            "modifier": "Thomas Elmiger",
            "modified": "20170714220748829"
        },
        "$:/plugins/telmiger/lib/dates-then": {
            "created": "20170705203414697",
            "creator": "Thomas Elmiger",
            "text": "\\define yearValue(field,tiddler) <<dateValue YYYY $field$ $tiddler$>>\n\\define monthValue(field,tiddler) <<dateValue MM $field$ $tiddler$>>\n\\define dayValue(field,tiddler) <<dateValue DD $field$ $tiddler$>>\n\\define hoursValue(field,tiddler) <<dateValue 0hh $field$ $tiddler$>>\n\\define minutesValue(field,tiddler) <<dateValue 0mm $field$ $tiddler$>>\n\\define secondsValue(field,tiddler) <<dateValue 0ss $field$ $tiddler$>>\n\n\\define dateValue(template:\"YYYY-0MM-0DD\",field:\"modified\",tiddler) \n<$set name=\"tid\" filter=\"[field:title[$tiddler$]]\" value=\"\"\"$tiddler$\"\"\" emptyValue=<<currentTiddler>>><$view tiddler=<<tid>> field=\"\"\"$field$\"\"\" format=\"date\" template=\"\"\"$template$\"\"\"/></$set>\n\\end\n\n\n<!-- !! Macros for Dates from fields\nOutput dates from fields in TW [[Date Field Format|http://tiddlywiki.com/#Date%20Fields]]\n\n* dateValue(template:\"YYYY-0MM-0DD\",field:\"modified\",tiddler) – return a value from a date string via  the view widget\n** field: where the date string is stored\n** tiddler: where the date string is stored, defaults to currentTiddler\n* yearValue(field,tiddler) – return the year\n** monthValue, dayValue, hoursValue, minutesValue, secondsValue – guess what ;–)\n\n-->\n\nSyntax: `<<hoursValue example-1>>`\n\nResult: <<hoursValue example-1>>\n\n",
            "title": "$:/plugins/telmiger/lib/dates-then",
            "tags": "[[ToDo Addons]] $:/tags/Macro",
            "modifier": "Thomas Elmiger",
            "modified": "20170714220234254",
            "example-1": "20001231230000000"
        }
    }
}
<!-- allowed values for sort-list: priority/deadline/title -->
sort-list: deadline
<!-- allowed values for sort-report: priority/modified -->
sort-report: priority
<!-- comments: Kommentare -->
<!-- usage: <$reveal type="match" state="$:/plugins/telmiger/todonow/settings##sort-list" text="priority"> -->
show-list-deadline: bottom
{
    "tiddlers": {
        "$:/plugins/tgrosinger/tw5-checklist/checkbox-wikirule.js": {
            "text": "/*\\\ntitle: $:/plugins/tgrosinger/tw5-checklist/checkbox-wikirule.js\ntype: application/javascript\nmodule-type: wikirule\n\\*/\n\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"checkbox\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\n\t// Match on [ ], [x], and [X], to the end of the line\n\tthis.matchRegExp = /^\\[([ xX])\\] .*$/mg;\n};\n\n/*\nRetrieve the configuration state of the clear all button\n*/\n\nexports.shouldShowClearAll = function() {\n    var configWidgetTitle = \"$:/plugins/tgrosinger/tw5-checklist/Configuration\";\n    var configWidgetFields = $tw.wiki.getTiddler(configWidgetTitle).fields;\n\n    var showClearAll = configWidgetFields[\"show-clearall\"] || \"true\";\n    return (showClearAll === \"true\");\n}\n\n/*\nCreate list items\n*/\n\nexports.parse = function() {\n    var listItems = [];\n    var listStartPos = this.parser.pos;\n    var match = this.match;\n\n    // Start the list with a \"New List Item\" placeholder\n    listItems.push({\n        type: \"element\",\n        tag: \"li\",\n        children: [\n            {\n                type: \"element\",\n                tag: \"span\",\n                attributes: {\n                    class: {type: \"string\", value: \"checklist-newitem-icon\"},\n                    for: {type: \"string\", value: \"checklist-new\"}\n                }\n            },\n            {\n                type: \"element\",\n                tag: \"input\",\n                attributes: {\n                    class: {type: \"string\", value: \"checklist-newitem\"},\n                    id: {type: \"string\", value: \"checklist-new\"},\n                    placeholder: {type: \"string\", value: \"New list item (WikiText)\"}\n                    // impossible? add an aria-label \"Write a new todo item\"\n                    // attribute aria-label seems to be missing in $:/core/modules/widgets/edit.js \n                }\n            },\n            // label for the input field\n            {\n                type: \"element\",\n                tag: \"label\",\n                attributes: {\n                    class: {type: \"string\", value: \"checklist-vh\"},\n                    for: {type: \"string\", value: \"checklist-new\"}\n                },\n                children: [\n                    {type: \"text\", text: \"Write a new item for the list.\"}\n                ]\n            },\n            // (pseudo) button to add the new item to the list\n            {\n                type: \"element\",\n                tag: \"button\",\n                attributes: {\n                    class: {type: \"string\", value: \"tc-btn-invisible tc-btn-mini checklist-add\"},\n                    title: {type: \"string\", value: \"add to list\"}\n                },\n                children: [\n                    {\n                        type: \"element\",\n                        tag: \"span\",\n                        attributes: {\n                            class: {type: \"string\", value: \"checklist-vh\"}\n                        },\n                        children: [\n                            {type: \"text\", text: \"add list item\"}\n                        ]\n                    }\n                ]\n            }\n            // end of button\n        ]\n    });\n\n    // Create items in a loop\n    do {\n        var startPos = this.parser.pos;\n        this.parser.pos = this.matchRegExp.lastIndex;\n        var parseResults = this.parser.wiki.parseText(\n                \"text/vnd.tiddlywiki\",\n                this.parser.source.substring(startPos + 4, this.parser.pos),\n                {parseAsInline: true});\n\n        // Use the listitem body as a label for the checkbox to get better accessibility\n        var itembody = {\n            type: \"element\",\n            tag: \"label\",\n            attributes: {\n                for: {type: \"string\", value: match.index}\n            },\n            children: parseResults.tree\n        };\n\n        var checkbox = {\n            type: \"element\",\n            tag: \"input\",\n            attributes: {\n                type: {type: \"string\", value: \"checkbox\"},\n                pos: {type: \"string\", value: match.index},\n                id: {type: \"string\", value: match.index}\n            }\n        };\n        if (match[1] === \"x\" || match[1] === \"X\") {\n            checkbox.attributes.checked = {type: \"boolean\", value: true};\n        }\n\n        // Make a button to delete the item\n        var removelabel = {\n            type: \"element\",\n            tag: \"span\",\n            attributes: {\n                class: {type: \"string\", value: \"checklist-vh\"}\n            },\n            children: [\n                {type: \"text\", text: \"delete list item\"}\n            ]\n        };\n\n        var removebutton = {\n            type: \"element\",\n            tag: \"button\",\n            attributes: {\n                class: {type: \"string\", value: \"tc-btn-invisible tc-btn-mini checklist-remove\"},\n                title: {type: \"string\", value: \"delete\"}\n            },\n            children: [\n                removelabel\n            ]\n        };\n\n        // add the item to the list\n        listItems.push({\n            type: \"element\",\n            tag: \"li\",\n            children: [\n                checkbox,\n                removebutton,\n                itembody\n            ]\n        });\n\n        match = this.matchRegExp.exec(this.parser.source);\n    } while (match != null && match.index == 1 + this.parser.pos);\n\n    if (this.shouldShowClearAll()) {\n        // show the clear-all button\n        var clearallbutton = {\n            type: \"element\",\n            tag: \"button\",\n            attributes: {\n                class: {type: \"string\", value: \"checklist-clearall\"}\n            },\n            children: [\n                {\n                    type: \"element\",\n                    tag: \"span\",\n                    attributes: {\n                        class: {type: \"string\", value: \"checklist-clearall-label\"}\n                    },\n                    children: [\n                        {type: \"text\", text: \"Clear all\"}\n                    ]\n                }\n            ]\n        };\n\n        listItems.push({\n            type: \"element\",\n            tag: \"li\",\n            children: [\n                clearallbutton\n            ]\n        });\n    }\n\n    return [{\n        type: \"checklist\",\n        attributes: {\n            listStartPos: {type: \"string\", value: listStartPos},\n            listStopPos:  {type: \"string\", value: this.parser.pos}\n        },\n        children: listItems\n    }];\n};\n\n})();\n",
            "title": "$:/plugins/tgrosinger/tw5-checklist/checkbox-wikirule.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/plugins/tgrosinger/tw5-checklist/checklist.js": {
            "text": "/*\\\ntitle: $:/plugins/tgrosinger/tw5-checklist/checklist.js\ntype: application/javascript\nmodule-type: widget\n\\*/\n\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CheckListWidget = function(parseTreeNode,options) {\n    this.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCheckListWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCheckListWidget.prototype.render = function(parent,nextSibling) {\n    this.tiddlerTitle = this.getVariable(\"currentTiddler\");\n    this.startPos = parseInt(this.parseTreeNode.attributes.listStartPos.value);\n    this.stopPos = parseInt(this.parseTreeNode.attributes.listStopPos.value);\n\n    this.parentDomNode = parent;\n    this.nextSibling = nextSibling;\n    this.computeAttributes();\n    this.execute();\n};\n\n/*\nRetrieve the configuration state indicating if items should be re-arranged\n*/\nCheckListWidget.prototype.shouldMoveChecked = function() {\n    var configWidgetTitle = \"$:/plugins/tgrosinger/tw5-checklist/Configuration\";\n    var configWidgetFields = $tw.wiki.getTiddler(configWidgetTitle).fields;\n\n    var moveChecked = configWidgetFields[\"move-checked\"] || \"true\";\n    return (moveChecked === \"true\");\n}\n\n/*\nCompute the internal state of the widget\n*/\nCheckListWidget.prototype.execute = function() {\n    var domNode = this.document.createElement(\"ul\");\n    domNode.className = \"checklist\";\n\n    this.makeChildWidgets();\n    this.renderChildren(domNode);\n\n    /* add event listeners */\n    $tw.utils.each(domNode.childNodes, function(childNode) {\n        if (childNode.childNodes[0].className === \"checklist-clearall\") {\n            // ClearAllChecks, do not use checkbox listener\n            $tw.utils.addEventListeners(childNode.childNodes[0],\n                    [{name: \"click\", handlerObject: this,\n                        handlerMethod: \"handleClearChecksEvent\"}]);\n        } else if (childNode.childNodes[1].className === \"checklist-newitem\") {\n            // NewListItem, do not use checkbox listener\n            $tw.utils.addEventListeners(childNode.childNodes[1], [\n                    {name: \"blur\", handlerObject: this, handlerMethod: \"handleBlurNewItemEvent\"},\n                    {name: \"keyup\", handlerObject: this, handlerMethod: \"handleBlurNewItemEvent\"}\n            ]);\n    // If this is a normal checklist item …\n        } else {\n            if (childNode.childNodes[0].checked) {\n                $tw.utils.addEventListeners(childNode,\n                        [{name: \"change\", handlerObject: this, handlerMethod: \"handleUncheckEvent\"}]);\n            } else {\n                $tw.utils.addEventListeners(childNode,\n                        [{name: \"change\", handlerObject: this, handlerMethod: \"handleCheckEvent\"}]);\n            }\n            $tw.utils.addEventListeners(childNode.childNodes[1], [\n                {name: \"click\", handlerObject: this, handlerMethod: \"handleRemoveEvent\"}\n            ]);\n        }\n    }.bind(this));\n\n    this.parentDomNode.insertBefore(domNode, this.nextSibling);\n};\n\n// When the user clicks the clear-all button, remove all checks\nCheckListWidget.prototype.handleClearChecksEvent = function(event) {\n    var domItem = event.target.parentNode;\n    var domList = domItem.parentNode;\n\n    var tiddlerBody = $tw.wiki.getTiddler(this.tiddlerTitle).fields.text;\n    var bodyList = tiddlerBody.substring(this.startPos, this.stopPos).split(\"\\n\");\n    var bodyLen = bodyList.length;\n\n    for (var i = 0; i < bodyLen; i++) {\n        bodyList[i] = bodyList[i].replace(\"[x]\", \"[ ]\");\n        bodyList[i] = bodyList[i].replace(\"[X]\", \"[ ]\");\n    }\n\n    // Save the updated body\n    var newBody = tiddlerBody.substring(0, this.startPos) +\n                  bodyList.join(\"\\n\") +\n                  tiddlerBody.substring(this.stopPos);\n    $tw.wiki.setText(this.tiddlerTitle, \"text\", null, newBody);\n};\n\n// On blur or enter, save the new list item\nCheckListWidget.prototype.handleBlurNewItemEvent = function(event) {\n    if (event.type == \"keyup\" && event.keyCode != 13) {\n        // This function receives both blur and keyup events.\n        // Only run on blur or enter key\n        return;\n    }\n\n    if (event.target.value.trim() === \"\") {\n        // Don't save an empty list item\n        return;\n    }\n\n    var checklist = event.target.parentNode.parentNode;\n    var firstItem = checklist.childNodes[1];\n    var pos = firstItem.childNodes[0].attributes.pos.nodeValue;\n\n    var newItem = \"[ ] \" + event.target.value.trim() + \"\\n\";\n    event.target.value = \"\";\n\n    var tiddlerBody = $tw.wiki.getTiddler(this.tiddlerTitle).fields.text;\n    tiddlerBody = tiddlerBody.substring(0, pos) + newItem + tiddlerBody.substring(pos);\n    $tw.wiki.setText(this.tiddlerTitle, \"text\", null, tiddlerBody);\n};\n\nCheckListWidget.prototype.handleCheckEvent = function(event) {\n    var domItem = event.target.parentNode;\n    var domList = domItem.parentNode;\n    var itemIndex = [].indexOf.call(domList.childNodes, domItem) - 1;\n\n    var tiddlerBody = $tw.wiki.getTiddler(this.tiddlerTitle).fields.text;\n    var bodyList = tiddlerBody.substring(this.startPos, this.stopPos).split(\"\\n\");\n\n    // Find the index of the first checked item\n    var i = 1;\n    var firstChecked = domItem.nextSibling;\n    while (firstChecked !== null && !firstChecked.childNodes[0].checked) {\n        i++;\n        firstChecked = firstChecked.nextSibling;\n    }\n\n    // Update the tiddler data\n    bodyList[itemIndex] = bodyList[itemIndex].replace(\"[ ]\", \"[x]\");\n\n    // Rearrange items (if configured to do so)\n    var shouldMove = this.shouldMoveChecked();\n    if (shouldMove) {\n        bodyList.splice(itemIndex + i, 0, bodyList[itemIndex]);\n        bodyList.splice(itemIndex, 1);\n    }\n\n    // Save the updated body\n    var newBody = tiddlerBody.substring(0, this.startPos) +\n                  bodyList.join(\"\\n\") +\n                  tiddlerBody.substring(this.stopPos);\n    $tw.wiki.setText(this.tiddlerTitle, \"text\", null, newBody);\n\n    if (shouldMove) {\n        // Update the DOM (pre-refresh for animations)\n        domList.insertBefore(domItem, firstChecked);\n    }\n};\n\nCheckListWidget.prototype.handleUncheckEvent = function(event) {\n    var domItem = event.target.parentNode;\n    var domList = domItem.parentNode;\n    var itemIndex = [].indexOf.call(domList.childNodes, domItem) - 1;\n\n    var tiddlerBody = $tw.wiki.getTiddler(this.tiddlerTitle).fields.text;\n    var bodyList = tiddlerBody.substring(this.startPos, this.stopPos).split(\"\\n\");\n\n    // Find the index of the first checked item\n    var i = 0;\n    var firstChecked = domList.firstChild.nextSibling; // Skip the newItem input\n    while (firstChecked !== null) {\n        if (firstChecked.childNodes[0].checked || firstChecked == domItem) {\n            break;\n        }\n        i++;\n        firstChecked = firstChecked.nextSibling;\n    }\n\n    // Update the tiddler data\n    bodyList[itemIndex] = bodyList[itemIndex].replace(\"[x]\", \"[ ]\");\n\n    // Rearrange items (if configured to do so)\n    var shouldMove = this.shouldMoveChecked();\n    if (shouldMove) {\n        var bodyItem = bodyList[itemIndex];\n        bodyList.splice(itemIndex, 1);\n        bodyList.splice(i, 0, bodyItem);\n    }\n\n    var newBody = tiddlerBody.substring(0, this.startPos) +\n                  bodyList.join(\"\\n\") +\n                  tiddlerBody.substring(this.stopPos);\n    $tw.wiki.setText(this.tiddlerTitle, \"text\", null, newBody);\n\n    if (shouldMove) {\n        // Update the DOM (pre-refresh for animations)\n        domList.insertBefore(domItem, firstChecked);\n    }\n};\n\nCheckListWidget.prototype.handleRemoveEvent = function (event) {\n    var domItem = event.target.parentNode;\n    var domList = domItem.parentNode;\n    var itemIndex = [].indexOf.call(domList.childNodes, domItem) - 1;\n\n    var tiddlerBody = $tw.wiki.getTiddler(this.tiddlerTitle).fields.text;\n    var bodyList = tiddlerBody.substring(this.startPos, this.stopPos).split(\"\\n\");\n\n    // Update the tiddler data\n    bodyList.splice(itemIndex, 1);\n    var newBody = tiddlerBody.substring(0, this.startPos) +\n                  bodyList.join(\"\\n\") +\n                  tiddlerBody.substring(this.stopPos);\n    $tw.wiki.setText(this.tiddlerTitle, \"text\", null, newBody);\n};\n\n/*\nSelectively refreshes the widget if needed.\nReturns true if the widget or any of its children needed re-rendering\n*/\nCheckListWidget.prototype.refresh = function(changedTiddlers) {\n    var changedAttributes = this.computeAttributes();\n    // Refresh if an attribute has changed, or the type associated with\n    // the target tiddler has changed\n    if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index ||\n            (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {\n        this.refreshSelf();\n        return true;\n    } else {\n        return this.refreshChildren(changedTiddlers);\n    }\n};\n\nexports.checklist = CheckListWidget;\n\n})();\n",
            "title": "$:/plugins/tgrosinger/tw5-checklist/checklist.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/plugins/tgrosinger/tw5-checklist/Configuration": {
            "title": "$:/plugins/tgrosinger/tw5-checklist/Configuration",
            "move-checked": "true",
            "strike-checked": "true",
            "show-clearall": "true",
            "text": "Please see the [[homepage|https://grosinger.net/tw5-checklist/]] for more information on the options.\n\nSave and reload the wiki to activate changes.\n\n<table>\n  <tr>\n    <th align=\"left\">Rearrange checked items:</th>\n    <td>\n        <$checkbox field=\"move-checked\" tiddler=\"$:/plugins/tgrosinger/tw5-checklist/Configuration\"\n            checked=\"true\" unchecked=\"false\" default=\"true\"></$checkbox>\n    </td>\n  </tr>\n  <tr>\n    <th align=\"left\" class=\"rerendering-required\">Strike checked items: </th>\n    <td>\n        <$checkbox field=\"strike-checked\" tiddler=\"$:/plugins/tgrosinger/tw5-checklist/Configuration\"\n            checked=\"true\" unchecked=\"false\" default=\"true\"></$checkbox>\n    </td>\n  </tr>\n  <tr>\n    <th align=\"left\" class=\"rerendering-required\">Show Clear-All: </th>\n    <td>\n        <$checkbox field=\"show-clearall\" tiddler=\"$:/plugins/tgrosinger/tw5-checklist/Configuration\"\n            checked=\"true\" unchecked=\"false\" default=\"true\"></$checkbox>\n    </td>\n  </tr>\n</table>\n\n&#42; make a change in a list to see the effect (check/uncheck or add/delete an item).\n\n<style>\n.rerendering-required:after {\n    content: ' *';\n    color: #e32;\n}\n</style>\n"
        },
        "$:/plugins/tgrosinger/tw5-checklist/license": {
            "title": "$:/plugins/tgrosinger/tw5-checklist/license",
            "text": "The MIT License (MIT)\n\nCopyright (c) 2015 Tony Grosinger\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n"
        },
        "$:/plugins/tgrosinger/tw5-checklist/readme": {
            "title": "$:/plugins/tgrosinger/tw5-checklist/readme",
            "text": "This plugin provides a simple checklist which does not create a new tiddler for\neach task. Features include:\n\n[x] Check and uncheck items\n[x] Simple, no configuration necessary\n[x] Easily editable, and easy to read in edit view\n[x] Add new list items without using edit mode\n[x] Move completed items to bottom of list\n\n[[Source code|https://github.com/tgrosinger/tw5-checklist]]\n"
        },
        "$:/plugins/tgrosinger/tw5-checklist/stylesheet": {
            "title": "$:/plugins/tgrosinger/tw5-checklist/stylesheet",
            "tags": "$:/tags/Stylesheet",
            "text": "ul.checklist {\n    list-style: none;\n    margin: 0;\n    padding: 0;\n}\n\nul.checklist > li {\n    position: relative;\n    width: calc(100% - 1em);\n}\n\n\n/* input form */\n\n.checklist-newitem-icon::before {\n    content: \"&#x270e;\";\n}\n\ninput.checklist-newitem {\n    margin-left: 1em;\n    margin-bottom: 0.75em;\n    padding: 2px;\n    border: none;\n    border-bottom: solid 2px <<colour sidebar-tab-background>>;\n    transition: border 0.3s;\n    width: calc(100% - 2em - 20px);\n}\n\ninput:focus.checklist-newitem {\n    border-bottom: solid 2px <<colour notification-border>>;\n}\n\n\n/* placeholder text */\n\n::-webkit-input-placeholder { \n  color: #444;\n  font-style: italic;\n}\n::-moz-placeholder { \n  color: #444;\n  font-style: italic;\n}\n:-ms-input-placeholder { \n  color: #444;\n  font-style: italic;\n}\n:-moz-placeholder { \n  color: #444;\n  font-style: italic;\n}\n::placeholder {\n  color: #444;\n  font-style: italic;\n}\n\n\n/* list items content */\n\n.checklist li input[type=\"checkbox\"] {\n    vertical-align: top;\n    margin-top: 4px;\n}\n\n.checklist label {\n    display: inline-block;\n    position: relative;\n    margin-left: -1em;\n    padding-left: 0.4em;\n    left: 1.4em;\n    width: calc(100% - 2em - 20px);\n}\n\n.checklist > li:hover label, \n.checklist input[type=\"checkbox\"]:hover + button + label, \n.checklist input[type=\"checkbox\"]:focus + button + label  {\n    background-color: <<colour sidebar-tab-background>>;\n}\n\ninput:checked + .checklist-remove + label {\n    opacity: 0.5;\n}\n\n.checklist li input + .checklist-remove:hover + label,\n.checklist li input + .checklist-remove:focus + label  {\n    background-color:  rgba(255,0,0,0.25);\n    opacity: 0.8;\n    border-radius: 5px;\n}\n\n/* strike checked items only if set in user configuration */\n<$list filter=\"[[$:/plugins/tgrosinger/tw5-checklist/Configuration]field:strike-checked[true]]\">\ninput:checked + .checklist-remove + label {\n    text-decoration: line-through;\n}\n</$list>\n\n\n/* buttons */\n\nbutton.checklist-add {\n    position: relative;\n    left: 0.75em;\n    width: 18px;\n    height: 18px;\n    border-radius: 5px;\nbackground-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2211%22%20height%3D%2211%22%3E%0A%3Crect%20width%3D%221%22%20height%3D%227%22%20x%3D%225%22%20y%3D%222%22%20fill%3D%22%239B9B9B%22%2F%3E%0A%3Crect%20width%3D%227%22%20height%3D%221%22%20x%3D%222%22%20y%3D%225%22%20fill%3D%22%239B9B9B%22%2F%3E%0A%3C%2Fsvg%3E');\n    background-size: 100%;\n}\n\nbutton.checklist-add:hover, button.checklist-add:focus {\n    background-color: <<colour sidebar-tab-background>>;\n}\n\nbutton.checklist-remove {\n    display: block;\n    position: absolute;\n    top: 2px;\n    right: -6px;\n    width: 18px;\n    height: 18px;\n    border-radius: 5px;\n    color: <<colour sidebar-muted-foreground>>;\nbackground-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2211%22%20height%3D%2211%22%3E%0A%3Crect%20width%3D%225%22%20height%3D%221%22%20x%3D%223%22%20y%3D%225%22%20fill%3D%22%23444%22%2F%3E%0A%3C%2Fsvg%3E');\n    background-size: 100%;\n/*    background-color: <<colour sidebar-tab-background-selected>>; */\n    border: 1px solid <<colour sidebar-tab-background>>;\n}\n\nul.checklist > li:hover button.checklist-remove {\n    color: <<colour sidebar-muted-foreground-hover>>;\n}\n\nbutton.checklist-remove:hover,\nbutton.checklist-remove:focus {\n    color:  <<colour dirty-indicator>>;\n    background-color: <<colour sidebar-tab-background>>;\n}\n\nbutton.checklist-clearall {\n    margin-top: 0.75em;\n}\n\nbutton.checklist-clearall::before {\n    content: \"↻ \";\n}\n\n\n/* visualliy hidden, accessible for screen reader */\n\n.checklist-vh {\n    position: absolute !important;\n    clip: rect(1px, 1px, 1px, 1px);\n    padding:0 !important;\n    border:0 !important;\n    height: 1px !important;\n    width: 1px !important;\n    overflow: hidden;\n}\n"
        },
        "$:/plugins/tgrosinger/tw5-checklist/Usage": {
            "title": "$:/plugins/tgrosinger/tw5-checklist/Usage",
            "text": "! Creating a New Checklist\n\nThis plugin provides a wikitext rule for use in normal wikitext tiddlers. A\nchecklist is defined as two brackets with either a <kbd>space</kbd> or an\n<kbd>x</kbd> between them.\n\n```\n! My Shopping List\n\n[ ] Milk\n[ ] Eggs\n[x] Bread\n\n```\n\n!! Multiple Checklists\n\nThere is no need to declare an instance of a checklist, and you can place\nchecklist items throughout a tiddler. Each set of consecutive (single new-line\ndelimited) checklist items will be displayed as a single checklist.\n\n```\n! My first list\n\n[ ] Item 1\n[x] Item 2\n\n! My second list\n\n[x] Item 3\n[x] Item 4\n\n```\n\n!! List Item Formatting\n\nList items support any inline formatting rules. This means you can create links,\nbold, or anything else found on the\n[[Formatting in WikiText|http://tiddlywiki.com/static/Formatting%2520in%2520WikiText.html]] guide.\n\n! Configuration\n\nPlease see [[the configuration|$:/plugins/tgrosinger/tw5-checklist/Configuration]]\npage to learn about and adjust configuration options.\n"
        }
    }
}
{
    "tiddlers": {
        "$:/config/HighlightPlugin/TypeMappings/application/javascript": {
            "title": "$:/config/HighlightPlugin/TypeMappings/application/javascript",
            "text": "javascript"
        },
        "$:/config/HighlightPlugin/TypeMappings/application/json": {
            "title": "$:/config/HighlightPlugin/TypeMappings/application/json",
            "text": "json"
        },
        "$:/config/HighlightPlugin/TypeMappings/text/css": {
            "title": "$:/config/HighlightPlugin/TypeMappings/text/css",
            "text": "css"
        },
        "$:/config/HighlightPlugin/TypeMappings/text/html": {
            "title": "$:/config/HighlightPlugin/TypeMappings/text/html",
            "text": "html"
        },
        "$:/config/HighlightPlugin/TypeMappings/image/svg+xml": {
            "title": "$:/config/HighlightPlugin/TypeMappings/image/svg+xml",
            "text": "xml"
        },
        "$:/config/HighlightPlugin/TypeMappings/text/x-markdown": {
            "title": "$:/config/HighlightPlugin/TypeMappings/text/x-markdown",
            "text": "markdown"
        },
        "$:/plugins/tiddlywiki/highlight/highlight.js": {
            "text": "var hljs = require(\"$:/plugins/tiddlywiki/highlight/highlight.js\");\n!function(e){\"undefined\"!=typeof exports?e(exports):(window.hljs=e({}),\"function\"==typeof define&&define.amd&&define(\"hljs\",[],function(){return window.hljs}))}(function(e){function n(e){return e.replace(/&/gm,\"&amp;\").replace(/</gm,\"&lt;\").replace(/>/gm,\"&gt;\")}function t(e){return e.nodeName.toLowerCase()}function r(e,n){var t=e&&e.exec(n);return t&&0==t.index}function a(e){return/^(no-?highlight|plain|text)$/i.test(e)}function i(e){var n,t,r,i=e.className+\" \";if(i+=e.parentNode?e.parentNode.className:\"\",t=/\\blang(?:uage)?-([\\w-]+)\\b/i.exec(i))return w(t[1])?t[1]:\"no-highlight\";for(i=i.split(/\\s+/),n=0,r=i.length;r>n;n++)if(w(i[n])||a(i[n]))return i[n]}function o(e,n){var t,r={};for(t in e)r[t]=e[t];if(n)for(t in n)r[t]=n[t];return r}function u(e){var n=[];return function r(e,a){for(var i=e.firstChild;i;i=i.nextSibling)3==i.nodeType?a+=i.nodeValue.length:1==i.nodeType&&(n.push({event:\"start\",offset:a,node:i}),a=r(i,a),t(i).match(/br|hr|img|input/)||n.push({event:\"stop\",offset:a,node:i}));return a}(e,0),n}function c(e,r,a){function i(){return e.length&&r.length?e[0].offset!=r[0].offset?e[0].offset<r[0].offset?e:r:\"start\"==r[0].event?e:r:e.length?e:r}function o(e){function r(e){return\" \"+e.nodeName+'=\"'+n(e.value)+'\"'}f+=\"<\"+t(e)+Array.prototype.map.call(e.attributes,r).join(\"\")+\">\"}function u(e){f+=\"</\"+t(e)+\">\"}function c(e){(\"start\"==e.event?o:u)(e.node)}for(var s=0,f=\"\",l=[];e.length||r.length;){var g=i();if(f+=n(a.substr(s,g[0].offset-s)),s=g[0].offset,g==e){l.reverse().forEach(u);do c(g.splice(0,1)[0]),g=i();while(g==e&&g.length&&g[0].offset==s);l.reverse().forEach(o)}else\"start\"==g[0].event?l.push(g[0].node):l.pop(),c(g.splice(0,1)[0])}return f+n(a.substr(s))}function s(e){function n(e){return e&&e.source||e}function t(t,r){return new RegExp(n(t),\"m\"+(e.cI?\"i\":\"\")+(r?\"g\":\"\"))}function r(a,i){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var u={},c=function(n,t){e.cI&&(t=t.toLowerCase()),t.split(\" \").forEach(function(e){var t=e.split(\"|\");u[t[0]]=[n,t[1]?Number(t[1]):1]})};\"string\"==typeof a.k?c(\"keyword\",a.k):Object.keys(a.k).forEach(function(e){c(e,a.k[e])}),a.k=u}a.lR=t(a.l||/\\b\\w+\\b/,!0),i&&(a.bK&&(a.b=\"\\\\b(\"+a.bK.split(\" \").join(\"|\")+\")\\\\b\"),a.b||(a.b=/\\B|\\b/),a.bR=t(a.b),a.e||a.eW||(a.e=/\\B|\\b/),a.e&&(a.eR=t(a.e)),a.tE=n(a.e)||\"\",a.eW&&i.tE&&(a.tE+=(a.e?\"|\":\"\")+i.tE)),a.i&&(a.iR=t(a.i)),void 0===a.r&&(a.r=1),a.c||(a.c=[]);var s=[];a.c.forEach(function(e){e.v?e.v.forEach(function(n){s.push(o(e,n))}):s.push(\"self\"==e?a:e)}),a.c=s,a.c.forEach(function(e){r(e,a)}),a.starts&&r(a.starts,i);var f=a.c.map(function(e){return e.bK?\"\\\\.?(\"+e.b+\")\\\\.?\":e.b}).concat([a.tE,a.i]).map(n).filter(Boolean);a.t=f.length?t(f.join(\"|\"),!0):{exec:function(){return null}}}}r(e)}function f(e,t,a,i){function o(e,n){for(var t=0;t<n.c.length;t++)if(r(n.c[t].bR,e))return n.c[t]}function u(e,n){if(r(e.eR,n)){for(;e.endsParent&&e.parent;)e=e.parent;return e}return e.eW?u(e.parent,n):void 0}function c(e,n){return!a&&r(n.iR,e)}function g(e,n){var t=N.cI?n[0].toLowerCase():n[0];return e.k.hasOwnProperty(t)&&e.k[t]}function h(e,n,t,r){var a=r?\"\":E.classPrefix,i='<span class=\"'+a,o=t?\"\":\"</span>\";return i+=e+'\">',i+n+o}function p(){if(!L.k)return n(y);var e=\"\",t=0;L.lR.lastIndex=0;for(var r=L.lR.exec(y);r;){e+=n(y.substr(t,r.index-t));var a=g(L,r);a?(B+=a[1],e+=h(a[0],n(r[0]))):e+=n(r[0]),t=L.lR.lastIndex,r=L.lR.exec(y)}return e+n(y.substr(t))}function d(){var e=\"string\"==typeof L.sL;if(e&&!x[L.sL])return n(y);var t=e?f(L.sL,y,!0,M[L.sL]):l(y,L.sL.length?L.sL:void 0);return L.r>0&&(B+=t.r),e&&(M[L.sL]=t.top),h(t.language,t.value,!1,!0)}function b(){return void 0!==L.sL?d():p()}function v(e,t){var r=e.cN?h(e.cN,\"\",!0):\"\";e.rB?(k+=r,y=\"\"):e.eB?(k+=n(t)+r,y=\"\"):(k+=r,y=t),L=Object.create(e,{parent:{value:L}})}function m(e,t){if(y+=e,void 0===t)return k+=b(),0;var r=o(t,L);if(r)return k+=b(),v(r,t),r.rB?0:t.length;var a=u(L,t);if(a){var i=L;i.rE||i.eE||(y+=t),k+=b();do L.cN&&(k+=\"</span>\"),B+=L.r,L=L.parent;while(L!=a.parent);return i.eE&&(k+=n(t)),y=\"\",a.starts&&v(a.starts,\"\"),i.rE?0:t.length}if(c(t,L))throw new Error('Illegal lexeme \"'+t+'\" for mode \"'+(L.cN||\"<unnamed>\")+'\"');return y+=t,t.length||1}var N=w(e);if(!N)throw new Error('Unknown language: \"'+e+'\"');s(N);var R,L=i||N,M={},k=\"\";for(R=L;R!=N;R=R.parent)R.cN&&(k=h(R.cN,\"\",!0)+k);var y=\"\",B=0;try{for(var C,j,I=0;;){if(L.t.lastIndex=I,C=L.t.exec(t),!C)break;j=m(t.substr(I,C.index-I),C[0]),I=C.index+j}for(m(t.substr(I)),R=L;R.parent;R=R.parent)R.cN&&(k+=\"</span>\");return{r:B,value:k,language:e,top:L}}catch(O){if(-1!=O.message.indexOf(\"Illegal\"))return{r:0,value:n(t)};throw O}}function l(e,t){t=t||E.languages||Object.keys(x);var r={r:0,value:n(e)},a=r;return t.forEach(function(n){if(w(n)){var t=f(n,e,!1);t.language=n,t.r>a.r&&(a=t),t.r>r.r&&(a=r,r=t)}}),a.language&&(r.second_best=a),r}function g(e){return E.tabReplace&&(e=e.replace(/^((<[^>]+>|\\t)+)/gm,function(e,n){return n.replace(/\\t/g,E.tabReplace)})),E.useBR&&(e=e.replace(/\\n/g,\"<br>\")),e}function h(e,n,t){var r=n?R[n]:t,a=[e.trim()];return e.match(/\\bhljs\\b/)||a.push(\"hljs\"),-1===e.indexOf(r)&&a.push(r),a.join(\" \").trim()}function p(e){var n=i(e);if(!a(n)){var t;E.useBR?(t=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"div\"),t.innerHTML=e.innerHTML.replace(/\\n/g,\"\").replace(/<br[ \\/]*>/g,\"\\n\")):t=e;var r=t.textContent,o=n?f(n,r,!0):l(r),s=u(t);if(s.length){var p=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"div\");p.innerHTML=o.value,o.value=c(s,u(p),r)}o.value=g(o.value),e.innerHTML=o.value,e.className=h(e.className,n,o.language),e.result={language:o.language,re:o.r},o.second_best&&(e.second_best={language:o.second_best.language,re:o.second_best.r})}}function d(e){E=o(E,e)}function b(){if(!b.called){b.called=!0;var e=document.querySelectorAll(\"pre code\");Array.prototype.forEach.call(e,p)}}function v(){addEventListener(\"DOMContentLoaded\",b,!1),addEventListener(\"load\",b,!1)}function m(n,t){var r=x[n]=t(e);r.aliases&&r.aliases.forEach(function(e){R[e]=n})}function N(){return Object.keys(x)}function w(e){return e=e.toLowerCase(),x[e]||x[R[e]]}var E={classPrefix:\"hljs-\",tabReplace:null,useBR:!1,languages:void 0},x={},R={};return e.highlight=f,e.highlightAuto=l,e.fixMarkup=g,e.highlightBlock=p,e.configure=d,e.initHighlighting=b,e.initHighlightingOnLoad=v,e.registerLanguage=m,e.listLanguages=N,e.getLanguage=w,e.inherit=o,e.IR=\"[a-zA-Z]\\\\w*\",e.UIR=\"[a-zA-Z_]\\\\w*\",e.NR=\"\\\\b\\\\d+(\\\\.\\\\d+)?\",e.CNR=\"(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)\",e.BNR=\"\\\\b(0b[01]+)\",e.RSR=\"!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~\",e.BE={b:\"\\\\\\\\[\\\\s\\\\S]\",r:0},e.ASM={cN:\"string\",b:\"'\",e:\"'\",i:\"\\\\n\",c:[e.BE]},e.QSM={cN:\"string\",b:'\"',e:'\"',i:\"\\\\n\",c:[e.BE]},e.PWM={b:/\\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such)\\b/},e.C=function(n,t,r){var a=e.inherit({cN:\"comment\",b:n,e:t,c:[]},r||{});return a.c.push(e.PWM),a.c.push({cN:\"doctag\",b:\"(?:TODO|FIXME|NOTE|BUG|XXX):\",r:0}),a},e.CLCM=e.C(\"//\",\"$\"),e.CBCM=e.C(\"/\\\\*\",\"\\\\*/\"),e.HCM=e.C(\"#\",\"$\"),e.NM={cN:\"number\",b:e.NR,r:0},e.CNM={cN:\"number\",b:e.CNR,r:0},e.BNM={cN:\"number\",b:e.BNR,r:0},e.CSSNM={cN:\"number\",b:e.NR+\"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?\",r:0},e.RM={cN:\"regexp\",b:/\\//,e:/\\/[gimuy]*/,i:/\\n/,c:[e.BE,{b:/\\[/,e:/\\]/,r:0,c:[e.BE]}]},e.TM={cN:\"title\",b:e.IR,r:0},e.UTM={cN:\"title\",b:e.UIR,r:0},e});hljs.registerLanguage(\"markdown\",function(e){return{aliases:[\"md\",\"mkdown\",\"mkd\"],c:[{cN:\"header\",v:[{b:\"^#{1,6}\",e:\"$\"},{b:\"^.+?\\\\n[=-]{2,}$\"}]},{b:\"<\",e:\">\",sL:\"xml\",r:0},{cN:\"bullet\",b:\"^([*+-]|(\\\\d+\\\\.))\\\\s+\"},{cN:\"strong\",b:\"[*_]{2}.+?[*_]{2}\"},{cN:\"emphasis\",v:[{b:\"\\\\*.+?\\\\*\"},{b:\"_.+?_\",r:0}]},{cN:\"blockquote\",b:\"^>\\\\s+\",e:\"$\"},{cN:\"code\",v:[{b:\"`.+?`\"},{b:\"^( {4}|\t)\",e:\"$\",r:0}]},{cN:\"horizontal_rule\",b:\"^[-\\\\*]{3,}\",e:\"$\"},{b:\"\\\\[.+?\\\\][\\\\(\\\\[].*?[\\\\)\\\\]]\",rB:!0,c:[{cN:\"link_label\",b:\"\\\\[\",e:\"\\\\]\",eB:!0,rE:!0,r:0},{cN:\"link_url\",b:\"\\\\]\\\\(\",e:\"\\\\)\",eB:!0,eE:!0},{cN:\"link_reference\",b:\"\\\\]\\\\[\",e:\"\\\\]\",eB:!0,eE:!0}],r:10},{b:\"^\\\\[.+\\\\]:\",rB:!0,c:[{cN:\"link_reference\",b:\"\\\\[\",e:\"\\\\]:\",eB:!0,eE:!0,starts:{cN:\"link_url\",e:\"$\"}}]}]}});hljs.registerLanguage(\"ruby\",function(e){var c=\"[a-zA-Z_]\\\\w*[!?=]?|[-+~]\\\\@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?\",r=\"and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor\",b={cN:\"doctag\",b:\"@[A-Za-z]+\"},a={cN:\"value\",b:\"#<\",e:\">\"},n=[e.C(\"#\",\"$\",{c:[b]}),e.C(\"^\\\\=begin\",\"^\\\\=end\",{c:[b],r:10}),e.C(\"^__END__\",\"\\\\n$\")],s={cN:\"subst\",b:\"#\\\\{\",e:\"}\",k:r},t={cN:\"string\",c:[e.BE,s],v:[{b:/'/,e:/'/},{b:/\"/,e:/\"/},{b:/`/,e:/`/},{b:\"%[qQwWx]?\\\\(\",e:\"\\\\)\"},{b:\"%[qQwWx]?\\\\[\",e:\"\\\\]\"},{b:\"%[qQwWx]?{\",e:\"}\"},{b:\"%[qQwWx]?<\",e:\">\"},{b:\"%[qQwWx]?/\",e:\"/\"},{b:\"%[qQwWx]?%\",e:\"%\"},{b:\"%[qQwWx]?-\",e:\"-\"},{b:\"%[qQwWx]?\\\\|\",e:\"\\\\|\"},{b:/\\B\\?(\\\\\\d{1,3}|\\\\x[A-Fa-f0-9]{1,2}|\\\\u[A-Fa-f0-9]{4}|\\\\?\\S)\\b/}]},i={cN:\"params\",b:\"\\\\(\",e:\"\\\\)\",k:r},d=[t,a,{cN:\"class\",bK:\"class module\",e:\"$|;\",i:/=/,c:[e.inherit(e.TM,{b:\"[A-Za-z_]\\\\w*(::\\\\w+)*(\\\\?|\\\\!)?\"}),{cN:\"inheritance\",b:\"<\\\\s*\",c:[{cN:\"parent\",b:\"(\"+e.IR+\"::)?\"+e.IR}]}].concat(n)},{cN:\"function\",bK:\"def\",e:\"$|;\",c:[e.inherit(e.TM,{b:c}),i].concat(n)},{cN:\"constant\",b:\"(::)?(\\\\b[A-Z]\\\\w*(::)?)+\",r:0},{cN:\"symbol\",b:e.UIR+\"(\\\\!|\\\\?)?:\",r:0},{cN:\"symbol\",b:\":\",c:[t,{b:c}],r:0},{cN:\"number\",b:\"(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b\",r:0},{cN:\"variable\",b:\"(\\\\$\\\\W)|((\\\\$|\\\\@\\\\@?)(\\\\w+))\"},{b:\"(\"+e.RSR+\")\\\\s*\",c:[a,{cN:\"regexp\",c:[e.BE,s],i:/\\n/,v:[{b:\"/\",e:\"/[a-z]*\"},{b:\"%r{\",e:\"}[a-z]*\"},{b:\"%r\\\\(\",e:\"\\\\)[a-z]*\"},{b:\"%r!\",e:\"![a-z]*\"},{b:\"%r\\\\[\",e:\"\\\\][a-z]*\"}]}].concat(n),r:0}].concat(n);s.c=d,i.c=d;var o=\"[>?]>\",l=\"[\\\\w#]+\\\\(\\\\w+\\\\):\\\\d+:\\\\d+>\",u=\"(\\\\w+-)?\\\\d+\\\\.\\\\d+\\\\.\\\\d(p\\\\d+)?[^>]+>\",N=[{b:/^\\s*=>/,cN:\"status\",starts:{e:\"$\",c:d}},{cN:\"prompt\",b:\"^(\"+o+\"|\"+l+\"|\"+u+\")\",starts:{e:\"$\",c:d}}];return{aliases:[\"rb\",\"gemspec\",\"podspec\",\"thor\",\"irb\"],k:r,c:n.concat(N).concat(d)}});hljs.registerLanguage(\"makefile\",function(e){var a={cN:\"variable\",b:/\\$\\(/,e:/\\)/,c:[e.BE]};return{aliases:[\"mk\",\"mak\"],c:[e.HCM,{b:/^\\w+\\s*\\W*=/,rB:!0,r:0,starts:{cN:\"constant\",e:/\\s*\\W*=/,eE:!0,starts:{e:/$/,r:0,c:[a]}}},{cN:\"title\",b:/^[\\w]+:\\s*$/},{cN:\"phony\",b:/^\\.PHONY:/,e:/$/,k:\".PHONY\",l:/[\\.\\w]+/},{b:/^\\t+/,e:/$/,r:0,c:[e.QSM,a]}]}});hljs.registerLanguage(\"json\",function(e){var t={literal:\"true false null\"},i=[e.QSM,e.CNM],l={cN:\"value\",e:\",\",eW:!0,eE:!0,c:i,k:t},c={b:\"{\",e:\"}\",c:[{cN:\"attribute\",b:'\\\\s*\"',e:'\"\\\\s*:\\\\s*',eB:!0,eE:!0,c:[e.BE],i:\"\\\\n\",starts:l}],i:\"\\\\S\"},n={b:\"\\\\[\",e:\"\\\\]\",c:[e.inherit(l,{cN:null})],i:\"\\\\S\"};return i.splice(i.length,0,c,n),{c:i,k:t,i:\"\\\\S\"}});hljs.registerLanguage(\"xml\",function(t){var s=\"[A-Za-z0-9\\\\._:-]+\",c={b:/<\\?(php)?(?!\\w)/,e:/\\?>/,sL:\"php\"},e={eW:!0,i:/</,r:0,c:[c,{cN:\"attribute\",b:s,r:0},{b:\"=\",r:0,c:[{cN:\"value\",c:[c],v:[{b:/\"/,e:/\"/},{b:/'/,e:/'/},{b:/[^\\s\\/>]+/}]}]}]};return{aliases:[\"html\",\"xhtml\",\"rss\",\"atom\",\"xsl\",\"plist\"],cI:!0,c:[{cN:\"doctype\",b:\"<!DOCTYPE\",e:\">\",r:10,c:[{b:\"\\\\[\",e:\"\\\\]\"}]},t.C(\"<!--\",\"-->\",{r:10}),{cN:\"cdata\",b:\"<\\\\!\\\\[CDATA\\\\[\",e:\"\\\\]\\\\]>\",r:10},{cN:\"tag\",b:\"<style(?=\\\\s|>|$)\",e:\">\",k:{title:\"style\"},c:[e],starts:{e:\"</style>\",rE:!0,sL:\"css\"}},{cN:\"tag\",b:\"<script(?=\\\\s|>|$)\",e:\">\",k:{title:\"script\"},c:[e],starts:{e:\"</script>\",rE:!0,sL:[\"actionscript\",\"javascript\",\"handlebars\"]}},c,{cN:\"pi\",b:/<\\?\\w+/,e:/\\?>/,r:10},{cN:\"tag\",b:\"</?\",e:\"/?>\",c:[{cN:\"title\",b:/[^ \\/><\\n\\t]+/,r:0},e]}]}});hljs.registerLanguage(\"css\",function(e){var c=\"[a-zA-Z-][a-zA-Z0-9_-]*\",a={cN:\"function\",b:c+\"\\\\(\",rB:!0,eE:!0,e:\"\\\\(\"},r={cN:\"rule\",b:/[A-Z\\_\\.\\-]+\\s*:/,rB:!0,e:\";\",eW:!0,c:[{cN:\"attribute\",b:/\\S/,e:\":\",eE:!0,starts:{cN:\"value\",eW:!0,eE:!0,c:[a,e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:\"hexcolor\",b:\"#[0-9A-Fa-f]+\"},{cN:\"important\",b:\"!important\"}]}}]};return{cI:!0,i:/[=\\/|'\\$]/,c:[e.CBCM,r,{cN:\"id\",b:/\\#[A-Za-z0-9_-]+/},{cN:\"class\",b:/\\.[A-Za-z0-9_-]+/},{cN:\"attr_selector\",b:/\\[/,e:/\\]/,i:\"$\"},{cN:\"pseudo\",b:/:(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\"']+/},{cN:\"at_rule\",b:\"@(font-face|page)\",l:\"[a-z-]+\",k:\"font-face page\"},{cN:\"at_rule\",b:\"@\",e:\"[{;]\",c:[{cN:\"keyword\",b:/\\S+/},{b:/\\s/,eW:!0,eE:!0,r:0,c:[a,e.ASM,e.QSM,e.CSSNM]}]},{cN:\"tag\",b:c,r:0},{cN:\"rules\",b:\"{\",e:\"}\",i:/\\S/,c:[e.CBCM,r]}]}});hljs.registerLanguage(\"perl\",function(e){var t=\"getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when\",r={cN:\"subst\",b:\"[$@]\\\\{\",e:\"\\\\}\",k:t},s={b:\"->{\",e:\"}\"},n={cN:\"variable\",v:[{b:/\\$\\d/},{b:/[\\$%@](\\^\\w\\b|#\\w+(::\\w+)*|{\\w+}|\\w+(::\\w*)*)/},{b:/[\\$%@][^\\s\\w{]/,r:0}]},o=[e.BE,r,n],i=[n,e.HCM,e.C(\"^\\\\=\\\\w\",\"\\\\=cut\",{eW:!0}),s,{cN:\"string\",c:o,v:[{b:\"q[qwxr]?\\\\s*\\\\(\",e:\"\\\\)\",r:5},{b:\"q[qwxr]?\\\\s*\\\\[\",e:\"\\\\]\",r:5},{b:\"q[qwxr]?\\\\s*\\\\{\",e:\"\\\\}\",r:5},{b:\"q[qwxr]?\\\\s*\\\\|\",e:\"\\\\|\",r:5},{b:\"q[qwxr]?\\\\s*\\\\<\",e:\"\\\\>\",r:5},{b:\"qw\\\\s+q\",e:\"q\",r:5},{b:\"'\",e:\"'\",c:[e.BE]},{b:'\"',e:'\"'},{b:\"`\",e:\"`\",c:[e.BE]},{b:\"{\\\\w+}\",c:[],r:0},{b:\"-?\\\\w+\\\\s*\\\\=\\\\>\",c:[],r:0}]},{cN:\"number\",b:\"(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b\",r:0},{b:\"(\\\\/\\\\/|\"+e.RSR+\"|\\\\b(split|return|print|reverse|grep)\\\\b)\\\\s*\",k:\"split return print reverse grep\",r:0,c:[e.HCM,{cN:\"regexp\",b:\"(s|tr|y)/(\\\\\\\\.|[^/])*/(\\\\\\\\.|[^/])*/[a-z]*\",r:10},{cN:\"regexp\",b:\"(m|qr)?/\",e:\"/[a-z]*\",c:[e.BE],r:0}]},{cN:\"sub\",bK:\"sub\",e:\"(\\\\s*\\\\(.*?\\\\))?[;{]\",r:5},{cN:\"operator\",b:\"-\\\\w\\\\b\",r:0},{b:\"^__DATA__$\",e:\"^__END__$\",sL:\"mojolicious\",c:[{b:\"^@@.*\",e:\"$\",cN:\"comment\"}]}];return r.c=i,s.c=i,{aliases:[\"pl\"],k:t,c:i}});hljs.registerLanguage(\"cs\",function(e){var r=\"abstract as base bool break byte case catch char checked const continue decimal dynamic default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long null when object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async protected public private internal ascending descending from get group into join let orderby partial select set value var where yield\",t=e.IR+\"(<\"+e.IR+\">)?\";return{aliases:[\"csharp\"],k:r,i:/::/,c:[e.C(\"///\",\"$\",{rB:!0,c:[{cN:\"xmlDocTag\",v:[{b:\"///\",r:0},{b:\"<!--|-->\"},{b:\"</?\",e:\">\"}]}]}),e.CLCM,e.CBCM,{cN:\"preprocessor\",b:\"#\",e:\"$\",k:\"if else elif endif define undef warning error line region endregion pragma checksum\"},{cN:\"string\",b:'@\"',e:'\"',c:[{b:'\"\"'}]},e.ASM,e.QSM,e.CNM,{bK:\"class interface\",e:/[{;=]/,i:/[^\\s:]/,c:[e.TM,e.CLCM,e.CBCM]},{bK:\"namespace\",e:/[{;=]/,i:/[^\\s:]/,c:[{cN:\"title\",b:\"[a-zA-Z](\\\\.?\\\\w)*\",r:0},e.CLCM,e.CBCM]},{bK:\"new return throw await\",r:0},{cN:\"function\",b:\"(\"+t+\"\\\\s+)+\"+e.IR+\"\\\\s*\\\\(\",rB:!0,e:/[{;=]/,eE:!0,k:r,c:[{b:e.IR+\"\\\\s*\\\\(\",rB:!0,c:[e.TM],r:0},{cN:\"params\",b:/\\(/,e:/\\)/,eB:!0,eE:!0,k:r,r:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]}]}});hljs.registerLanguage(\"apache\",function(e){var r={cN:\"number\",b:\"[\\\\$%]\\\\d+\"};return{aliases:[\"apacheconf\"],cI:!0,c:[e.HCM,{cN:\"tag\",b:\"</?\",e:\">\"},{cN:\"keyword\",b:/\\w+/,r:0,k:{common:\"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername\"},starts:{e:/$/,r:0,k:{literal:\"on off all\"},c:[{cN:\"sqbracket\",b:\"\\\\s\\\\[\",e:\"\\\\]$\"},{cN:\"cbracket\",b:\"[\\\\$%]\\\\{\",e:\"\\\\}\",c:[\"self\",r]},r,e.QSM]}}],i:/\\S/}});hljs.registerLanguage(\"http\",function(t){return{aliases:[\"https\"],i:\"\\\\S\",c:[{cN:\"status\",b:\"^HTTP/[0-9\\\\.]+\",e:\"$\",c:[{cN:\"number\",b:\"\\\\b\\\\d{3}\\\\b\"}]},{cN:\"request\",b:\"^[A-Z]+ (.*?) HTTP/[0-9\\\\.]+$\",rB:!0,e:\"$\",c:[{cN:\"string\",b:\" \",e:\" \",eB:!0,eE:!0}]},{cN:\"attribute\",b:\"^\\\\w\",e:\": \",eE:!0,i:\"\\\\n|\\\\s|=\",starts:{cN:\"string\",e:\"$\"}},{b:\"\\\\n\\\\n\",starts:{sL:[],eW:!0}}]}});hljs.registerLanguage(\"objectivec\",function(e){var t={cN:\"built_in\",b:\"(AV|CA|CF|CG|CI|MK|MP|NS|UI)\\\\w+\"},i={keyword:\"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required\",literal:\"false true FALSE TRUE nil YES NO NULL\",built_in:\"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once\"},o=/[a-zA-Z@][a-zA-Z0-9_]*/,n=\"@interface @class @protocol @implementation\";return{aliases:[\"mm\",\"objc\",\"obj-c\"],k:i,l:o,i:\"</\",c:[t,e.CLCM,e.CBCM,e.CNM,e.QSM,{cN:\"string\",v:[{b:'@\"',e:'\"',i:\"\\\\n\",c:[e.BE]},{b:\"'\",e:\"[^\\\\\\\\]'\",i:\"[^\\\\\\\\][^']\"}]},{cN:\"preprocessor\",b:\"#\",e:\"$\",c:[{cN:\"title\",v:[{b:'\"',e:'\"'},{b:\"<\",e:\">\"}]}]},{cN:\"class\",b:\"(\"+n.split(\" \").join(\"|\")+\")\\\\b\",e:\"({|$)\",eE:!0,k:n,l:o,c:[e.UTM]},{cN:\"variable\",b:\"\\\\.\"+e.UIR,r:0}]}});hljs.registerLanguage(\"python\",function(e){var r={cN:\"prompt\",b:/^(>>>|\\.\\.\\.) /},b={cN:\"string\",c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[r],r:10},{b:/(u|b)?r?\"\"\"/,e:/\"\"\"/,c:[r],r:10},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)\"/,e:/\"/,r:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)\"/,e:/\"/},e.ASM,e.QSM]},a={cN:\"number\",r:0,v:[{b:e.BNR+\"[lLjJ]?\"},{b:\"\\\\b(0o[0-7]+)[lLjJ]?\"},{b:e.CNR+\"[lLjJ]?\"}]},l={cN:\"params\",b:/\\(/,e:/\\)/,c:[\"self\",r,a,b]};return{aliases:[\"py\",\"gyp\"],k:{keyword:\"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10 None True False\",built_in:\"Ellipsis NotImplemented\"},i:/(<\\/|->|\\?)/,c:[r,a,b,e.HCM,{v:[{cN:\"function\",bK:\"def\",r:10},{cN:\"class\",bK:\"class\"}],e:/:/,i:/[${=;\\n,]/,c:[e.UTM,l]},{cN:\"decorator\",b:/^[\\t ]*@/,e:/$/},{b:/\\b(print|exec)\\(/}]}});hljs.registerLanguage(\"java\",function(e){var a=e.UIR+\"(<\"+e.UIR+\">)?\",t=\"false synchronized int abstract float private char boolean static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private\",c=\"\\\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+)(\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))?|\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))([eE][-+]?\\\\d+)?)[lLfF]?\",r={cN:\"number\",b:c,r:0};return{aliases:[\"jsp\"],k:t,i:/<\\/|#/,c:[e.C(\"/\\\\*\\\\*\",\"\\\\*/\",{r:0,c:[{cN:\"doctag\",b:\"@[A-Za-z]+\"}]}),e.CLCM,e.CBCM,e.ASM,e.QSM,{cN:\"class\",bK:\"class interface\",e:/[{;=]/,eE:!0,k:\"class interface\",i:/[:\"\\[\\]]/,c:[{bK:\"extends implements\"},e.UTM]},{bK:\"new throw return else\",r:0},{cN:\"function\",b:\"(\"+a+\"\\\\s+)+\"+e.UIR+\"\\\\s*\\\\(\",rB:!0,e:/[{;=]/,eE:!0,k:t,c:[{b:e.UIR+\"\\\\s*\\\\(\",rB:!0,r:0,c:[e.UTM]},{cN:\"params\",b:/\\(/,e:/\\)/,k:t,r:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]},r,{cN:\"annotation\",b:\"@[A-Za-z]+\"}]}});hljs.registerLanguage(\"bash\",function(e){var t={cN:\"variable\",v:[{b:/\\$[\\w\\d#@][\\w\\d_]*/},{b:/\\$\\{(.*?)}/}]},s={cN:\"string\",b:/\"/,e:/\"/,c:[e.BE,t,{cN:\"variable\",b:/\\$\\(/,e:/\\)/,c:[e.BE]}]},a={cN:\"string\",b:/'/,e:/'/};return{aliases:[\"sh\",\"zsh\"],l:/-?[a-z\\.]+/,k:{keyword:\"if then else elif fi for while in do done case esac function\",literal:\"true false\",built_in:\"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp\",operator:\"-ne -eq -lt -gt -f -d -e -s -l -a\"},c:[{cN:\"shebang\",b:/^#![^\\n]+sh\\s*$/,r:10},{cN:\"function\",b:/\\w[\\w\\d_]*\\s*\\(\\s*\\)\\s*\\{/,rB:!0,c:[e.inherit(e.TM,{b:/\\w[\\w\\d_]*/})],r:0},e.HCM,e.NM,s,a,t]}});hljs.registerLanguage(\"sql\",function(e){var t=e.C(\"--\",\"$\");return{cI:!0,i:/[<>{}*]/,c:[{cN:\"operator\",bK:\"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke\",e:/;/,eW:!0,k:{keyword:\"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes c cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle d data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration e each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract f failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function g general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http i id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists k keep keep_duplicates key keys kill l language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim m main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex n name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding p package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime t table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek\",literal:\"true false null\",built_in:\"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void\"},c:[{cN:\"string\",b:\"'\",e:\"'\",c:[e.BE,{b:\"''\"}]},{cN:\"string\",b:'\"',e:'\"',c:[e.BE,{b:'\"\"'}]},{cN:\"string\",b:\"`\",e:\"`\",c:[e.BE]},e.CNM,e.CBCM,t]},e.CBCM,t]}});hljs.registerLanguage(\"nginx\",function(e){var r={cN:\"variable\",v:[{b:/\\$\\d+/},{b:/\\$\\{/,e:/}/},{b:\"[\\\\$\\\\@]\"+e.UIR}]},b={eW:!0,l:\"[a-z/_]+\",k:{built_in:\"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll\"},r:0,i:\"=>\",c:[e.HCM,{cN:\"string\",c:[e.BE,r],v:[{b:/\"/,e:/\"/},{b:/'/,e:/'/}]},{cN:\"url\",b:\"([a-z]+):/\",e:\"\\\\s\",eW:!0,eE:!0,c:[r]},{cN:\"regexp\",c:[e.BE,r],v:[{b:\"\\\\s\\\\^\",e:\"\\\\s|{|;\",rE:!0},{b:\"~\\\\*?\\\\s+\",e:\"\\\\s|{|;\",rE:!0},{b:\"\\\\*(\\\\.[a-z\\\\-]+)+\"},{b:\"([a-z\\\\-]+\\\\.)+\\\\*\"}]},{cN:\"number\",b:\"\\\\b\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}(:\\\\d{1,5})?\\\\b\"},{cN:\"number\",b:\"\\\\b\\\\d+[kKmMgGdshdwy]*\\\\b\",r:0},r]};return{aliases:[\"nginxconf\"],c:[e.HCM,{b:e.UIR+\"\\\\s\",e:\";|{\",rB:!0,c:[{cN:\"title\",b:e.UIR,starts:b}],r:0}],i:\"[^\\\\s\\\\}]\"}});hljs.registerLanguage(\"cpp\",function(t){var e={cN:\"keyword\",b:\"\\\\b[a-z\\\\d_]*_t\\\\b\"},r={cN:\"string\",v:[t.inherit(t.QSM,{b:'((u8?|U)|L)?\"'}),{b:'(u8?|U)?R\"',e:'\"',c:[t.BE]},{b:\"'\\\\\\\\?.\",e:\"'\",i:\".\"}]},s={cN:\"number\",v:[{b:\"\\\\b(\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)(u|U|l|L|ul|UL|f|F)\"},{b:t.CNR}]},i={cN:\"preprocessor\",b:\"#\",e:\"$\",k:\"if else elif endif define undef warning error line pragma ifdef ifndef\",c:[{b:/\\\\\\n/,r:0},{bK:\"include\",e:\"$\",c:[r,{cN:\"string\",b:\"<\",e:\">\",i:\"\\\\n\"}]},r,s,t.CLCM,t.CBCM]},a=t.IR+\"\\\\s*\\\\(\",c={keyword:\"int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignof constexpr decltype noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong\",built_in:\"std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf\",literal:\"true false nullptr NULL\"};return{aliases:[\"c\",\"cc\",\"h\",\"c++\",\"h++\",\"hpp\"],k:c,i:\"</\",c:[e,t.CLCM,t.CBCM,s,r,i,{b:\"\\\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\\\s*<\",e:\">\",k:c,c:[\"self\",e]},{b:t.IR+\"::\",k:c},{bK:\"new throw return else\",r:0},{cN:\"function\",b:\"(\"+t.IR+\"[\\\\*&\\\\s]+)+\"+a,rB:!0,e:/[{;=]/,eE:!0,k:c,i:/[^\\w\\s\\*&]/,c:[{b:a,rB:!0,c:[t.TM],r:0},{cN:\"params\",b:/\\(/,e:/\\)/,k:c,r:0,c:[t.CLCM,t.CBCM,r,s]},t.CLCM,t.CBCM,i]}]}});hljs.registerLanguage(\"php\",function(e){var c={cN:\"variable\",b:\"\\\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*\"},a={cN:\"preprocessor\",b:/<\\?(php)?|\\?>/},i={cN:\"string\",c:[e.BE,a],v:[{b:'b\"',e:'\"'},{b:\"b'\",e:\"'\"},e.inherit(e.ASM,{i:null}),e.inherit(e.QSM,{i:null})]},t={v:[e.BNM,e.CNM]};return{aliases:[\"php3\",\"php4\",\"php5\",\"php6\"],cI:!0,k:\"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally\",c:[e.CLCM,e.HCM,e.C(\"/\\\\*\",\"\\\\*/\",{c:[{cN:\"doctag\",b:\"@[A-Za-z]+\"},a]}),e.C(\"__halt_compiler.+?;\",!1,{eW:!0,k:\"__halt_compiler\",l:e.UIR}),{cN:\"string\",b:/<<<['\"]?\\w+['\"]?$/,e:/^\\w+;?$/,c:[e.BE,{cN:\"subst\",v:[{b:/\\$\\w+/},{b:/\\{\\$/,e:/\\}/}]}]},a,c,{b:/(::|->)+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*/},{cN:\"function\",bK:\"function\",e:/[;{]/,eE:!0,i:\"\\\\$|\\\\[|%\",c:[e.UTM,{cN:\"params\",b:\"\\\\(\",e:\"\\\\)\",c:[\"self\",c,e.CBCM,i,t]}]},{cN:\"class\",bK:\"class interface\",e:\"{\",eE:!0,i:/[:\\(\\$\"]/,c:[{bK:\"extends implements\"},e.UTM]},{bK:\"namespace\",e:\";\",i:/[\\.']/,c:[e.UTM]},{bK:\"use\",e:\";\",c:[e.UTM]},{b:\"=>\"},i,t]}});hljs.registerLanguage(\"coffeescript\",function(e){var c={keyword:\"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not\",literal:\"true false null undefined yes no on off\",built_in:\"npm require console print module global window document\"},n=\"[A-Za-z$_][0-9A-Za-z$_]*\",r={cN:\"subst\",b:/#\\{/,e:/}/,k:c},t=[e.BNM,e.inherit(e.CNM,{starts:{e:\"(\\\\s*/)?\",r:0}}),{cN:\"string\",v:[{b:/'''/,e:/'''/,c:[e.BE]},{b:/'/,e:/'/,c:[e.BE]},{b:/\"\"\"/,e:/\"\"\"/,c:[e.BE,r]},{b:/\"/,e:/\"/,c:[e.BE,r]}]},{cN:\"regexp\",v:[{b:\"///\",e:\"///\",c:[r,e.HCM]},{b:\"//[gim]*\",r:0},{b:/\\/(?![ *])(\\\\\\/|.)*?\\/[gim]*(?=\\W|$)/}]},{cN:\"property\",b:\"@\"+n},{b:\"`\",e:\"`\",eB:!0,eE:!0,sL:\"javascript\"}];r.c=t;var s=e.inherit(e.TM,{b:n}),i=\"(\\\\(.*\\\\))?\\\\s*\\\\B[-=]>\",o={cN:\"params\",b:\"\\\\([^\\\\(]\",rB:!0,c:[{b:/\\(/,e:/\\)/,k:c,c:[\"self\"].concat(t)}]};return{aliases:[\"coffee\",\"cson\",\"iced\"],k:c,i:/\\/\\*/,c:t.concat([e.C(\"###\",\"###\"),e.HCM,{cN:\"function\",b:\"^\\\\s*\"+n+\"\\\\s*=\\\\s*\"+i,e:\"[-=]>\",rB:!0,c:[s,o]},{b:/[:\\(,=]\\s*/,r:0,c:[{cN:\"function\",b:i,e:\"[-=]>\",rB:!0,c:[o]}]},{cN:\"class\",bK:\"class\",e:\"$\",i:/[:=\"\\[\\]]/,c:[{bK:\"extends\",eW:!0,i:/[:=\"\\[\\]]/,c:[s]},s]},{cN:\"attribute\",b:n+\":\",e:\":\",rB:!0,rE:!0,r:0}])}});hljs.registerLanguage(\"javascript\",function(e){return{aliases:[\"js\"],k:{keyword:\"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await\",literal:\"true false null undefined NaN Infinity\",built_in:\"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise\"},c:[{cN:\"pi\",r:10,b:/^\\s*['\"]use (strict|asm)['\"]/},e.ASM,e.QSM,{cN:\"string\",b:\"`\",e:\"`\",c:[e.BE,{cN:\"subst\",b:\"\\\\$\\\\{\",e:\"\\\\}\"}]},e.CLCM,e.CBCM,{cN:\"number\",v:[{b:\"\\\\b(0[bB][01]+)\"},{b:\"\\\\b(0[oO][0-7]+)\"},{b:e.CNR}],r:0},{b:\"(\"+e.RSR+\"|\\\\b(case|return|throw)\\\\b)\\\\s*\",k:\"return throw case\",c:[e.CLCM,e.CBCM,e.RM,{b:/</,e:/>\\s*[);\\]]/,r:0,sL:\"xml\"}],r:0},{cN:\"function\",bK:\"function\",e:/\\{/,eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:\"params\",b:/\\(/,e:/\\)/,eB:!0,eE:!0,c:[e.CLCM,e.CBCM]}],i:/\\[|%/},{b:/\\$[(.]/},{b:\"\\\\.\"+e.IR,r:0},{bK:\"import\",e:\"[;$]\",k:\"import from as\",c:[e.ASM,e.QSM]},{cN:\"class\",bK:\"class\",e:/[{;=]/,eE:!0,i:/[:\"\\[\\]]/,c:[{bK:\"extends\"},e.UTM]}],i:/#/}});hljs.registerLanguage(\"ini\",function(e){var c={cN:\"string\",c:[e.BE],v:[{b:\"'''\",e:\"'''\",r:10},{b:'\"\"\"',e:'\"\"\"',r:10},{b:'\"',e:'\"'},{b:\"'\",e:\"'\"}]};return{aliases:[\"toml\"],cI:!0,i:/\\S/,c:[e.C(\";\",\"$\"),e.HCM,{cN:\"title\",b:/^\\s*\\[+/,e:/\\]+/},{cN:\"setting\",b:/^[a-z0-9\\[\\]_-]+\\s*=\\s*/,e:\"$\",c:[{cN:\"value\",eW:!0,k:\"on off true false yes no\",c:[{cN:\"variable\",v:[{b:/\\$[\\w\\d\"][\\w\\d_]*/},{b:/\\$\\{(.*?)}/}]},c,{cN:\"number\",b:/([\\+\\-]+)?[\\d]+_[\\d_]+/},e.NM],r:0}]}]}});hljs.registerLanguage(\"diff\",function(e){return{aliases:[\"patch\"],c:[{cN:\"chunk\",r:10,v:[{b:/^@@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +@@$/},{b:/^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$/},{b:/^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$/}]},{cN:\"header\",v:[{b:/Index: /,e:/$/},{b:/=====/,e:/=====$/},{b:/^\\-\\-\\-/,e:/$/},{b:/^\\*{3} /,e:/$/},{b:/^\\+\\+\\+/,e:/$/},{b:/\\*{5}/,e:/\\*{5}$/}]},{cN:\"addition\",b:\"^\\\\+\",e:\"$\"},{cN:\"deletion\",b:\"^\\\\-\",e:\"$\"},{cN:\"change\",b:\"^\\\\!\",e:\"$\"}]}});\nexports.hljs = hljs;\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/highlight/highlight.js",
            "module-type": "library"
        },
        "$:/plugins/tiddlywiki/highlight/highlight.css": {
            "text": "/*\n\nOriginal style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>\n\n*/\n\n.hljs {\n  display: block;\n  overflow-x: auto;\n  padding: 0.5em;\n  background: #f0f0f0;\n  -webkit-text-size-adjust: none;\n}\n\n.hljs,\n.hljs-subst,\n.hljs-tag .hljs-title,\n.nginx .hljs-title {\n  color: black;\n}\n\n.hljs-string,\n.hljs-title,\n.hljs-constant,\n.hljs-parent,\n.hljs-tag .hljs-value,\n.hljs-rule .hljs-value,\n.hljs-preprocessor,\n.hljs-pragma,\n.hljs-name,\n.haml .hljs-symbol,\n.ruby .hljs-symbol,\n.ruby .hljs-symbol .hljs-string,\n.hljs-template_tag,\n.django .hljs-variable,\n.smalltalk .hljs-class,\n.hljs-addition,\n.hljs-flow,\n.hljs-stream,\n.bash .hljs-variable,\n.pf .hljs-variable,\n.apache .hljs-tag,\n.apache .hljs-cbracket,\n.tex .hljs-command,\n.tex .hljs-special,\n.erlang_repl .hljs-function_or_atom,\n.asciidoc .hljs-header,\n.markdown .hljs-header,\n.coffeescript .hljs-attribute,\n.tp .hljs-variable {\n  color: #800;\n}\n\n.smartquote,\n.hljs-comment,\n.hljs-annotation,\n.diff .hljs-header,\n.hljs-chunk,\n.asciidoc .hljs-blockquote,\n.markdown .hljs-blockquote {\n  color: #888;\n}\n\n.hljs-number,\n.hljs-date,\n.hljs-regexp,\n.hljs-literal,\n.hljs-hexcolor,\n.smalltalk .hljs-symbol,\n.smalltalk .hljs-char,\n.go .hljs-constant,\n.hljs-change,\n.lasso .hljs-variable,\n.makefile .hljs-variable,\n.asciidoc .hljs-bullet,\n.markdown .hljs-bullet,\n.asciidoc .hljs-link_url,\n.markdown .hljs-link_url {\n  color: #080;\n}\n\n.hljs-label,\n.ruby .hljs-string,\n.hljs-decorator,\n.hljs-filter .hljs-argument,\n.hljs-localvars,\n.hljs-array,\n.hljs-attr_selector,\n.hljs-important,\n.hljs-pseudo,\n.hljs-pi,\n.haml .hljs-bullet,\n.hljs-doctype,\n.hljs-deletion,\n.hljs-envvar,\n.hljs-shebang,\n.apache .hljs-sqbracket,\n.nginx .hljs-built_in,\n.tex .hljs-formula,\n.erlang_repl .hljs-reserved,\n.hljs-prompt,\n.asciidoc .hljs-link_label,\n.markdown .hljs-link_label,\n.vhdl .hljs-attribute,\n.clojure .hljs-attribute,\n.asciidoc .hljs-attribute,\n.lasso .hljs-attribute,\n.coffeescript .hljs-property,\n.hljs-phony {\n  color: #88f;\n}\n\n.hljs-keyword,\n.hljs-id,\n.hljs-title,\n.hljs-built_in,\n.css .hljs-tag,\n.hljs-doctag,\n.smalltalk .hljs-class,\n.hljs-winutils,\n.bash .hljs-variable,\n.pf .hljs-variable,\n.apache .hljs-tag,\n.hljs-type,\n.hljs-typename,\n.tex .hljs-command,\n.asciidoc .hljs-strong,\n.markdown .hljs-strong,\n.hljs-request,\n.hljs-status,\n.tp .hljs-data,\n.tp .hljs-io {\n  font-weight: bold;\n}\n\n.asciidoc .hljs-emphasis,\n.markdown .hljs-emphasis,\n.tp .hljs-units {\n  font-style: italic;\n}\n\n.nginx .hljs-built_in {\n  font-weight: normal;\n}\n\n.coffeescript .javascript,\n.javascript .xml,\n.lasso .markup,\n.tex .hljs-formula,\n.xml .javascript,\n.xml .vbscript,\n.xml .css,\n.xml .hljs-cdata {\n  opacity: 0.5;\n}\n",
            "type": "text/css",
            "title": "$:/plugins/tiddlywiki/highlight/highlight.css",
            "tags": "[[$:/tags/Stylesheet]]"
        },
        "$:/plugins/tiddlywiki/highlight/highlightblock.js": {
            "text": "/*\\\ntitle: $:/plugins/tiddlywiki/highlight/highlightblock.js\ntype: application/javascript\nmodule-type: widget\n\nWraps up the fenced code blocks parser for highlight and use in TiddlyWiki5\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TYPE_MAPPINGS_BASE = \"$:/config/HighlightPlugin/TypeMappings/\";\n\nvar CodeBlockWidget = require(\"$:/core/modules/widgets/codeblock.js\").codeblock;\n\nvar hljs = require(\"$:/plugins/tiddlywiki/highlight/highlight.js\");\n\nhljs.configure({tabReplace: \"    \"});\t\n\nCodeBlockWidget.prototype.postRender = function() {\n\tvar domNode = this.domNodes[0],\n\t\tlanguage = this.language,\n\t\ttiddler = this.wiki.getTiddler(TYPE_MAPPINGS_BASE + language);\n\tif(tiddler) {\n\t\tlanguage = tiddler.fields.text || \"\";\n\t}\n\tif(language && hljs.listLanguages().indexOf(language) !== -1) {\n\t\tdomNode.className = language.toLowerCase() + \" hljs\";\n\t\tif($tw.browser && !domNode.isTiddlyWikiFakeDom) {\n\t\t\thljs.highlightBlock(domNode);\t\t\t\n\t\t} else {\n\t\t\tvar text = domNode.textContent;\n\t\t\tdomNode.children[0].innerHTML = hljs.fixMarkup(hljs.highlight(language,text).value);\n\t\t\t// If we're using the fakedom then specially save the original raw text\n\t\t\tif(domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tdomNode.children[0].textInnerHTML = text;\n\t\t\t}\n\t\t}\n\t}\t\n};\n\n})();\n",
            "title": "$:/plugins/tiddlywiki/highlight/highlightblock.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/plugins/tiddlywiki/highlight/license": {
            "title": "$:/plugins/tiddlywiki/highlight/license",
            "type": "text/plain",
            "text": "Copyright (c) 2006, Ivan Sagalaev\nAll rights reserved.\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above copyright\n      notice, this list of conditions and the following disclaimer in the\n      documentation and/or other materials provided with the distribution.\n    * Neither the name of highlight.js nor the names of its contributors\n      may be used to endorse or promote products derived from this software\n      without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
        },
        "$:/plugins/tiddlywiki/highlight/readme": {
            "title": "$:/plugins/tiddlywiki/highlight/readme",
            "text": "This plugin provides syntax highlighting of code blocks using v8.8.0 of [[highlight.js|https://github.com/isagalaev/highlight.js]] from Ivan Sagalaev.\n\n! Usage\n\nWhen the plugin is installed it automatically applies highlighting to all codeblocks defined with triple backticks or with the CodeBlockWidget.\n\nThe language can optionally be specified after the opening triple braces:\n\n<$codeblock code=\"\"\"```css\n * { margin: 0; padding: 0; } /* micro reset */\n\nhtml { font-size: 62.5%; }\nbody { font-size: 14px; font-size: 1.4rem; } /* =14px */\nh1   { font-size: 24px; font-size: 2.4rem; } /* =24px */\n```\"\"\"/>\n\nIf no language is specified highlight.js will attempt to automatically detect the language.\n\n! Built-in Language Brushes\n\nThe plugin includes support for the following languages (referred to as \"brushes\" by highlight.js):\n\n* apache\n* bash\n* coffeescript\n* cpp\n* cs\n* css\n* diff\n* http\n* ini\n* java\n* javascript\n* json\n* makefile\n* markdown\n* nginx\n* objectivec\n* perl\n* php\n* python\n* ruby\n* sql\n* xml\n\nYou can also specify the language as a MIME content type (eg `text/html` or `text/css`). The mapping is accomplished via mapping tiddlers whose titles start with `$:/config/HighlightPlugin/TypeMappings/`.\n"
        },
        "$:/plugins/tiddlywiki/highlight/styles": {
            "title": "$:/plugins/tiddlywiki/highlight/styles",
            "tags": "[[$:/tags/Stylesheet]]",
            "text": ".hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#f8f8f8;-webkit-text-size-adjust:none}.hljs-comment,.diff .hljs-header,.hljs-javadoc{color:#998;font-style:italic}.hljs-keyword,.css .rule .hljs-keyword,.hljs-winutils,.nginx .hljs-title,.hljs-subst,.hljs-request,.hljs-status{color:#333;font-weight:bold}.hljs-number,.hljs-hexcolor,.ruby .hljs-constant{color:teal}.hljs-string,.hljs-tag .hljs-value,.hljs-phpdoc,.hljs-dartdoc,.tex .hljs-formula{color:#d14}.hljs-title,.hljs-id,.scss .hljs-preprocessor{color:#900;font-weight:bold}.hljs-list .hljs-keyword,.hljs-subst{font-weight:normal}.hljs-class .hljs-title,.hljs-type,.vhdl .hljs-literal,.tex .hljs-command{color:#458;font-weight:bold}.hljs-tag,.hljs-tag .hljs-title,.hljs-rule .hljs-property,.django .hljs-tag .hljs-keyword{color:navy;font-weight:normal}.hljs-attribute,.hljs-variable,.lisp .hljs-body,.hljs-name{color:teal}.hljs-regexp{color:#009926}.hljs-symbol,.ruby .hljs-symbol .hljs-string,.lisp .hljs-keyword,.clojure .hljs-keyword,.scheme .hljs-keyword,.tex .hljs-special,.hljs-prompt{color:#990073}.hljs-built_in{color:#0086b3}.hljs-preprocessor,.hljs-pragma,.hljs-pi,.hljs-doctype,.hljs-shebang,.hljs-cdata{color:#999;font-weight:bold}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.diff .hljs-change{background:#0086b3}.hljs-chunk{color:#aaa}"
        },
        "$:/plugins/tiddlywiki/highlight/usage": {
            "title": "$:/plugins/tiddlywiki/highlight/usage",
            "text": "! Usage\n\nFenced code blocks can have a language specifier added to trigger highlighting in a specific language. Otherwise heuristics are used to detect the language.\n\n```\n ```js\n var a = b + c; // Highlighted as JavaScript\n ```\n```\n! Adding Themes\n\nYou can add themes from highlight.js by copying the CSS to a new tiddler and tagging it with [[$:/tags/Stylesheet]]. The available themes can be found on GitHub:\n\nhttps://github.com/isagalaev/highlight.js/tree/master/src/styles\n"
        }
    }
}
{
    "tiddlers": {
        "$:/plugins/tiddlywiki/katex/katex.min.css": {
            "text": ".katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:inline-block;text-align:initial}.katex{font:400 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;white-space:nowrap;text-indent:0}.katex .katex-html{display:inline-block}.katex .katex-mathml{position:absolute;clip:rect(1px,1px,1px,1px);padding:0;border:0;height:1px;width:1px;overflow:hidden}.katex .base,.katex .strut{display:inline-block}.katex .mathrm{font-style:normal}.katex .textit{font-style:italic}.katex .mathit{font-family:KaTeX_Math;font-style:italic}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .amsrm,.katex .mathbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr{font-family:KaTeX_Script}.katex .mathsf{font-family:KaTeX_SansSerif}.katex .mainit{font-family:KaTeX_Main;font-style:italic}.katex .mord+.mop{margin-left:.16667em}.katex .mord+.mbin{margin-left:.22222em}.katex .mord+.mrel{margin-left:.27778em}.katex .mop+.mop,.katex .mop+.mord,.katex .mord+.minner{margin-left:.16667em}.katex .mop+.mrel{margin-left:.27778em}.katex .mop+.minner{margin-left:.16667em}.katex .mbin+.minner,.katex .mbin+.mop,.katex .mbin+.mopen,.katex .mbin+.mord{margin-left:.22222em}.katex .mrel+.minner,.katex .mrel+.mop,.katex .mrel+.mopen,.katex .mrel+.mord{margin-left:.27778em}.katex .mclose+.mop{margin-left:.16667em}.katex .mclose+.mbin{margin-left:.22222em}.katex .mclose+.mrel{margin-left:.27778em}.katex .mclose+.minner,.katex .minner+.mop,.katex .minner+.mord,.katex .mpunct+.mclose,.katex .mpunct+.minner,.katex .mpunct+.mop,.katex .mpunct+.mopen,.katex .mpunct+.mord,.katex .mpunct+.mpunct,.katex .mpunct+.mrel{margin-left:.16667em}.katex .minner+.mbin{margin-left:.22222em}.katex .minner+.mrel{margin-left:.27778em}.katex .minner+.minner,.katex .minner+.mopen,.katex .minner+.mpunct{margin-left:.16667em}.katex .mbin.mtight,.katex .mclose.mtight,.katex .minner.mtight,.katex .mop.mtight,.katex .mopen.mtight,.katex .mord.mtight,.katex .mpunct.mtight,.katex .mrel.mtight{margin-left:0}.katex .mclose+.mop.mtight,.katex .minner+.mop.mtight,.katex .mop+.mop.mtight,.katex .mop+.mord.mtight,.katex .mord+.mop.mtight{margin-left:.16667em}.katex .reset-textstyle.textstyle{font-size:1em}.katex .reset-textstyle.scriptstyle{font-size:.7em}.katex .reset-textstyle.scriptscriptstyle{font-size:.5em}.katex .reset-scriptstyle.textstyle{font-size:1.42857em}.katex .reset-scriptstyle.scriptstyle{font-size:1em}.katex .reset-scriptstyle.scriptscriptstyle{font-size:.71429em}.katex .reset-scriptscriptstyle.textstyle{font-size:2em}.katex .reset-scriptscriptstyle.scriptstyle{font-size:1.4em}.katex .reset-scriptscriptstyle.scriptscriptstyle{font-size:1em}.katex .style-wrap{position:relative}.katex .vlist{display:inline-block}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist .baseline-fix{display:inline-table;table-layout:fixed}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{width:100%}.katex .mfrac .frac-line:before{border-bottom-style:solid;border-bottom-width:1px;content:\"\";display:block}.katex .mfrac .frac-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:\"\";display:block;margin-top:-1px}.katex .mspace{display:inline-block}.katex .mspace.negativethinspace{margin-left:-.16667em}.katex .mspace.thinspace{width:.16667em}.katex .mspace.negativemediumspace{margin-left:-.22222em}.katex .mspace.mediumspace{width:.22222em}.katex .mspace.thickspace{width:.27778em}.katex .mspace.sixmuspace{width:.333333em}.katex .mspace.eightmuspace{width:.444444em}.katex .mspace.enspace{width:.5em}.katex .mspace.twelvemuspace{width:.666667em}.katex .mspace.quad{width:1em}.katex .mspace.qquad{width:2em}.katex .llap,.katex .rlap{width:0;position:relative}.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .rlap>.inner{left:0}.katex .katex-logo .a{font-size:.75em;margin-left:-.32em;position:relative;top:-.2em}.katex .katex-logo .t{margin-left:-.23em}.katex .katex-logo .e{margin-left:-.1667em;position:relative;top:.2155em}.katex .katex-logo .x{margin-left:-.125em}.katex .rule{display:inline-block;border:0 solid;position:relative}.katex .overline .overline-line,.katex .underline .underline-line{width:100%}.katex .overline .overline-line:before,.katex .underline .underline-line:before{border-bottom-style:solid;border-bottom-width:1px;content:\"\";display:block}.katex .overline .overline-line:after,.katex .underline .underline-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:\"\";display:block;margin-top:-1px}.katex .sqrt>.sqrt-sign{position:relative}.katex .sqrt .sqrt-line{width:100%}.katex .sqrt .sqrt-line:before{border-bottom-style:solid;border-bottom-width:1px;content:\"\";display:block}.katex .sqrt .sqrt-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:\"\";display:block;margin-top:-1px}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer,.katex .sizing{display:inline-block}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:2em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:3.46em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:4.14em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.98em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.47142857em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.95714286em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.55714286em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.875em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.125em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.25em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.5em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.8em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.1625em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.5875em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:3.1125em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.77777778em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.88888889em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.6em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.92222222em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.3em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.76666667em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.7em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.8em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.9em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.2em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.44em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.73em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:2.07em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.49em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.58333333em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.66666667em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.75em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.83333333em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44166667em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.725em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.075em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.48611111em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.55555556em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.625em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.69444444em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.20138889em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.4375em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72916667em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.28901734em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.40462428em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.46242775em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.52023121em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.57803468em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69364162em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83236994em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.19653179em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.43930636em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.24154589em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.33816425em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.38647343em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.43478261em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.48309179em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.57971014em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69565217em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83574879em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20289855em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.20080321em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2811245em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.32128514em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.36144578em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.40160643em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48192771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57831325em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69477912em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8313253em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist>span,.katex .op-limits>.vlist>span{text-align:center}.katex .accent .accent-body>span{width:0}.katex .accent .accent-body.accent-vec>span{position:relative;left:.326em}.katex .mtable .vertical-separator{display:inline-block;margin:0 -.025em;border-right:.05em solid #000}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist{text-align:center}.katex .mtable .col-align-l>.vlist{text-align:left}.katex .mtable .col-align-r>.vlist{text-align:right}",
            "type": "text/plain",
            "title": "$:/plugins/tiddlywiki/katex/katex.min.css"
        },
        "$:/plugins/tiddlywiki/katex/katex.min.js": {
            "text": "(function(document) {\n(function(e){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=e()}else if(typeof define===\"function\"&&define.amd){define([],e)}else{var t;if(typeof window!==\"undefined\"){t=window}else if(typeof global!==\"undefined\"){t=global}else if(typeof self!==\"undefined\"){t=self}else{t=this}t.katex=e()}})(function(){var e,t,r;return function a(e,t,r){function i(s,l){if(!t[s]){if(!e[s]){var o=typeof require==\"function\"&&require;if(!l&&o)return o(s,!0);if(n)return n(s,!0);var u=new Error(\"Cannot find module '\"+s+\"'\");throw u.code=\"MODULE_NOT_FOUND\",u}var p=t[s]={exports:{}};e[s][0].call(p.exports,function(t){var r=e[s][1][t];return i(r?r:t)},p,p.exports,a,e,t,r)}return t[s].exports}var n=typeof require==\"function\"&&require;for(var s=0;s<r.length;s++)i(r[s]);return i}({1:[function(e,t,r){var a=e(\"./src/ParseError\");var i=e(\"./src/Settings\");var n=e(\"./src/buildTree\");var s=e(\"./src/parseTree\");var l=e(\"./src/utils\");var o=function(e,t,r){l.clearNode(t);var a=new i(r);var o=s(e,a);var u=n(o,e,a).toNode();t.appendChild(u)};if(typeof document!==\"undefined\"){if(document.compatMode!==\"CSS1Compat\"){typeof console!==\"undefined\"&&console.warn(\"Warning: KaTeX doesn't work in quirks mode. Make sure your \"+\"website has a suitable doctype.\");o=function(){throw new a(\"KaTeX doesn't work in quirks mode.\")}}}var u=function(e,t){var r=new i(t);var a=s(e,r);return n(a,e,r).toMarkup()};var p=function(e,t){var r=new i(t);return s(e,r)};t.exports={render:o,renderToString:u,__parse:p,ParseError:a}},{\"./src/ParseError\":6,\"./src/Settings\":8,\"./src/buildTree\":13,\"./src/parseTree\":22,\"./src/utils\":25}],2:[function(e,t,r){\"use strict\";function a(e){if(!e.__matchAtRelocatable){var t=e.source+\"|()\";var r=\"g\"+(e.ignoreCase?\"i\":\"\")+(e.multiline?\"m\":\"\")+(e.unicode?\"u\":\"\");e.__matchAtRelocatable=new RegExp(t,r)}return e.__matchAtRelocatable}function i(e,t,r){if(e.global||e.sticky){throw new Error(\"matchAt(...): Only non-global regexes are supported\")}var i=a(e);i.lastIndex=r;var n=i.exec(t);if(n[n.length-1]==null){n.length=n.length-1;return n}else{return null}}t.exports=i},{}],3:[function(e,t,r){var a=e(\"match-at\");var i=e(\"./ParseError\");function n(e){this.input=e;this.pos=0}function s(e,t,r,a){this.text=e;this.start=t;this.end=r;this.lexer=a}s.prototype.range=function(e,t){if(e.lexer!==this.lexer){return new s(t)}return new s(t,this.start,e.end,this.lexer)};var l=new RegExp(\"([ \\r\\n\t]+)|\"+\"([!-\\\\[\\\\]-\\u2027\\u202a-\\ud7ff\\uf900-\\uffff]\"+\"|[\\ud800-\\udbff][\\udc00-\\udfff]\"+\"|\\\\\\\\(?:[a-zA-Z]+|[^\\ud800-\\udfff])\"+\")\");n.prototype.lex=function(){var e=this.input;var t=this.pos;if(t===e.length){return new s(\"EOF\",t,t,this)}var r=a(l,e,t);if(r===null){throw new i(\"Unexpected character: '\"+e[t]+\"'\",new s(e[t],t,t+1,this))}var n=r[2]||\" \";var o=this.pos;this.pos+=r[0].length;var u=this.pos;return new s(n,o,u,this)};t.exports=n},{\"./ParseError\":6,\"match-at\":2}],4:[function(e,t,r){var a=e(\"./Lexer\");function i(e,t){this.lexer=new a(e);this.macros=t;this.stack=[];this.discardedWhiteSpace=[]}i.prototype.nextToken=function(){for(;;){if(this.stack.length===0){this.stack.push(this.lexer.lex())}var e=this.stack.pop();var t=e.text;if(!(t.charAt(0)===\"\\\\\"&&this.macros.hasOwnProperty(t))){return e}var r=this.macros[t];if(typeof r===\"string\"){var i=new a(r);r=[];var n=i.lex();while(n.text!==\"EOF\"){r.push(n);n=i.lex()}r.reverse();this.macros[t]=r}this.stack=this.stack.concat(r)}};i.prototype.get=function(e){this.discardedWhiteSpace=[];var t=this.nextToken();if(e){while(t.text===\" \"){this.discardedWhiteSpace.push(t);t=this.nextToken()}}return t};i.prototype.unget=function(e){this.stack.push(e);while(this.discardedWhiteSpace.length!==0){this.stack.push(this.discardedWhiteSpace.pop())}};t.exports=i},{\"./Lexer\":3}],5:[function(e,t,r){function a(e){this.style=e.style;this.color=e.color;this.size=e.size;this.phantom=e.phantom;this.font=e.font;if(e.parentStyle===undefined){this.parentStyle=e.style}else{this.parentStyle=e.parentStyle}if(e.parentSize===undefined){this.parentSize=e.size}else{this.parentSize=e.parentSize}}a.prototype.extend=function(e){var t={style:this.style,size:this.size,color:this.color,parentStyle:this.style,parentSize:this.size,phantom:this.phantom,font:this.font};for(var r in e){if(e.hasOwnProperty(r)){t[r]=e[r]}}return new a(t)};a.prototype.withStyle=function(e){return this.extend({style:e})};a.prototype.withSize=function(e){return this.extend({size:e})};a.prototype.withColor=function(e){return this.extend({color:e})};a.prototype.withPhantom=function(){return this.extend({phantom:true})};a.prototype.withFont=function(e){return this.extend({font:e||this.font})};a.prototype.reset=function(){return this.extend({})};var i={\"katex-blue\":\"#6495ed\",\"katex-orange\":\"#ffa500\",\"katex-pink\":\"#ff00af\",\"katex-red\":\"#df0030\",\"katex-green\":\"#28ae7b\",\"katex-gray\":\"gray\",\"katex-purple\":\"#9d38bd\",\"katex-blueA\":\"#ccfaff\",\"katex-blueB\":\"#80f6ff\",\"katex-blueC\":\"#63d9ea\",\"katex-blueD\":\"#11accd\",\"katex-blueE\":\"#0c7f99\",\"katex-tealA\":\"#94fff5\",\"katex-tealB\":\"#26edd5\",\"katex-tealC\":\"#01d1c1\",\"katex-tealD\":\"#01a995\",\"katex-tealE\":\"#208170\",\"katex-greenA\":\"#b6ffb0\",\"katex-greenB\":\"#8af281\",\"katex-greenC\":\"#74cf70\",\"katex-greenD\":\"#1fab54\",\"katex-greenE\":\"#0d923f\",\"katex-goldA\":\"#ffd0a9\",\"katex-goldB\":\"#ffbb71\",\"katex-goldC\":\"#ff9c39\",\"katex-goldD\":\"#e07d10\",\"katex-goldE\":\"#a75a05\",\"katex-redA\":\"#fca9a9\",\"katex-redB\":\"#ff8482\",\"katex-redC\":\"#f9685d\",\"katex-redD\":\"#e84d39\",\"katex-redE\":\"#bc2612\",\"katex-maroonA\":\"#ffbde0\",\"katex-maroonB\":\"#ff92c6\",\"katex-maroonC\":\"#ed5fa6\",\"katex-maroonD\":\"#ca337c\",\"katex-maroonE\":\"#9e034e\",\"katex-purpleA\":\"#ddd7ff\",\"katex-purpleB\":\"#c6b9fc\",\"katex-purpleC\":\"#aa87ff\",\"katex-purpleD\":\"#7854ab\",\"katex-purpleE\":\"#543b78\",\"katex-mintA\":\"#f5f9e8\",\"katex-mintB\":\"#edf2df\",\"katex-mintC\":\"#e0e5cc\",\"katex-grayA\":\"#f6f7f7\",\"katex-grayB\":\"#f0f1f2\",\"katex-grayC\":\"#e3e5e6\",\"katex-grayD\":\"#d6d8da\",\"katex-grayE\":\"#babec2\",\"katex-grayF\":\"#888d93\",\"katex-grayG\":\"#626569\",\"katex-grayH\":\"#3b3e40\",\"katex-grayI\":\"#21242c\",\"katex-kaBlue\":\"#314453\",\"katex-kaGreen\":\"#71B307\"};a.prototype.getColor=function(){if(this.phantom){return\"transparent\"}else{return i[this.color]||this.color}};t.exports=a},{}],6:[function(e,t,r){function a(e,t){var r=\"KaTeX parse error: \"+e;var i;var n;if(t&&t.lexer&&t.start<=t.end){var s=t.lexer.input;i=t.start;n=t.end;if(i===s.length){r+=\" at end of input: \"}else{r+=\" at position \"+(i+1)+\": \"}var l=s.slice(i,n).replace(/[^]/g,\"$&\\u0332\");var o;if(i>15){o=\"\\u2026\"+s.slice(i-15,i)}else{o=s.slice(0,i)}var u;if(n+15<s.length){u=s.slice(n,n+15)+\"\\u2026\"}else{u=s.slice(n)}r+=o+l+u}var p=new Error(r);p.name=\"ParseError\";p.__proto__=a.prototype;p.position=i;return p}a.prototype.__proto__=Error.prototype;t.exports=a},{}],7:[function(e,t,r){var a=e(\"./functions\");var i=e(\"./environments\");var n=e(\"./MacroExpander\");var s=e(\"./symbols\");var l=e(\"./utils\");var o=e(\"./unicodeRegexes\").cjkRegex;var u=e(\"./parseData\");var p=e(\"./ParseError\");function h(e,t){this.gullet=new n(e,t.macros);this.settings=t;this.leftrightDepth=0}var c=u.ParseNode;function m(e,t,r){this.result=e;this.isFunction=t;this.token=r}h.prototype.expect=function(e,t){if(this.nextToken.text!==e){throw new p(\"Expected '\"+e+\"', got '\"+this.nextToken.text+\"'\",this.nextToken)}if(t!==false){this.consume()}};h.prototype.consume=function(){this.nextToken=this.gullet.get(this.mode===\"math\")};h.prototype.switchMode=function(e){this.gullet.unget(this.nextToken);this.mode=e;this.consume()};h.prototype.parse=function(){this.mode=\"math\";this.consume();var e=this.parseInput();return e};h.prototype.parseInput=function(){var e=this.parseExpression(false);this.expect(\"EOF\",false);return e};var f=[\"}\",\"\\\\end\",\"\\\\right\",\"&\",\"\\\\\\\\\",\"\\\\cr\"];h.prototype.parseExpression=function(e,t){var r=[];while(true){var i=this.nextToken;if(f.indexOf(i.text)!==-1){break}if(t&&i.text===t){break}if(e&&a[i.text]&&a[i.text].infix){break}var n=this.parseAtom();if(!n){if(!this.settings.throwOnError&&i.text[0]===\"\\\\\"){var s=this.handleUnsupportedCmd();r.push(s);continue}break}r.push(n)}return this.handleInfixNodes(r)};h.prototype.handleInfixNodes=function(e){var t=-1;var r;for(var a=0;a<e.length;a++){var i=e[a];if(i.type===\"infix\"){if(t!==-1){throw new p(\"only one infix operator per group\",i.value.token)}t=a;r=i.value.replaceWith}}if(t!==-1){var n;var s;var l=e.slice(0,t);var o=e.slice(t+1);if(l.length===1&&l[0].type===\"ordgroup\"){n=l[0]}else{n=new c(\"ordgroup\",l,this.mode)}if(o.length===1&&o[0].type===\"ordgroup\"){s=o[0]}else{s=new c(\"ordgroup\",o,this.mode)}var u=this.callFunction(r,[n,s],null);return[new c(u.type,u,this.mode)]}else{return e}};var v=1;h.prototype.handleSupSubscript=function(e){var t=this.nextToken;var r=t.text;this.consume();var i=this.parseGroup();if(!i){if(!this.settings.throwOnError&&this.nextToken.text[0]===\"\\\\\"){return this.handleUnsupportedCmd()}else{throw new p(\"Expected group after '\"+r+\"'\",t)}}else if(i.isFunction){var n=a[i.result].greediness;if(n>v){return this.parseFunction(i)}else{throw new p(\"Got function '\"+i.result+\"' with no arguments \"+\"as \"+e,t)}}else{return i.result}};h.prototype.handleUnsupportedCmd=function(){var e=this.nextToken.text;var t=[];for(var r=0;r<e.length;r++){t.push(new c(\"textord\",e[r],\"text\"))}var a=new c(\"text\",{body:t,type:\"text\"},this.mode);var i=new c(\"color\",{color:this.settings.errorColor,value:[a],type:\"color\"},this.mode);this.consume();return i};h.prototype.parseAtom=function(){var e=this.parseImplicitGroup();if(this.mode===\"text\"){return e}var t;var r;while(true){var a=this.nextToken;if(a.text===\"\\\\limits\"||a.text===\"\\\\nolimits\"){if(!e||e.type!==\"op\"){throw new p(\"Limit controls must follow a math operator\",a)}else{var i=a.text===\"\\\\limits\";e.value.limits=i;e.value.alwaysHandleSupSub=true}this.consume()}else if(a.text===\"^\"){if(t){throw new p(\"Double superscript\",a)}t=this.handleSupSubscript(\"superscript\")}else if(a.text===\"_\"){if(r){throw new p(\"Double subscript\",a)}r=this.handleSupSubscript(\"subscript\")}else if(a.text===\"'\"){var n=new c(\"textord\",\"\\\\prime\",this.mode);var s=[n];this.consume();while(this.nextToken.text===\"'\"){s.push(n);this.consume()}t=new c(\"ordgroup\",s,this.mode)}else{break}}if(t||r){return new c(\"supsub\",{base:e,sup:t,sub:r},this.mode)}else{return e}};var d=[\"\\\\tiny\",\"\\\\scriptsize\",\"\\\\footnotesize\",\"\\\\small\",\"\\\\normalsize\",\"\\\\large\",\"\\\\Large\",\"\\\\LARGE\",\"\\\\huge\",\"\\\\Huge\"];var g=[\"\\\\displaystyle\",\"\\\\textstyle\",\"\\\\scriptstyle\",\"\\\\scriptscriptstyle\"];h.prototype.parseImplicitGroup=function(){var e=this.parseSymbol();if(e==null){return this.parseFunction()}var t=e.result;var r;if(t===\"\\\\left\"){var a=this.parseFunction(e);++this.leftrightDepth;r=this.parseExpression(false);--this.leftrightDepth;this.expect(\"\\\\right\",false);var n=this.parseFunction();return new c(\"leftright\",{body:r,left:a.value.value,right:n.value.value},this.mode)}else if(t===\"\\\\begin\"){var s=this.parseFunction(e);var o=s.value.name;if(!i.hasOwnProperty(o)){throw new p(\"No such environment: \"+o,s.value.nameGroup)}var u=i[o];var h=this.parseArguments(\"\\\\begin{\"+o+\"}\",u);var m={mode:this.mode,envName:o,parser:this,positions:h.pop()};var f=u.handler(m,h);this.expect(\"\\\\end\",false);var v=this.nextToken;var y=this.parseFunction();if(y.value.name!==o){throw new p(\"Mismatch: \\\\begin{\"+o+\"} matched \"+\"by \\\\end{\"+y.value.name+\"}\",v)}f.position=y.position;return f}else if(l.contains(d,t)){r=this.parseExpression(false);return new c(\"sizing\",{size:\"size\"+(l.indexOf(d,t)+1),value:r},this.mode)}else if(l.contains(g,t)){r=this.parseExpression(true);return new c(\"styling\",{style:t.slice(1,t.length-5),value:r},this.mode)}else{return this.parseFunction(e)}};h.prototype.parseFunction=function(e){if(!e){e=this.parseGroup()}if(e){if(e.isFunction){var t=e.result;var r=a[t];if(this.mode===\"text\"&&!r.allowedInText){throw new p(\"Can't use function '\"+t+\"' in text mode\",e.token)}var i=this.parseArguments(t,r);var n=e.token;var s=this.callFunction(t,i,i.pop(),n);return new c(s.type,s,this.mode)}else{return e.result}}else{return null}};h.prototype.callFunction=function(e,t,r,i){var n={funcName:e,parser:this,positions:r,token:i};return a[e].handler(n,t)};h.prototype.parseArguments=function(e,t){var r=t.numArgs+t.numOptionalArgs;if(r===0){return[[this.pos]]}var i=t.greediness;var n=[this.pos];var s=[];for(var l=0;l<r;l++){var o=this.nextToken;var u=t.argTypes&&t.argTypes[l];var h;if(l<t.numOptionalArgs){if(u){h=this.parseGroupOfType(u,true)}else{h=this.parseGroup(true)}if(!h){s.push(null);n.push(this.pos);continue}}else{if(u){h=this.parseGroupOfType(u)}else{h=this.parseGroup()}if(!h){if(!this.settings.throwOnError&&this.nextToken.text[0]===\"\\\\\"){h=new m(this.handleUnsupportedCmd(this.nextToken.text),false)}else{throw new p(\"Expected group after '\"+e+\"'\",o)}}}var c;if(h.isFunction){var f=a[h.result].greediness;if(f>i){c=this.parseFunction(h)}else{throw new p(\"Got function '\"+h.result+\"' as \"+\"argument to '\"+e+\"'\",o)}}else{c=h.result}s.push(c);n.push(this.pos)}s.push(n);return s};h.prototype.parseGroupOfType=function(e,t){var r=this.mode;if(e===\"original\"){e=r}if(e===\"color\"){return this.parseColorGroup(t)}if(e===\"size\"){return this.parseSizeGroup(t)}this.switchMode(e);if(e===\"text\"){while(this.nextToken.text===\" \"){this.consume()}}var a=this.parseGroup(t);this.switchMode(r);return a};h.prototype.parseStringGroup=function(e,t){if(t&&this.nextToken.text!==\"[\"){return null}var r=this.mode;this.mode=\"text\";this.expect(t?\"[\":\"{\");var a=\"\";var i=this.nextToken;var n=i;while(this.nextToken.text!==(t?\"]\":\"}\")){if(this.nextToken.text===\"EOF\"){throw new p(\"Unexpected end of input in \"+e,i.range(this.nextToken,a))}n=this.nextToken;a+=n.text;this.consume()}this.mode=r;this.expect(t?\"]\":\"}\");return i.range(n,a)};h.prototype.parseRegexGroup=function(e,t){var r=this.mode;this.mode=\"text\";var a=this.nextToken;var i=a;var n=\"\";while(this.nextToken.text!==\"EOF\"&&e.test(n+this.nextToken.text)){i=this.nextToken;n+=i.text;this.consume()}if(n===\"\"){throw new p(\"Invalid \"+t+\": '\"+a.text+\"'\",a)}this.mode=r;return a.range(i,n)};h.prototype.parseColorGroup=function(e){var t=this.parseStringGroup(\"color\",e);if(!t){return null}var r=/^(#[a-z0-9]+|[a-z]+)$/i.exec(t.text);if(!r){throw new p(\"Invalid color: '\"+t.text+\"'\",t)}return new m(new c(\"color\",r[0],this.mode),false)};h.prototype.parseSizeGroup=function(e){var t;if(!e&&this.nextToken.text!==\"{\"){t=this.parseRegexGroup(/^[-+]? *(?:$|\\d+|\\d+\\.\\d*|\\.\\d*) *[a-z]{0,2}$/,\"size\")}else{t=this.parseStringGroup(\"size\",e)}if(!t){return null}var r=/([-+]?) *(\\d+(?:\\.\\d*)?|\\.\\d+) *([a-z]{2})/.exec(t.text);if(!r){throw new p(\"Invalid size: '\"+t.text+\"'\",t)}var a={number:+(r[1]+r[2]),unit:r[3]};if(a.unit!==\"em\"&&a.unit!==\"ex\"&&a.unit!==\"mu\"){throw new p(\"Invalid unit: '\"+a.unit+\"'\",t)}return new m(new c(\"color\",a,this.mode),false)};h.prototype.parseGroup=function(e){var t=this.nextToken;if(this.nextToken.text===(e?\"[\":\"{\")){this.consume();var r=this.parseExpression(false,e?\"]\":null);var a=this.nextToken;this.expect(e?\"]\":\"}\");if(this.mode===\"text\"){this.formLigatures(r)}return new m(new c(\"ordgroup\",r,this.mode,t,a),false)}else{return e?null:this.parseSymbol()}};h.prototype.formLigatures=function(e){var t;var r=e.length-1;for(t=0;t<r;++t){var a=e[t];var i=a.value;if(i===\"-\"&&e[t+1].value===\"-\"){if(t+1<r&&e[t+2].value===\"-\"){e.splice(t,3,new c(\"textord\",\"---\",\"text\",a,e[t+2]));r-=2}else{e.splice(t,2,new c(\"textord\",\"--\",\"text\",a,e[t+1]));r-=1}}if((i===\"'\"||i===\"`\")&&e[t+1].value===i){e.splice(t,2,new c(\"textord\",i+i,\"text\",a,e[t+1]));r-=1}}};h.prototype.parseSymbol=function(){var e=this.nextToken;if(a[e.text]){this.consume();return new m(e.text,true,e)}else if(s[this.mode][e.text]){this.consume();return new m(new c(s[this.mode][e.text].group,e.text,this.mode,e),false,e)}else if(this.mode===\"text\"&&o.test(e.text)){this.consume();return new m(new c(\"textord\",e.text,this.mode,e),false,e)}else{return null}};h.prototype.ParseNode=c;t.exports=h},{\"./MacroExpander\":4,\"./ParseError\":6,\"./environments\":16,\"./functions\":19,\"./parseData\":21,\"./symbols\":23,\"./unicodeRegexes\":24,\"./utils\":25}],8:[function(e,t,r){function a(e,t){return e===undefined?t:e}function i(e){e=e||{};this.displayMode=a(e.displayMode,false);this.throwOnError=a(e.throwOnError,true);this.errorColor=a(e.errorColor,\"#cc0000\");this.macros=e.macros||{}}t.exports=i},{}],9:[function(e,t,r){var a=e(\"./fontMetrics.js\").sigmas;var i=[{},{},{}];var n;for(var s in a){if(a.hasOwnProperty(s)){for(n=0;n<3;n++){i[n][s]=a[s][n]}}}for(n=0;n<3;n++){i[n].emPerEx=a.xHeight[n]/a.quad[n]}function l(e,t,r,a){this.id=e;this.size=t;this.cramped=a;this.sizeMultiplier=r;this.metrics=i[t>0?t-1:0]}l.prototype.sup=function(){return y[x[this.id]]};l.prototype.sub=function(){return y[b[this.id]]};l.prototype.fracNum=function(){return y[w[this.id]]};l.prototype.fracDen=function(){return y[k[this.id]]};l.prototype.cramp=function(){return y[z[this.id]]};l.prototype.cls=function(){return d[this.size]+(this.cramped?\" cramped\":\" uncramped\")};l.prototype.reset=function(){return g[this.size]};l.prototype.isTight=function(){return this.size>=2};var o=0;var u=1;var p=2;var h=3;var c=4;var m=5;var f=6;var v=7;var d=[\"displaystyle textstyle\",\"textstyle\",\"scriptstyle\",\"scriptscriptstyle\"];var g=[\"reset-textstyle\",\"reset-textstyle\",\"reset-scriptstyle\",\"reset-scriptscriptstyle\"];var y=[new l(o,0,1,false),new l(u,0,1,true),new l(p,1,1,false),new l(h,1,1,true),new l(c,2,.7,false),new l(m,2,.7,true),new l(f,3,.5,false),new l(v,3,.5,true)];var x=[c,m,c,m,f,v,f,v];var b=[m,m,m,m,v,v,v,v];var w=[p,h,c,m,f,v,f,v];var k=[h,h,m,m,v,v,v,v];var z=[u,u,h,h,m,m,v,v];t.exports={DISPLAY:y[o],TEXT:y[p],SCRIPT:y[c],SCRIPTSCRIPT:y[f]}},{\"./fontMetrics.js\":17}],10:[function(e,t,r){var a=e(\"./domTree\");var i=e(\"./fontMetrics\");var n=e(\"./symbols\");var s=e(\"./utils\");var l=[\"\\\\Gamma\",\"\\\\Delta\",\"\\\\Theta\",\"\\\\Lambda\",\"\\\\Xi\",\"\\\\Pi\",\"\\\\Sigma\",\"\\\\Upsilon\",\"\\\\Phi\",\"\\\\Psi\",\"\\\\Omega\"];var o=[\"\\u0131\",\"\\u0237\",\"\\xa3\"];var u=function(e,t,r,s,l){if(n[r][e]&&n[r][e].replace){e=n[r][e].replace}var o=i.getCharacterMetrics(e,t);var u;if(o){var p=o.italic;if(r===\"text\"){p=0}u=new a.symbolNode(e,o.height,o.depth,p,o.skew,l)}else{typeof console!==\"undefined\"&&console.warn(\"No character metrics for '\"+e+\"' in style '\"+t+\"'\");u=new a.symbolNode(e,0,0,0,0,l)}if(s){if(s.style.isTight()){u.classes.push(\"mtight\")}if(s.getColor()){u.style.color=s.getColor()}}return u};var p=function(e,t,r,a){if(e===\"\\\\\"||n[t][e].font===\"main\"){return u(e,\"Main-Regular\",t,r,a)}else{return u(e,\"AMS-Regular\",t,r,a.concat([\"amsrm\"]))}};var h=function(e,t,r,a,i){if(i===\"mathord\"){return c(e,t,r,a)}else if(i===\"textord\"){return u(e,\"Main-Regular\",t,r,a.concat([\"mathrm\"]))}else{throw new Error(\"unexpected type: \"+i+\" in mathDefault\")}};var c=function(e,t,r,a){if(/[0-9]/.test(e.charAt(0))||s.contains(o,e)||s.contains(l,e)){return u(e,\"Main-Italic\",t,r,a.concat([\"mainit\"]))}else{return u(e,\"Math-Italic\",t,r,a.concat([\"mathit\"]))}};var m=function(e,t,r){var a=e.mode;var l=e.value;if(n[a][l]&&n[a][l].replace){l=n[a][l].replace}var p=[\"mord\"];var m=t.font;if(m){if(m===\"mathit\"||s.contains(o,l)){return c(l,a,t,p)}else{var f=k[m].fontName;if(i.getCharacterMetrics(l,f)){return u(l,f,a,t,p.concat([m]))}else{return h(l,a,t,p,r)}}}else{return h(l,a,t,p,r)}};var f=function(e){var t=0;var r=0;var a=0;if(e.children){for(var i=0;i<e.children.length;i++){if(e.children[i].height>t){t=e.children[i].height}if(e.children[i].depth>r){r=e.children[i].depth}if(e.children[i].maxFontSize>a){a=e.children[i].maxFontSize}}}e.height=t;e.depth=r;e.maxFontSize=a};var v=function(e,t,r){var i=new a.span(e,t,r);f(i);return i};var d=function(e,t){e.children=t.concat(e.children);f(e)};var g=function(e){var t=new a.documentFragment(e);f(t);return t};var y=function(e,t){var r=v([],[new a.symbolNode(\"\\u200b\")]);r.style.fontSize=t/e.style.sizeMultiplier+\"em\";var i=v([\"fontsize-ensurer\",\"reset-\"+e.size,\"size5\"],[r]);return i};var x=function(e,t,r,i){var n;var s;var l;if(t===\"individualShift\"){var o=e;e=[o[0]];n=-o[0].shift-o[0].elem.depth;s=n;for(l=1;l<o.length;l++){var u=-o[l].shift-s-o[l].elem.depth;var p=u-(o[l-1].elem.height+o[l-1].elem.depth);s=s+u;e.push({type:\"kern\",size:p});e.push(o[l])}}else if(t===\"top\"){var h=r;for(l=0;l<e.length;l++){if(e[l].type===\"kern\"){h-=e[l].size}else{h-=e[l].elem.height+e[l].elem.depth}}n=h}else if(t===\"bottom\"){n=-r}else if(t===\"shift\"){n=-e[0].elem.depth-r}else if(t===\"firstBaseline\"){n=-e[0].elem.depth}else{n=0}var c=0;for(l=0;l<e.length;l++){if(e[l].type===\"elem\"){c=Math.max(c,e[l].elem.maxFontSize)}}var m=y(i,c);var f=[];s=n;for(l=0;l<e.length;l++){if(e[l].type===\"kern\"){s+=e[l].size}else{var d=e[l].elem;var g=-d.depth-s;s+=d.height+d.depth;var x=v([],[m,d]);x.height-=g;x.depth+=g;x.style.top=g+\"em\";f.push(x)}}var b=v([\"baseline-fix\"],[m,new a.symbolNode(\"\\u200b\")]);f.push(b);var w=v([\"vlist\"],f);w.height=Math.max(s,w.height);w.depth=Math.max(-n,w.depth);return w};var b={size1:.5,size2:.7,size3:.8,size4:.9,size5:1,size6:1.2,size7:1.44,size8:1.73,size9:2.07,size10:2.49};var w={\"\\\\qquad\":{size:\"2em\",className:\"qquad\"},\"\\\\quad\":{size:\"1em\",className:\"quad\"},\"\\\\enspace\":{size:\"0.5em\",className:\"enspace\"},\"\\\\;\":{size:\"0.277778em\",className:\"thickspace\"},\"\\\\:\":{size:\"0.22222em\",className:\"mediumspace\"},\"\\\\,\":{size:\"0.16667em\",className:\"thinspace\"},\"\\\\!\":{size:\"-0.16667em\",className:\"negativethinspace\"}};var k={mathbf:{variant:\"bold\",fontName:\"Main-Bold\"},mathrm:{variant:\"normal\",fontName:\"Main-Regular\"},textit:{variant:\"italic\",fontName:\"Main-Italic\"},mathbb:{variant:\"double-struck\",fontName:\"AMS-Regular\"},mathcal:{variant:\"script\",fontName:\"Caligraphic-Regular\"},mathfrak:{variant:\"fraktur\",fontName:\"Fraktur-Regular\"},mathscr:{variant:\"script\",fontName:\"Script-Regular\"},mathsf:{variant:\"sans-serif\",fontName:\"SansSerif-Regular\"},mathtt:{variant:\"monospace\",fontName:\"Typewriter-Regular\"}};t.exports={fontMap:k,makeSymbol:u,mathsym:p,makeSpan:v,makeFragment:g,makeVList:x,makeOrd:m,prependChildren:d,sizingMultiplier:b,spacingFunctions:w}},{\"./domTree\":15,\"./fontMetrics\":17,\"./symbols\":23,\"./utils\":25}],11:[function(e,t,r){var a=e(\"./ParseError\");var i=e(\"./Style\");var n=e(\"./buildCommon\");var s=e(\"./delimiter\");var l=e(\"./domTree\");var o=e(\"./fontMetrics\");var u=e(\"./utils\");var p=n.makeSpan;var h=function(e){return e instanceof l.span&&e.classes[0]===\"mspace\"};var c=function(e){return e&&e.classes[0]===\"mbin\"};var m=function(e,t){if(e){return u.contains([\"mbin\",\"mopen\",\"mrel\",\"mop\",\"mpunct\"],e.classes[0])}else{return t}};var f=function(e,t){if(e){return u.contains([\"mrel\",\"mclose\",\"mpunct\"],e.classes[0])}else{return t}};var v=function(e,t,r){var a=[];for(var i=0;i<e.length;i++){var s=e[i];var o=z(s,t);if(o instanceof l.documentFragment){Array.prototype.push.apply(a,o.children)}else{a.push(o)}}var u=null;for(i=0;i<a.length;i++){if(h(a[i])){u=u||[];u.push(a[i]);a.splice(i,1);i--}else if(u){if(a[i]instanceof l.symbolNode){a[i]=p([].concat(a[i].classes),[a[i]])}n.prependChildren(a[i],u);u=null}}if(u){Array.prototype.push.apply(a,u)}for(i=0;i<a.length;i++){if(c(a[i])&&(m(a[i-1],r)||f(a[i+1],r))){a[i].classes[0]=\"mord\"}}return a};var d=function(e){if(e instanceof l.documentFragment){if(e.children.length){return d(e.children[e.children.length-1])}}else{if(u.contains([\"mord\",\"mop\",\"mbin\",\"mrel\",\"mopen\",\"mclose\",\"mpunct\",\"minner\"],e.classes[0])){return e.classes[0]}}return null};var g=function(e,t){if(!e){return false}else if(e.type===\"op\"){return e.value.limits&&(t.style.size===i.DISPLAY.size||e.value.alwaysHandleSupSub)}else if(e.type===\"accent\"){return x(e.value.base)}else{return null}};var y=function(e){if(!e){return false}else if(e.type===\"ordgroup\"){if(e.value.length===1){return y(e.value[0])}else{return e}}else if(e.type===\"color\"){if(e.value.value.length===1){return y(e.value.value[0])}else{return e}}else if(e.type===\"font\"){return y(e.value.body)}else{return e}};var x=function(e){var t=y(e);return t.type===\"mathord\"||t.type===\"textord\"||t.type===\"bin\"||t.type===\"rel\"||t.type===\"inner\"||t.type===\"open\"||t.type===\"close\"||t.type===\"punct\"};var b=function(e,t){return p(t.concat([\"sizing\",\"reset-\"+e.size,\"size5\",e.style.reset(),i.TEXT.cls(),\"nulldelimiter\"]))};var w={};w.mathord=function(e,t){return n.makeOrd(e,t,\"mathord\")};w.textord=function(e,t){return n.makeOrd(e,t,\"textord\")};w.bin=function(e,t){return n.mathsym(e.value,e.mode,t,[\"mbin\"])};w.rel=function(e,t){return n.mathsym(e.value,e.mode,t,[\"mrel\"])};w.open=function(e,t){return n.mathsym(e.value,e.mode,t,[\"mopen\"])};w.close=function(e,t){return n.mathsym(e.value,e.mode,t,[\"mclose\"])};w.inner=function(e,t){return n.mathsym(e.value,e.mode,t,[\"minner\"])};w.punct=function(e,t){return n.mathsym(e.value,e.mode,t,[\"mpunct\"])};w.ordgroup=function(e,t){return p([\"mord\",t.style.cls()],v(e.value,t.reset(),true),t)};w.text=function(e,t){var r=t.withFont(e.value.style);var a=v(e.value.body,r,true);for(var i=0;i<a.length-1;i++){if(a[i].tryCombine(a[i+1])){a.splice(i+1,1);i--}}return p([\"mord\",\"text\",r.style.cls()],a,r)};w.color=function(e,t){var r=v(e.value.value,t.withColor(e.value.color),false);return new n.makeFragment(r)};w.supsub=function(e,t){if(g(e.value.base,t)){return w[e.value.base.type](e,t)}var r=z(e.value.base,t.reset());var a;var s;var u;var h;var c=t.style;var m;if(e.value.sup){m=t.withStyle(c.sup());u=z(e.value.sup,m);a=p([c.reset(),c.sup().cls()],[u],m)}if(e.value.sub){m=t.withStyle(c.sub());h=z(e.value.sub,m);s=p([c.reset(),c.sub().cls()],[h],m)}var f;var v;if(x(e.value.base)){f=0;v=0}else{f=r.height-c.metrics.supDrop;v=r.depth+c.metrics.subDrop}var y;if(c===i.DISPLAY){y=c.metrics.sup1}else if(c.cramped){y=c.metrics.sup3}else{y=c.metrics.sup2}var b=i.TEXT.sizeMultiplier*c.sizeMultiplier;var k=.5/o.metrics.ptPerEm/b+\"em\";var S;if(!e.value.sup){v=Math.max(v,c.metrics.sub1,h.height-.8*c.metrics.xHeight);S=n.makeVList([{type:\"elem\",elem:s}],\"shift\",v,t);S.children[0].style.marginRight=k;if(r instanceof l.symbolNode){S.children[0].style.marginLeft=-r.italic+\"em\"}}else if(!e.value.sub){f=Math.max(f,y,u.depth+.25*c.metrics.xHeight);S=n.makeVList([{type:\"elem\",elem:a}],\"shift\",-f,t);S.children[0].style.marginRight=k}else{f=Math.max(f,y,u.depth+.25*c.metrics.xHeight);v=Math.max(v,c.metrics.sub2);var M=o.metrics.defaultRuleThickness;if(f-u.depth-(h.height-v)<4*M){v=4*M-(f-u.depth)+h.height;var T=.8*c.metrics.xHeight-(f-u.depth);if(T>0){f+=T;v-=T}}S=n.makeVList([{type:\"elem\",elem:s,shift:v},{type:\"elem\",elem:a,shift:-f}],\"individualShift\",null,t);if(r instanceof l.symbolNode){S.children[0].style.marginLeft=-r.italic+\"em\"}S.children[0].style.marginRight=k;S.children[1].style.marginRight=k}var A=d(r)||\"mord\";return p([A],[r,p([\"msupsub\"],[S])],t)};w.genfrac=function(e,t){var r=t.style;if(e.value.size===\"display\"){r=i.DISPLAY}else if(e.value.size===\"text\"){r=i.TEXT}var a=r.fracNum();var l=r.fracDen();var u;u=t.withStyle(a);var h=z(e.value.numer,u);var c=p([r.reset(),a.cls()],[h],u);u=t.withStyle(l);var m=z(e.value.denom,u);var f=p([r.reset(),l.cls()],[m],u);var v;if(e.value.hasBarLine){v=o.metrics.defaultRuleThickness/t.style.sizeMultiplier}else{v=0}var d;var g;var y;if(r.size===i.DISPLAY.size){d=r.metrics.num1;if(v>0){g=3*v}else{g=7*o.metrics.defaultRuleThickness}y=r.metrics.denom1}else{if(v>0){d=r.metrics.num2;g=v}else{d=r.metrics.num3;g=3*o.metrics.defaultRuleThickness}y=r.metrics.denom2}var x;if(v===0){var w=d-h.depth-(m.height-y);if(w<g){d+=.5*(g-w);y+=.5*(g-w)}x=n.makeVList([{type:\"elem\",elem:f,shift:y},{type:\"elem\",elem:c,shift:-d}],\"individualShift\",null,t)}else{var k=r.metrics.axisHeight;if(d-h.depth-(k+.5*v)<g){d+=g-(d-h.depth-(k+.5*v))}if(k-.5*v-(m.height-y)<g){y+=g-(k-.5*v-(m.height-y))}var S=p([t.style.reset(),i.TEXT.cls(),\"frac-line\"]);S.height=v;var M=-(k-.5*v);x=n.makeVList([{type:\"elem\",elem:f,shift:y},{type:\"elem\",elem:S,shift:M},{type:\"elem\",elem:c,shift:-d}],\"individualShift\",null,t)}x.height*=r.sizeMultiplier/t.style.sizeMultiplier;x.depth*=r.sizeMultiplier/t.style.sizeMultiplier;var T;if(r.size===i.DISPLAY.size){T=r.metrics.delim1}else{T=r.metrics.delim2}var A;var N;if(e.value.leftDelim==null){A=b(t,[\"mopen\"])}else{A=s.customSizedDelim(e.value.leftDelim,T,true,t.withStyle(r),e.mode,[\"mopen\"])}if(e.value.rightDelim==null){N=b(t,[\"mclose\"])}else{N=s.customSizedDelim(e.value.rightDelim,T,true,t.withStyle(r),e.mode,[\"mclose\"])}return p([\"mord\",t.style.reset(),r.cls()],[A,p([\"mfrac\"],[x]),N],t)};var k=function(e,t){var r=e.number;if(e.unit===\"ex\"){r*=t.metrics.emPerEx}else if(e.unit===\"mu\"){r/=18}return r};w.array=function(e,t){var r;var i;var s=e.value.body.length;var l=0;var h=new Array(s);var c=t.style;var m=1/o.metrics.ptPerEm;var f=5*m;var v=12*m;var d=u.deflt(e.value.arraystretch,1);var g=d*v;var y=.7*g;var x=.3*g;var b=0;for(r=0;r<e.value.body.length;++r){var w=e.value.body[r];var S=y;var M=x;if(l<w.length){l=w.length}var T=new Array(w.length);for(i=0;i<w.length;++i){var A=z(w[i],t);if(M<A.depth){M=A.depth}if(S<A.height){S=A.height}T[i]=A}var N=0;if(e.value.rowGaps[r]){N=k(e.value.rowGaps[r].value,c);if(N>0){N+=x;if(M<N){M=N}N=0}}T.height=S;T.depth=M;b+=S;T.pos=b;b+=M+N;h[r]=T}var q=b/2+c.metrics.axisHeight;var R=e.value.cols||[];var E=[];var C;var D;for(i=0,D=0;i<l||D<R.length;++i,++D){var O=R[D]||{};var P=true;while(O.type===\"separator\"){if(!P){C=p([\"arraycolsep\"],[]);C.style.width=o.metrics.doubleRuleSep+\"em\";E.push(C)}if(O.separator===\"|\"){var F=p([\"vertical-separator\"],[]);F.style.height=b+\"em\";F.style.verticalAlign=-(b-q)+\"em\";E.push(F)}else{throw new a(\"Invalid separator type: \"+O.separator)}D++;O=R[D]||{};P=false}if(i>=l){continue}var I;if(i>0||e.value.hskipBeforeAndAfter){I=u.deflt(O.pregap,f);if(I!==0){C=p([\"arraycolsep\"],[]);C.style.width=I+\"em\";E.push(C)}}var L=[];for(r=0;r<s;++r){var B=h[r];var G=B[i];if(!G){continue}var V=B.pos-q;G.depth=B.depth;G.height=B.height;L.push({type:\"elem\",elem:G,shift:V})}L=n.makeVList(L,\"individualShift\",null,t);L=p([\"col-align-\"+(O.align||\"c\")],[L]);E.push(L);if(i<l-1||e.value.hskipBeforeAndAfter){I=u.deflt(O.postgap,f);if(I!==0){C=p([\"arraycolsep\"],[]);C.style.width=I+\"em\";E.push(C)}}}h=p([\"mtable\"],E);return p([\"mord\"],[h],t)};w.spacing=function(e,t){if(e.value===\"\\\\ \"||e.value===\"\\\\space\"||e.value===\" \"||e.value===\"~\"){if(e.mode===\"text\"){return n.makeOrd(e,t,\"textord\")}else{return p([\"mspace\"],[n.mathsym(e.value,e.mode,t)],t)}}else{return p([\"mspace\",n.spacingFunctions[e.value].className],[],t)}};w.llap=function(e,t){var r=p([\"inner\"],[z(e.value.body,t.reset())]);var a=p([\"fix\"],[]);return p([\"mord\",\"llap\",t.style.cls()],[r,a],t)};w.rlap=function(e,t){var r=p([\"inner\"],[z(e.value.body,t.reset())]);var a=p([\"fix\"],[]);return p([\"mord\",\"rlap\",t.style.cls()],[r,a],t)};w.op=function(e,t){var r;var a;var s=false;if(e.type===\"supsub\"){r=e.value.sup;a=e.value.sub;e=e.value.base;s=true}var l=t.style;var h=[\"\\\\smallint\"];var c=false;if(l.size===i.DISPLAY.size&&e.value.symbol&&!u.contains(h,e.value.body)){c=true}var m;var f=0;var d=0;if(e.value.symbol){var g=c?\"Size2-Regular\":\"Size1-Regular\";m=n.makeSymbol(e.value.body,g,\"math\",t,[\"mop\",\"op-symbol\",c?\"large-op\":\"small-op\"]);f=(m.height-m.depth)/2-l.metrics.axisHeight*l.sizeMultiplier;d=m.italic}else if(e.value.value){var y=v(e.value.value,t,true);m=p([\"mop\"],y,t)}else{var x=[];for(var b=1;b<e.value.body.length;b++){x.push(n.mathsym(e.value.body[b],e.mode))}m=p([\"mop\"],x,t)}if(s){m=p([],[m]);var w;var k;var S;var M;var T;if(r){T=t.withStyle(l.sup());var A=z(r,T);w=p([l.reset(),l.sup().cls()],[A],T);k=Math.max(o.metrics.bigOpSpacing1,o.metrics.bigOpSpacing3-A.depth)}if(a){T=t.withStyle(l.sub());var N=z(a,T);S=p([l.reset(),l.sub().cls()],[N],T);M=Math.max(o.metrics.bigOpSpacing2,o.metrics.bigOpSpacing4-N.height)}var q;var R;var E;if(!r){R=m.height-f;q=n.makeVList([{type:\"kern\",size:o.metrics.bigOpSpacing5},{type:\"elem\",elem:S},{type:\"kern\",size:M},{type:\"elem\",elem:m}],\"top\",R,t);q.children[0].style.marginLeft=-d+\"em\"}else if(!a){E=m.depth+f;q=n.makeVList([{type:\"elem\",elem:m},{type:\"kern\",size:k},{type:\"elem\",elem:w},{type:\"kern\",size:o.metrics.bigOpSpacing5}],\"bottom\",E,t);q.children[1].style.marginLeft=d+\"em\"}else if(!r&&!a){return m}else{E=o.metrics.bigOpSpacing5+S.height+S.depth+M+m.depth+f;\nq=n.makeVList([{type:\"kern\",size:o.metrics.bigOpSpacing5},{type:\"elem\",elem:S},{type:\"kern\",size:M},{type:\"elem\",elem:m},{type:\"kern\",size:k},{type:\"elem\",elem:w},{type:\"kern\",size:o.metrics.bigOpSpacing5}],\"bottom\",E,t);q.children[0].style.marginLeft=-d+\"em\";q.children[2].style.marginLeft=d+\"em\"}return p([\"mop\",\"op-limits\"],[q],t)}else{if(e.value.symbol){m.style.top=f+\"em\"}return m}};w.mod=function(e,t){var r=[];if(e.value.modType===\"bmod\"){if(!t.style.isTight()){r.push(p([\"mspace\",\"negativemediumspace\"],[],t))}r.push(p([\"mspace\",\"thickspace\"],[],t))}else if(t.style.size===i.DISPLAY.size){r.push(p([\"mspace\",\"quad\"],[],t))}else if(e.value.modType===\"mod\"){r.push(p([\"mspace\",\"twelvemuspace\"],[],t))}else{r.push(p([\"mspace\",\"eightmuspace\"],[],t))}if(e.value.modType===\"pod\"||e.value.modType===\"pmod\"){r.push(n.mathsym(\"(\",e.mode))}if(e.value.modType!==\"pod\"){var a=[n.mathsym(\"m\",e.mode),n.mathsym(\"o\",e.mode),n.mathsym(\"d\",e.mode)];if(e.value.modType===\"bmod\"){r.push(p([\"mbin\"],a,t));r.push(p([\"mspace\",\"thickspace\"],[],t));if(!t.style.isTight()){r.push(p([\"mspace\",\"negativemediumspace\"],[],t))}}else{Array.prototype.push.apply(r,a);r.push(p([\"mspace\",\"sixmuspace\"],[],t))}}if(e.value.value){Array.prototype.push.apply(r,v(e.value.value,t,false))}if(e.value.modType===\"pod\"||e.value.modType===\"pmod\"){r.push(n.mathsym(\")\",e.mode))}return n.makeFragment(r)};w.katex=function(e,t){var r=p([\"k\"],[n.mathsym(\"K\",e.mode)],t);var a=p([\"a\"],[n.mathsym(\"A\",e.mode)],t);a.height=(a.height+.2)*.75;a.depth=(a.height-.2)*.75;var i=p([\"t\"],[n.mathsym(\"T\",e.mode)],t);var s=p([\"e\"],[n.mathsym(\"E\",e.mode)],t);s.height=s.height-.2155;s.depth=s.depth+.2155;var l=p([\"x\"],[n.mathsym(\"X\",e.mode)],t);return p([\"mord\",\"katex-logo\"],[r,a,i,s,l],t)};w.overline=function(e,t){var r=t.style;var a=z(e.value.body,t.withStyle(r.cramp()));var s=o.metrics.defaultRuleThickness/r.sizeMultiplier;var l=p([r.reset(),i.TEXT.cls(),\"overline-line\"]);l.height=s;l.maxFontSize=1;var u=n.makeVList([{type:\"elem\",elem:a},{type:\"kern\",size:3*s},{type:\"elem\",elem:l},{type:\"kern\",size:s}],\"firstBaseline\",null,t);return p([\"mord\",\"overline\"],[u],t)};w.underline=function(e,t){var r=t.style;var a=z(e.value.body,t);var s=o.metrics.defaultRuleThickness/r.sizeMultiplier;var l=p([r.reset(),i.TEXT.cls(),\"underline-line\"]);l.height=s;l.maxFontSize=1;var u=n.makeVList([{type:\"kern\",size:s},{type:\"elem\",elem:l},{type:\"kern\",size:3*s},{type:\"elem\",elem:a}],\"top\",a.height,t);return p([\"mord\",\"underline\"],[u],t)};w.sqrt=function(e,t){var r=t.style;var a=z(e.value.body,t.withStyle(r.cramp()));var l=o.metrics.defaultRuleThickness/r.sizeMultiplier;var u=p([r.reset(),i.TEXT.cls(),\"sqrt-line\"],[],t);u.height=l;u.maxFontSize=1;var h=l;if(r.id<i.TEXT.id){h=r.metrics.xHeight}var c=l+h/4;var m=(a.height+a.depth)*r.sizeMultiplier;var f=m+c+l;var v=p([\"sqrt-sign\"],[s.customSizedDelim(\"\\\\surd\",f,false,t,e.mode)],t);var d=v.height+v.depth-l;if(d>a.height+a.depth+c){c=(c+d-a.height-a.depth)/2}var g=-(a.height+c+l)+v.height;v.style.top=g+\"em\";v.height-=g;v.depth+=g;var y;if(a.height===0&&a.depth===0){y=p()}else{y=n.makeVList([{type:\"elem\",elem:a},{type:\"kern\",size:c},{type:\"elem\",elem:u},{type:\"kern\",size:l}],\"firstBaseline\",null,t)}if(!e.value.index){return p([\"mord\",\"sqrt\"],[v,y],t)}else{var x=t.withStyle(i.SCRIPTSCRIPT);var b=z(e.value.index,x);var w=p([r.reset(),i.SCRIPTSCRIPT.cls()],[b],x);var k=Math.max(v.height,y.height);var S=Math.max(v.depth,y.depth);var M=.6*(k-S);var T=n.makeVList([{type:\"elem\",elem:w}],\"shift\",-M,t);var A=p([\"root\"],[T]);return p([\"mord\",\"sqrt\"],[A,v,y],t)}};w.sizing=function(e,t){var r=v(e.value.value,t.withSize(e.value.size),false);var a=t.style;var i=n.sizingMultiplier[e.value.size];i=i*a.sizeMultiplier;for(var s=0;s<r.length;s++){var l=u.indexOf(r[s].classes,\"sizing\");if(l<0){r[s].classes.push(\"sizing\",\"reset-\"+t.size,e.value.size,a.cls());r[s].maxFontSize=i}else if(r[s].classes[l+1]===\"reset-\"+e.value.size){r[s].classes[l+1]=\"reset-\"+t.size}}return n.makeFragment(r)};w.styling=function(e,t){var r={display:i.DISPLAY,text:i.TEXT,script:i.SCRIPT,scriptscript:i.SCRIPTSCRIPT};var a=r[e.value.style];var s=t.withStyle(a);var l=v(e.value.value,s,false);for(var o=0;o<l.length;o++){var p=u.indexOf(l[o].classes,a.reset());if(p<0){l[o].classes.push(t.style.reset(),a.cls())}else{l[o].classes[p]=t.style.reset()}}return new n.makeFragment(l)};w.font=function(e,t){var r=e.value.font;return z(e.value.body,t.withFont(r))};w.delimsizing=function(e,t){var r=e.value.value;if(r===\".\"){return p([e.value.mclass])}return s.sizedDelim(r,e.value.size,t,e.mode,[e.value.mclass])};w.leftright=function(e,t){var r=v(e.value.body,t.reset(),true);var a=0;var i=0;var n=false;for(var l=0;l<r.length;l++){if(r[l].isMiddle){n=true}else{a=Math.max(r[l].height,a);i=Math.max(r[l].depth,i)}}var o=t.style;a*=o.sizeMultiplier;i*=o.sizeMultiplier;var u;if(e.value.left===\".\"){u=b(t,[\"mopen\"])}else{u=s.leftRightDelim(e.value.left,a,i,t,e.mode,[\"mopen\"])}r.unshift(u);if(n){for(l=1;l<r.length;l++){if(r[l].isMiddle){r[l]=s.leftRightDelim(r[l].isMiddle.value,a,i,r[l].isMiddle.options,e.mode,[])}}}var h;if(e.value.right===\".\"){h=b(t,[\"mclose\"])}else{h=s.leftRightDelim(e.value.right,a,i,t,e.mode,[\"mclose\"])}r.push(h);return p([\"minner\",o.cls()],r,t)};w.middle=function(e,t){var r;if(e.value.value===\".\"){r=b(t,[])}else{r=s.sizedDelim(e.value.value,1,t,e.mode,[]);r.isMiddle={value:e.value.value,options:t}}return r};w.rule=function(e,t){var r=p([\"mord\",\"rule\"],[],t);var a=t.style;var i=0;if(e.value.shift){i=k(e.value.shift,a)}var n=k(e.value.width,a);var s=k(e.value.height,a);i/=a.sizeMultiplier;n/=a.sizeMultiplier;s/=a.sizeMultiplier;r.style.borderRightWidth=n+\"em\";r.style.borderTopWidth=s+\"em\";r.style.bottom=i+\"em\";r.width=n;r.height=s+i;r.depth=-i;return r};w.kern=function(e,t){var r=p([\"mord\",\"rule\"],[],t);var a=t.style;var i=0;if(e.value.dimension){i=k(e.value.dimension,a)}i/=a.sizeMultiplier;r.style.marginLeft=i+\"em\";return r};w.accent=function(e,t){var r=e.value.base;var a=t.style;var i;if(e.type===\"supsub\"){var s=e;e=s.value.base;r=e.value.base;s.value.base=r;i=z(s,t.reset())}var l=z(r,t.withStyle(a.cramp()));var o;if(x(r)){var u=y(r);var h=z(u,t.withStyle(a.cramp()));o=h.skew}else{o=0}var c=Math.min(l.height,a.metrics.xHeight);var m=n.makeSymbol(e.value.accent,\"Main-Regular\",\"math\",t);m.italic=0;var f=e.value.accent===\"\\\\vec\"?\"accent-vec\":null;var v=p([\"accent-body\",f],[p([],[m])]);v=n.makeVList([{type:\"elem\",elem:l},{type:\"kern\",size:-c},{type:\"elem\",elem:v}],\"firstBaseline\",null,t);v.children[1].style.marginLeft=2*o+\"em\";var d=p([\"mord\",\"accent\"],[v],t);if(i){i.children[0]=d;i.height=Math.max(d.height,i.height);i.classes[0]=\"mord\";return i}else{return d}};w.phantom=function(e,t){var r=v(e.value.value,t.withPhantom(),false);return new n.makeFragment(r)};w.mclass=function(e,t){var r=v(e.value.value,t,true);return p([e.value.mclass],r,t)};var z=function(e,t){if(!e){return p()}if(w[e.type]){var r=w[e.type](e,t);var i;if(t.style!==t.parentStyle){i=t.style.sizeMultiplier/t.parentStyle.sizeMultiplier;r.height*=i;r.depth*=i}if(t.size!==t.parentSize){i=n.sizingMultiplier[t.size]/n.sizingMultiplier[t.parentSize];r.height*=i;r.depth*=i}return r}else{throw new a(\"Got group of unknown type: '\"+e.type+\"'\")}};var S=function(e,t){e=JSON.parse(JSON.stringify(e));var r=v(e,t,true);var a=p([\"base\",t.style.cls()],r,t);var i=p([\"strut\"]);var n=p([\"strut\",\"bottom\"]);i.style.height=a.height+\"em\";n.style.height=a.height+a.depth+\"em\";n.style.verticalAlign=-a.depth+\"em\";var s=p([\"katex-html\"],[i,n,a]);s.setAttribute(\"aria-hidden\",\"true\");return s};t.exports=S},{\"./ParseError\":6,\"./Style\":9,\"./buildCommon\":10,\"./delimiter\":14,\"./domTree\":15,\"./fontMetrics\":17,\"./utils\":25}],12:[function(e,t,r){var a=e(\"./buildCommon\");var i=e(\"./fontMetrics\");var n=e(\"./mathMLTree\");var s=e(\"./ParseError\");var l=e(\"./symbols\");var o=e(\"./utils\");var u=a.makeSpan;var p=a.fontMap;var h=function(e,t){if(l[t][e]&&l[t][e].replace){e=l[t][e].replace}return new n.TextNode(e)};var c=function(e,t){var r=t.font;if(!r){return null}var a=e.mode;if(r===\"mathit\"){return\"italic\"}var n=e.value;if(o.contains([\"\\\\imath\",\"\\\\jmath\"],n)){return null}if(l[a][n]&&l[a][n].replace){n=l[a][n].replace}var s=p[r].fontName;if(i.getCharacterMetrics(n,s)){return p[t.font].variant}return null};var m={};m.mathord=function(e,t){var r=new n.MathNode(\"mi\",[h(e.value,e.mode)]);var a=c(e,t);if(a){r.setAttribute(\"mathvariant\",a)}return r};m.textord=function(e,t){var r=h(e.value,e.mode);var a=c(e,t)||\"normal\";var i;if(/[0-9]/.test(e.value)){i=new n.MathNode(\"mn\",[r]);if(t.font){i.setAttribute(\"mathvariant\",a)}}else{i=new n.MathNode(\"mi\",[r]);i.setAttribute(\"mathvariant\",a)}return i};m.bin=function(e){var t=new n.MathNode(\"mo\",[h(e.value,e.mode)]);return t};m.rel=function(e){var t=new n.MathNode(\"mo\",[h(e.value,e.mode)]);return t};m.open=function(e){var t=new n.MathNode(\"mo\",[h(e.value,e.mode)]);return t};m.close=function(e){var t=new n.MathNode(\"mo\",[h(e.value,e.mode)]);return t};m.inner=function(e){var t=new n.MathNode(\"mo\",[h(e.value,e.mode)]);return t};m.punct=function(e){var t=new n.MathNode(\"mo\",[h(e.value,e.mode)]);t.setAttribute(\"separator\",\"true\");return t};m.ordgroup=function(e,t){var r=f(e.value,t);var a=new n.MathNode(\"mrow\",r);return a};m.text=function(e,t){var r=f(e.value.body,t);var a=new n.MathNode(\"mtext\",r);return a};m.color=function(e,t){var r=f(e.value.value,t);var a=new n.MathNode(\"mstyle\",r);a.setAttribute(\"mathcolor\",e.value.color);return a};m.supsub=function(e,t){var r=[v(e.value.base,t)];if(e.value.sub){r.push(v(e.value.sub,t))}if(e.value.sup){r.push(v(e.value.sup,t))}var a;if(!e.value.sub){a=\"msup\"}else if(!e.value.sup){a=\"msub\"}else{a=\"msubsup\"}var i=new n.MathNode(a,r);return i};m.genfrac=function(e,t){var r=new n.MathNode(\"mfrac\",[v(e.value.numer,t),v(e.value.denom,t)]);if(!e.value.hasBarLine){r.setAttribute(\"linethickness\",\"0px\")}if(e.value.leftDelim!=null||e.value.rightDelim!=null){var a=[];if(e.value.leftDelim!=null){var i=new n.MathNode(\"mo\",[new n.TextNode(e.value.leftDelim)]);i.setAttribute(\"fence\",\"true\");a.push(i)}a.push(r);if(e.value.rightDelim!=null){var s=new n.MathNode(\"mo\",[new n.TextNode(e.value.rightDelim)]);s.setAttribute(\"fence\",\"true\");a.push(s)}var l=new n.MathNode(\"mrow\",a);return l}return r};m.array=function(e,t){return new n.MathNode(\"mtable\",e.value.body.map(function(e){return new n.MathNode(\"mtr\",e.map(function(e){return new n.MathNode(\"mtd\",[v(e,t)])}))}))};m.sqrt=function(e,t){var r;if(e.value.index){r=new n.MathNode(\"mroot\",[v(e.value.body,t),v(e.value.index,t)])}else{r=new n.MathNode(\"msqrt\",[v(e.value.body,t)])}return r};m.leftright=function(e,t){var r=f(e.value.body,t);if(e.value.left!==\".\"){var a=new n.MathNode(\"mo\",[h(e.value.left,e.mode)]);a.setAttribute(\"fence\",\"true\");r.unshift(a)}if(e.value.right!==\".\"){var i=new n.MathNode(\"mo\",[h(e.value.right,e.mode)]);i.setAttribute(\"fence\",\"true\");r.push(i)}var s=new n.MathNode(\"mrow\",r);return s};m.middle=function(e,t){var r=new n.MathNode(\"mo\",[h(e.value.middle,e.mode)]);r.setAttribute(\"fence\",\"true\");return r};m.accent=function(e,t){var r=new n.MathNode(\"mo\",[h(e.value.accent,e.mode)]);var a=new n.MathNode(\"mover\",[v(e.value.base,t),r]);a.setAttribute(\"accent\",\"true\");return a};m.spacing=function(e){var t;if(e.value===\"\\\\ \"||e.value===\"\\\\space\"||e.value===\" \"||e.value===\"~\"){t=new n.MathNode(\"mtext\",[new n.TextNode(\"\\xa0\")])}else{t=new n.MathNode(\"mspace\");t.setAttribute(\"width\",a.spacingFunctions[e.value].size)}return t};m.op=function(e,t){var r;if(e.value.symbol){r=new n.MathNode(\"mo\",[h(e.value.body,e.mode)])}else if(e.value.value){r=new n.MathNode(\"mo\",f(e.value.value,t))}else{r=new n.MathNode(\"mi\",[new n.TextNode(e.value.body.slice(1))])}return r};m.mod=function(e,t){var r=[];if(e.value.modType===\"pod\"||e.value.modType===\"pmod\"){r.push(new n.MathNode(\"mo\",[h(\"(\",e.mode)]))}if(e.value.modType!==\"pod\"){r.push(new n.MathNode(\"mo\",[h(\"mod\",e.mode)]))}if(e.value.value){var a=new n.MathNode(\"mspace\");a.setAttribute(\"width\",\"0.333333em\");r.push(a);r=r.concat(f(e.value.value,t))}if(e.value.modType===\"pod\"||e.value.modType===\"pmod\"){r.push(new n.MathNode(\"mo\",[h(\")\",e.mode)]))}return new n.MathNode(\"mo\",r)};m.katex=function(e){var t=new n.MathNode(\"mtext\",[new n.TextNode(\"KaTeX\")]);return t};m.font=function(e,t){var r=e.value.font;return v(e.value.body,t.withFont(r))};m.delimsizing=function(e){var t=[];if(e.value.value!==\".\"){t.push(h(e.value.value,e.mode))}var r=new n.MathNode(\"mo\",t);if(e.value.mclass===\"mopen\"||e.value.mclass===\"mclose\"){r.setAttribute(\"fence\",\"true\")}else{r.setAttribute(\"fence\",\"false\")}return r};m.styling=function(e,t){var r=f(e.value.value,t);var a=new n.MathNode(\"mstyle\",r);var i={display:[\"0\",\"true\"],text:[\"0\",\"false\"],script:[\"1\",\"false\"],scriptscript:[\"2\",\"false\"]};var s=i[e.value.style];a.setAttribute(\"scriptlevel\",s[0]);a.setAttribute(\"displaystyle\",s[1]);return a};m.sizing=function(e,t){var r=f(e.value.value,t);var i=new n.MathNode(\"mstyle\",r);i.setAttribute(\"mathsize\",a.sizingMultiplier[e.value.size]+\"em\");return i};m.overline=function(e,t){var r=new n.MathNode(\"mo\",[new n.TextNode(\"\\u203e\")]);r.setAttribute(\"stretchy\",\"true\");var a=new n.MathNode(\"mover\",[v(e.value.body,t),r]);a.setAttribute(\"accent\",\"true\");return a};m.underline=function(e,t){var r=new n.MathNode(\"mo\",[new n.TextNode(\"\\u203e\")]);r.setAttribute(\"stretchy\",\"true\");var a=new n.MathNode(\"munder\",[v(e.value.body,t),r]);a.setAttribute(\"accentunder\",\"true\");return a};m.rule=function(e){var t=new n.MathNode(\"mrow\");return t};m.kern=function(e){var t=new n.MathNode(\"mrow\");return t};m.llap=function(e,t){var r=new n.MathNode(\"mpadded\",[v(e.value.body,t)]);r.setAttribute(\"lspace\",\"-1width\");r.setAttribute(\"width\",\"0px\");return r};m.rlap=function(e,t){var r=new n.MathNode(\"mpadded\",[v(e.value.body,t)]);r.setAttribute(\"width\",\"0px\");return r};m.phantom=function(e,t){var r=f(e.value.value,t);return new n.MathNode(\"mphantom\",r)};m.mclass=function(e,t){var r=f(e.value.value,t);return new n.MathNode(\"mstyle\",r)};var f=function(e,t){var r=[];for(var a=0;a<e.length;a++){var i=e[a];r.push(v(i,t))}return r};var v=function(e,t){if(!e){return new n.MathNode(\"mrow\")}if(m[e.type]){return m[e.type](e,t)}else{throw new s(\"Got group of unknown type: '\"+e.type+\"'\")}};var d=function(e,t,r){var a=f(e,r);var i=new n.MathNode(\"mrow\",a);var s=new n.MathNode(\"annotation\",[new n.TextNode(t)]);s.setAttribute(\"encoding\",\"application/x-tex\");var l=new n.MathNode(\"semantics\",[i,s]);var o=new n.MathNode(\"math\",[l]);return u([\"katex-mathml\"],[o])};t.exports=d},{\"./ParseError\":6,\"./buildCommon\":10,\"./fontMetrics\":17,\"./mathMLTree\":20,\"./symbols\":23,\"./utils\":25}],13:[function(e,t,r){var a=e(\"./buildHTML\");var i=e(\"./buildMathML\");var n=e(\"./buildCommon\");var s=e(\"./Options\");var l=e(\"./Settings\");var o=e(\"./Style\");var u=n.makeSpan;var p=function(e,t,r){r=r||new l({});var n=o.TEXT;if(r.displayMode){n=o.DISPLAY}var p=new s({style:n,size:\"size5\"});var h=i(e,t,p);var c=a(e,p);var m=u([\"katex\"],[h,c]);if(r.displayMode){return u([\"katex-display\"],[m])}else{return m}};t.exports=p},{\"./Options\":5,\"./Settings\":8,\"./Style\":9,\"./buildCommon\":10,\"./buildHTML\":11,\"./buildMathML\":12}],14:[function(e,t,r){var a=e(\"./ParseError\");var i=e(\"./Style\");var n=e(\"./buildCommon\");var s=e(\"./fontMetrics\");var l=e(\"./symbols\");var o=e(\"./utils\");var u=n.makeSpan;var p=function(e,t){if(l.math[e]&&l.math[e].replace){return s.getCharacterMetrics(l.math[e].replace,t)}else{return s.getCharacterMetrics(e,t)}};var h=function(e,t,r,a){return n.makeSymbol(e,\"Size\"+t+\"-Regular\",r,a)};var c=function(e,t,r,a){a=a||[];var i=u(a.concat([\"style-wrap\",r.style.reset(),t.cls()]),[e],r);var n=t.sizeMultiplier/r.style.sizeMultiplier;i.height*=n;i.depth*=n;i.maxFontSize=t.sizeMultiplier;return i};var m=function(e,t,r,a,i,s){var l=n.makeSymbol(e,\"Main-Regular\",i,a);var o=c(l,t,a,s);if(r){var u=(1-a.style.sizeMultiplier/t.sizeMultiplier)*a.style.metrics.axisHeight;o.style.top=u+\"em\";o.height-=u;o.depth+=u}return o};var f=function(e,t,r,a,n,s){var l=h(e,t,n,a);var o=c(u([\"delimsizing\",\"size\"+t],[l],a),i.TEXT,a,s);if(r){var p=(1-a.style.sizeMultiplier)*a.style.metrics.axisHeight;o.style.top=p+\"em\";o.height-=p;o.depth+=p}return o};var v=function(e,t,r){var a;if(t===\"Size1-Regular\"){a=\"delim-size1\"}else if(t===\"Size4-Regular\"){a=\"delim-size4\"}var i=u([\"delimsizinginner\",a],[u([],[n.makeSymbol(e,t,r)])]);return{type:\"elem\",elem:i}};var d=function(e,t,r,a,s,l){var o;var h;var m;var f;o=m=f=e;h=null;var d=\"Size1-Regular\";if(e===\"\\\\uparrow\"){m=f=\"\\u23d0\"}else if(e===\"\\\\Uparrow\"){m=f=\"\\u2016\"}else if(e===\"\\\\downarrow\"){o=m=\"\\u23d0\"}else if(e===\"\\\\Downarrow\"){o=m=\"\\u2016\"}else if(e===\"\\\\updownarrow\"){o=\"\\\\uparrow\";m=\"\\u23d0\";f=\"\\\\downarrow\"}else if(e===\"\\\\Updownarrow\"){o=\"\\\\Uparrow\";m=\"\\u2016\";f=\"\\\\Downarrow\"}else if(e===\"[\"||e===\"\\\\lbrack\"){o=\"\\u23a1\";m=\"\\u23a2\";f=\"\\u23a3\";d=\"Size4-Regular\"}else if(e===\"]\"||e===\"\\\\rbrack\"){o=\"\\u23a4\";m=\"\\u23a5\";f=\"\\u23a6\";d=\"Size4-Regular\"}else if(e===\"\\\\lfloor\"){m=o=\"\\u23a2\";f=\"\\u23a3\";d=\"Size4-Regular\"}else if(e===\"\\\\lceil\"){o=\"\\u23a1\";m=f=\"\\u23a2\";d=\"Size4-Regular\"}else if(e===\"\\\\rfloor\"){m=o=\"\\u23a5\";f=\"\\u23a6\";d=\"Size4-Regular\"}else if(e===\"\\\\rceil\"){o=\"\\u23a4\";m=f=\"\\u23a5\";d=\"Size4-Regular\"}else if(e===\"(\"){o=\"\\u239b\";m=\"\\u239c\";f=\"\\u239d\";d=\"Size4-Regular\"}else if(e===\")\"){o=\"\\u239e\";m=\"\\u239f\";f=\"\\u23a0\";d=\"Size4-Regular\"}else if(e===\"\\\\{\"||e===\"\\\\lbrace\"){o=\"\\u23a7\";h=\"\\u23a8\";f=\"\\u23a9\";m=\"\\u23aa\";d=\"Size4-Regular\"}else if(e===\"\\\\}\"||e===\"\\\\rbrace\"){o=\"\\u23ab\";h=\"\\u23ac\";f=\"\\u23ad\";m=\"\\u23aa\";d=\"Size4-Regular\"}else if(e===\"\\\\lgroup\"){o=\"\\u23a7\";f=\"\\u23a9\";m=\"\\u23aa\";d=\"Size4-Regular\"}else if(e===\"\\\\rgroup\"){o=\"\\u23ab\";f=\"\\u23ad\";m=\"\\u23aa\";d=\"Size4-Regular\"}else if(e===\"\\\\lmoustache\"){o=\"\\u23a7\";f=\"\\u23ad\";m=\"\\u23aa\";d=\"Size4-Regular\"}else if(e===\"\\\\rmoustache\"){o=\"\\u23ab\";f=\"\\u23a9\";m=\"\\u23aa\";d=\"Size4-Regular\"}else if(e===\"\\\\surd\"){o=\"\\ue001\";f=\"\\u23b7\";m=\"\\ue000\";d=\"Size4-Regular\"}var g=p(o,d);var y=g.height+g.depth;var x=p(m,d);var b=x.height+x.depth;var w=p(f,d);var k=w.height+w.depth;var z=0;var S=1;if(h!==null){var M=p(h,d);z=M.height+M.depth;S=2}var T=y+k+z;var A=Math.ceil((t-T)/(S*b));var N=T+A*S*b;var q=a.style.metrics.axisHeight;if(r){q*=a.style.sizeMultiplier}var R=N/2-q;var E=[];E.push(v(f,d,s));var C;if(h===null){for(C=0;C<A;C++){E.push(v(m,d,s))}}else{for(C=0;C<A;C++){E.push(v(m,d,s))}E.push(v(h,d,s));for(C=0;C<A;C++){E.push(v(m,d,s))}}E.push(v(o,d,s));var D=n.makeVList(E,\"bottom\",R,a);return c(u([\"delimsizing\",\"mult\"],[D],a),i.TEXT,a,l)};var g=[\"(\",\")\",\"[\",\"\\\\lbrack\",\"]\",\"\\\\rbrack\",\"\\\\{\",\"\\\\lbrace\",\"\\\\}\",\"\\\\rbrace\",\"\\\\lfloor\",\"\\\\rfloor\",\"\\\\lceil\",\"\\\\rceil\",\"\\\\surd\"];var y=[\"\\\\uparrow\",\"\\\\downarrow\",\"\\\\updownarrow\",\"\\\\Uparrow\",\"\\\\Downarrow\",\"\\\\Updownarrow\",\"|\",\"\\\\|\",\"\\\\vert\",\"\\\\Vert\",\"\\\\lvert\",\"\\\\rvert\",\"\\\\lVert\",\"\\\\rVert\",\"\\\\lgroup\",\"\\\\rgroup\",\"\\\\lmoustache\",\"\\\\rmoustache\"];var x=[\"<\",\">\",\"\\\\langle\",\"\\\\rangle\",\"/\",\"\\\\backslash\",\"\\\\lt\",\"\\\\gt\"];var b=[0,1.2,1.8,2.4,3];var w=function(e,t,r,i,n){if(e===\"<\"||e===\"\\\\lt\"){e=\"\\\\langle\"}else if(e===\">\"||e===\"\\\\gt\"){e=\"\\\\rangle\"}if(o.contains(g,e)||o.contains(x,e)){return f(e,t,false,r,i,n)}else if(o.contains(y,e)){return d(e,b[t],false,r,i,n)}else{throw new a(\"Illegal delimiter: '\"+e+\"'\")}};var k=[{type:\"small\",style:i.SCRIPTSCRIPT},{type:\"small\",style:i.SCRIPT},{type:\"small\",style:i.TEXT},{type:\"large\",size:1},{type:\"large\",size:2},{type:\"large\",size:3},{type:\"large\",size:4}];var z=[{type:\"small\",style:i.SCRIPTSCRIPT},{type:\"small\",style:i.SCRIPT},{type:\"small\",style:i.TEXT},{type:\"stack\"}];var S=[{type:\"small\",style:i.SCRIPTSCRIPT},{type:\"small\",style:i.SCRIPT},{type:\"small\",style:i.TEXT},{type:\"large\",size:1},{type:\"large\",size:2},{type:\"large\",size:3},{type:\"large\",size:4},{type:\"stack\"}];var M=function(e){if(e.type===\"small\"){return\"Main-Regular\"}else if(e.type===\"large\"){return\"Size\"+e.size+\"-Regular\"}else if(e.type===\"stack\"){return\"Size4-Regular\"}};var T=function(e,t,r,a){var i=Math.min(2,3-a.style.size);for(var n=i;n<r.length;n++){if(r[n].type===\"stack\"){break}var s=p(e,M(r[n]));var l=s.height+s.depth;if(r[n].type===\"small\"){l*=r[n].style.sizeMultiplier}if(l>t){return r[n]}}return r[r.length-1]};var A=function(e,t,r,a,i,n){if(e===\"<\"||e===\"\\\\lt\"){e=\"\\\\langle\"}else if(e===\">\"||e===\"\\\\gt\"){e=\"\\\\rangle\"}var s;if(o.contains(x,e)){s=k}else if(o.contains(g,e)){s=S}else{s=z}var l=T(e,t,s,a);if(l.type===\"small\"){return m(e,l.style,r,a,i,n)}else if(l.type===\"large\"){return f(e,l.size,r,a,i,n)}else if(l.type===\"stack\"){return d(e,t,r,a,i,n)}};var N=function(e,t,r,a,i,n){var l=a.style.metrics.axisHeight*a.style.sizeMultiplier;var o=901;var u=5/s.metrics.ptPerEm;var p=Math.max(t-l,r+l);var h=Math.max(p/500*o,2*p-u);return A(e,h,true,a,i,n)};t.exports={sizedDelim:w,customSizedDelim:A,leftRightDelim:N}},{\"./ParseError\":6,\"./Style\":9,\"./buildCommon\":10,\"./fontMetrics\":17,\"./symbols\":23,\"./utils\":25}],15:[function(e,t,r){var a=e(\"./unicodeRegexes\");var i=e(\"./utils\");var n=function(e){e=e.slice();for(var t=e.length-1;t>=0;t--){if(!e[t]){e.splice(t,1)}}return e.join(\" \")};function s(e,t,r){this.classes=e||[];this.children=t||[];this.height=0;this.depth=0;this.maxFontSize=0;this.style={};this.attributes={};if(r){if(r.style.isTight()){this.classes.push(\"mtight\")}if(r.getColor()){this.style.color=r.getColor()}}}s.prototype.setAttribute=function(e,t){this.attributes[e]=t};s.prototype.tryCombine=function(e){return false};s.prototype.toNode=function(){var e=document.createElement(\"span\");e.className=n(this.classes);for(var t in this.style){if(Object.prototype.hasOwnProperty.call(this.style,t)){e.style[t]=this.style[t]}}for(var r in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,r)){e.setAttribute(r,this.attributes[r])}}for(var a=0;a<this.children.length;a++){e.appendChild(this.children[a].toNode())}return e};s.prototype.toMarkup=function(){var e=\"<span\";if(this.classes.length){e+=' class=\"';e+=i.escape(n(this.classes));e+='\"'}var t=\"\";for(var r in this.style){if(this.style.hasOwnProperty(r)){t+=i.hyphenate(r)+\":\"+this.style[r]+\";\"}}if(t){e+=' style=\"'+i.escape(t)+'\"'}for(var a in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,a)){e+=\" \"+a+'=\"';e+=i.escape(this.attributes[a]);e+='\"'}}e+=\">\";for(var s=0;s<this.children.length;s++){e+=this.children[s].toMarkup()}e+=\"</span>\";return e};function l(e){this.children=e||[];this.height=0;this.depth=0;this.maxFontSize=0}l.prototype.toNode=function(){var e=document.createDocumentFragment();for(var t=0;t<this.children.length;t++){e.appendChild(this.children[t].toNode())}return e};l.prototype.toMarkup=function(){var e=\"\";for(var t=0;t<this.children.length;t++){e+=this.children[t].toMarkup()}return e};var o={\"\\xee\":\"\\u0131\\u0302\",\"\\xef\":\"\\u0131\\u0308\",\"\\xed\":\"\\u0131\\u0301\",\"\\xec\":\"\\u0131\\u0300\"};function u(e,t,r,i,n,s,l){this.value=e||\"\";this.height=t||0;this.depth=r||0;this.italic=i||0;this.skew=n||0;this.classes=s||[];this.style=l||{};this.maxFontSize=0;if(a.cjkRegex.test(e)){if(a.hangulRegex.test(e)){this.classes.push(\"hangul_fallback\")}else{this.classes.push(\"cjk_fallback\")}}if(/[\\xee\\xef\\xed\\xec]/.test(this.value)){this.value=o[this.value]}}u.prototype.tryCombine=function(e){if(!e||!(e instanceof u)||this.italic>0||n(this.classes)!==n(e.classes)||this.skew!==e.skew||this.maxFontSize!==e.maxFontSize){return false}for(var t in this.style){if(this.style.hasOwnProperty(t)&&this.style[t]!==e.style[t]){return false}}for(t in e.style){if(e.style.hasOwnProperty(t)&&this.style[t]!==e.style[t]){return false}}this.value+=e.value;this.height=Math.max(this.height,e.height);this.depth=Math.max(this.depth,e.depth);this.italic=e.italic;return true};u.prototype.toNode=function(){var e=document.createTextNode(this.value);var t=null;if(this.italic>0){t=document.createElement(\"span\");t.style.marginRight=this.italic+\"em\"}if(this.classes.length>0){t=t||document.createElement(\"span\");t.className=n(this.classes)}for(var r in this.style){if(this.style.hasOwnProperty(r)){t=t||document.createElement(\"span\");t.style[r]=this.style[r]}}if(t){t.appendChild(e);return t}else{return e}};u.prototype.toMarkup=function(){var e=false;var t=\"<span\";if(this.classes.length){e=true;t+=' class=\"';t+=i.escape(n(this.classes));t+='\"'}var r=\"\";if(this.italic>0){r+=\"margin-right:\"+this.italic+\"em;\"}for(var a in this.style){if(this.style.hasOwnProperty(a)){r+=i.hyphenate(a)+\":\"+this.style[a]+\";\"}}if(r){e=true;t+=' style=\"'+i.escape(r)+'\"'}var s=i.escape(this.value);if(e){t+=\">\";t+=s;t+=\"</span>\";return t}else{return s}};t.exports={span:s,documentFragment:l,symbolNode:u}},{\"./unicodeRegexes\":24,\"./utils\":25}],16:[function(e,t,r){var a=e(\"./parseData\");var i=e(\"./ParseError\");var n=e(\"./Style\");var s=a.ParseNode;function l(e,t){var r=[];var a=[r];var n=[];while(true){var l=e.parseExpression(false,null);r.push(new s(\"ordgroup\",l,e.mode));var o=e.nextToken.text;if(o===\"&\"){e.consume()}else if(o===\"\\\\end\"){break}else if(o===\"\\\\\\\\\"||o===\"\\\\cr\"){var u=e.parseFunction();n.push(u.value.size);r=[];a.push(r)}else{throw new i(\"Expected & or \\\\\\\\ or \\\\end\",e.nextToken)}}t.body=a;t.rowGaps=n;return new s(t.type,t,e.mode)}function o(e,r,a){if(typeof e===\"string\"){e=[e]}if(typeof r===\"number\"){r={numArgs:r}}var i={numArgs:r.numArgs||0,argTypes:r.argTypes,greediness:1,allowedInText:!!r.allowedInText,numOptionalArgs:r.numOptionalArgs||0,handler:a};for(var n=0;n<e.length;++n){t.exports[e[n]]=i}}o(\"array\",{numArgs:1},function(e,t){var r=t[0];r=r.value.map?r.value:[r];var a=r.map(function(e){var t=e.value;if(\"lcr\".indexOf(t)!==-1){return{type:\"align\",align:t}}else if(t===\"|\"){return{type:\"separator\",separator:\"|\"}}throw new i(\"Unknown column alignment: \"+e.value,e)});var n={type:\"array\",cols:a,hskipBeforeAndAfter:true};n=l(e.parser,n);return n});o([\"matrix\",\"pmatrix\",\"bmatrix\",\"Bmatrix\",\"vmatrix\",\"Vmatrix\"],{},function(e){var t={matrix:null,pmatrix:[\"(\",\")\"],bmatrix:[\"[\",\"]\"],Bmatrix:[\"\\\\{\",\"\\\\}\"],vmatrix:[\"|\",\"|\"],Vmatrix:[\"\\\\Vert\",\"\\\\Vert\"]}[e.envName];var r={type:\"array\",hskipBeforeAndAfter:false};r=l(e.parser,r);if(t){r=new s(\"leftright\",{body:[r],left:t[0],right:t[1]},e.mode)}return r});o(\"cases\",{},function(e){var t={type:\"array\",arraystretch:1.2,cols:[{type:\"align\",align:\"l\",pregap:0,postgap:n.TEXT.metrics.quad},{type:\"align\",align:\"l\",pregap:0,postgap:0}]};t=l(e.parser,t);t=new s(\"leftright\",{body:[t],left:\"\\\\{\",right:\".\"},e.mode);return t});o(\"aligned\",{},function(e){var t={type:\"array\",cols:[]};t=l(e.parser,t);var r=new s(\"ordgroup\",[],e.mode);var a=0;t.value.body.forEach(function(e){var t;for(t=1;t<e.length;t+=2){e[t].value.unshift(r)}if(a<e.length){a=e.length}});for(var i=0;i<a;++i){var n=\"r\";var o=0;if(i%2===1){n=\"l\"}else if(i>0){o=2}t.value.cols[i]={type:\"align\",align:n,pregap:o,postgap:0}}return t})},{\"./ParseError\":6,\"./Style\":9,\"./parseData\":21}],17:[function(e,t,r){var a=e(\"./Style\");var i=e(\"./unicodeRegexes\").cjkRegex;var n={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25]};var s=0;var l=0;var o=0;var u=0;var p=.431;var h=1;var c=0;var m=.04;var f=.111;var v=.166;var d=.2;var g=.6;var y=.1;var x=10;var b=2/x;var w={defaultRuleThickness:m,bigOpSpacing1:f,bigOpSpacing2:v,bigOpSpacing3:d,bigOpSpacing4:g,bigOpSpacing5:y,ptPerEm:x,doubleRuleSep:b};var k=e(\"./fontMetricsData\");var z={\"\\xc0\":\"A\",\"\\xc1\":\"A\",\"\\xc2\":\"A\",\"\\xc3\":\"A\",\"\\xc4\":\"A\",\"\\xc5\":\"A\",\"\\xc6\":\"A\",\"\\xc7\":\"C\",\"\\xc8\":\"E\",\"\\xc9\":\"E\",\"\\xca\":\"E\",\"\\xcb\":\"E\",\"\\xcc\":\"I\",\"\\xcd\":\"I\",\"\\xce\":\"I\",\"\\xcf\":\"I\",\"\\xd0\":\"D\",\"\\xd1\":\"N\",\"\\xd2\":\"O\",\"\\xd3\":\"O\",\"\\xd4\":\"O\",\"\\xd5\":\"O\",\"\\xd6\":\"O\",\"\\xd8\":\"O\",\"\\xd9\":\"U\",\"\\xda\":\"U\",\"\\xdb\":\"U\",\"\\xdc\":\"U\",\"\\xdd\":\"Y\",\"\\xde\":\"o\",\"\\xdf\":\"B\",\"\\xe0\":\"a\",\"\\xe1\":\"a\",\"\\xe2\":\"a\",\"\\xe3\":\"a\",\"\\xe4\":\"a\",\"\\xe5\":\"a\",\"\\xe6\":\"a\",\"\\xe7\":\"c\",\"\\xe8\":\"e\",\"\\xe9\":\"e\",\"\\xea\":\"e\",\"\\xeb\":\"e\",\"\\xec\":\"i\",\"\\xed\":\"i\",\"\\xee\":\"i\",\"\\xef\":\"i\",\"\\xf0\":\"d\",\"\\xf1\":\"n\",\"\\xf2\":\"o\",\"\\xf3\":\"o\",\"\\xf4\":\"o\",\"\\xf5\":\"o\",\"\\xf6\":\"o\",\"\\xf8\":\"o\",\"\\xf9\":\"u\",\"\\xfa\":\"u\",\"\\xfb\":\"u\",\"\\xfc\":\"u\",\"\\xfd\":\"y\",\"\\xfe\":\"o\",\"\\xff\":\"y\",\"\\u0410\":\"A\",\"\\u0411\":\"B\",\"\\u0412\":\"B\",\"\\u0413\":\"F\",\"\\u0414\":\"A\",\"\\u0415\":\"E\",\"\\u0416\":\"K\",\"\\u0417\":\"3\",\"\\u0418\":\"N\",\"\\u0419\":\"N\",\"\\u041a\":\"K\",\"\\u041b\":\"N\",\"\\u041c\":\"M\",\"\\u041d\":\"H\",\"\\u041e\":\"O\",\"\\u041f\":\"N\",\"\\u0420\":\"P\",\"\\u0421\":\"C\",\"\\u0422\":\"T\",\"\\u0423\":\"y\",\"\\u0424\":\"O\",\"\\u0425\":\"X\",\"\\u0426\":\"U\",\"\\u0427\":\"h\",\"\\u0428\":\"W\",\"\\u0429\":\"W\",\"\\u042a\":\"B\",\"\\u042b\":\"X\",\"\\u042c\":\"B\",\"\\u042d\":\"3\",\"\\u042e\":\"X\",\"\\u042f\":\"R\",\"\\u0430\":\"a\",\"\\u0431\":\"b\",\"\\u0432\":\"a\",\"\\u0433\":\"r\",\"\\u0434\":\"y\",\"\\u0435\":\"e\",\"\\u0436\":\"m\",\"\\u0437\":\"e\",\"\\u0438\":\"n\",\"\\u0439\":\"n\",\"\\u043a\":\"n\",\"\\u043b\":\"n\",\"\\u043c\":\"m\",\"\\u043d\":\"n\",\"\\u043e\":\"o\",\"\\u043f\":\"n\",\"\\u0440\":\"p\",\"\\u0441\":\"c\",\"\\u0442\":\"o\",\"\\u0443\":\"y\",\"\\u0444\":\"b\",\"\\u0445\":\"x\",\"\\u0446\":\"n\",\"\\u0447\":\"n\",\"\\u0448\":\"w\",\"\\u0449\":\"w\",\"\\u044a\":\"a\",\"\\u044b\":\"m\",\"\\u044c\":\"a\",\"\\u044d\":\"e\",\"\\u044e\":\"m\",\"\\u044f\":\"r\"};var S=function(e,t){var r=e.charCodeAt(0);if(e[0]in z){r=z[e[0]].charCodeAt(0)}else if(i.test(e[0])){r=\"M\".charCodeAt(0)}var a=k[t][r];if(a){return{depth:a[0],height:a[1],italic:a[2],skew:a[3],width:a[4]}}};t.exports={metrics:w,sigmas:n,getCharacterMetrics:S}},{\"./Style\":9,\"./fontMetricsData\":18,\"./unicodeRegexes\":24}],18:[function(e,t,r){t.exports={\"AMS-Regular\":{65:[0,.68889,0,0],66:[0,.68889,0,0],67:[0,.68889,0,0],68:[0,.68889,0,0],69:[0,.68889,0,0],70:[0,.68889,0,0],71:[0,.68889,0,0],72:[0,.68889,0,0],73:[0,.68889,0,0],74:[.16667,.68889,0,0],75:[0,.68889,0,0],76:[0,.68889,0,0],77:[0,.68889,0,0],78:[0,.68889,0,0],79:[.16667,.68889,0,0],80:[0,.68889,0,0],81:[.16667,.68889,0,0],82:[0,.68889,0,0],83:[0,.68889,0,0],84:[0,.68889,0,0],85:[0,.68889,0,0],86:[0,.68889,0,0],87:[0,.68889,0,0],88:[0,.68889,0,0],89:[0,.68889,0,0],90:[0,.68889,0,0],107:[0,.68889,0,0],165:[0,.675,.025,0],174:[.15559,.69224,0,0],240:[0,.68889,0,0],295:[0,.68889,0,0],710:[0,.825,0,0],732:[0,.9,0,0],770:[0,.825,0,0],771:[0,.9,0,0],989:[.08167,.58167,0,0],1008:[0,.43056,.04028,0],8245:[0,.54986,0,0],8463:[0,.68889,0,0],8487:[0,.68889,0,0],8498:[0,.68889,0,0],8502:[0,.68889,0,0],8503:[0,.68889,0,0],8504:[0,.68889,0,0],8513:[0,.68889,0,0],8592:[-.03598,.46402,0,0],8594:[-.03598,.46402,0,0],8602:[-.13313,.36687,0,0],8603:[-.13313,.36687,0,0],8606:[.01354,.52239,0,0],8608:[.01354,.52239,0,0],8610:[.01354,.52239,0,0],8611:[.01354,.52239,0,0],8619:[0,.54986,0,0],8620:[0,.54986,0,0],8621:[-.13313,.37788,0,0],8622:[-.13313,.36687,0,0],8624:[0,.69224,0,0],8625:[0,.69224,0,0],8630:[0,.43056,0,0],8631:[0,.43056,0,0],8634:[.08198,.58198,0,0],8635:[.08198,.58198,0,0],8638:[.19444,.69224,0,0],8639:[.19444,.69224,0,0],8642:[.19444,.69224,0,0],8643:[.19444,.69224,0,0],8644:[.1808,.675,0,0],8646:[.1808,.675,0,0],8647:[.1808,.675,0,0],8648:[.19444,.69224,0,0],8649:[.1808,.675,0,0],8650:[.19444,.69224,0,0],8651:[.01354,.52239,0,0],8652:[.01354,.52239,0,0],8653:[-.13313,.36687,0,0],8654:[-.13313,.36687,0,0],8655:[-.13313,.36687,0,0],8666:[.13667,.63667,0,0],8667:[.13667,.63667,0,0],8669:[-.13313,.37788,0,0],8672:[-.064,.437,0,0],8674:[-.064,.437,0,0],8705:[0,.825,0,0],8708:[0,.68889,0,0],8709:[.08167,.58167,0,0],8717:[0,.43056,0,0],8722:[-.03598,.46402,0,0],8724:[.08198,.69224,0,0],8726:[.08167,.58167,0,0],8733:[0,.69224,0,0],8736:[0,.69224,0,0],8737:[0,.69224,0,0],8738:[.03517,.52239,0,0],8739:[.08167,.58167,0,0],8740:[.25142,.74111,0,0],8741:[.08167,.58167,0,0],8742:[.25142,.74111,0,0],8756:[0,.69224,0,0],8757:[0,.69224,0,0],8764:[-.13313,.36687,0,0],8765:[-.13313,.37788,0,0],8769:[-.13313,.36687,0,0],8770:[-.03625,.46375,0,0],8774:[.30274,.79383,0,0],8776:[-.01688,.48312,0,0],8778:[.08167,.58167,0,0],8782:[.06062,.54986,0,0],8783:[.06062,.54986,0,0],8785:[.08198,.58198,0,0],8786:[.08198,.58198,0,0],8787:[.08198,.58198,0,0],8790:[0,.69224,0,0],8791:[.22958,.72958,0,0],8796:[.08198,.91667,0,0],8806:[.25583,.75583,0,0],\n8807:[.25583,.75583,0,0],8808:[.25142,.75726,0,0],8809:[.25142,.75726,0,0],8812:[.25583,.75583,0,0],8814:[.20576,.70576,0,0],8815:[.20576,.70576,0,0],8816:[.30274,.79383,0,0],8817:[.30274,.79383,0,0],8818:[.22958,.72958,0,0],8819:[.22958,.72958,0,0],8822:[.1808,.675,0,0],8823:[.1808,.675,0,0],8828:[.13667,.63667,0,0],8829:[.13667,.63667,0,0],8830:[.22958,.72958,0,0],8831:[.22958,.72958,0,0],8832:[.20576,.70576,0,0],8833:[.20576,.70576,0,0],8840:[.30274,.79383,0,0],8841:[.30274,.79383,0,0],8842:[.13597,.63597,0,0],8843:[.13597,.63597,0,0],8847:[.03517,.54986,0,0],8848:[.03517,.54986,0,0],8858:[.08198,.58198,0,0],8859:[.08198,.58198,0,0],8861:[.08198,.58198,0,0],8862:[0,.675,0,0],8863:[0,.675,0,0],8864:[0,.675,0,0],8865:[0,.675,0,0],8872:[0,.69224,0,0],8873:[0,.69224,0,0],8874:[0,.69224,0,0],8876:[0,.68889,0,0],8877:[0,.68889,0,0],8878:[0,.68889,0,0],8879:[0,.68889,0,0],8882:[.03517,.54986,0,0],8883:[.03517,.54986,0,0],8884:[.13667,.63667,0,0],8885:[.13667,.63667,0,0],8888:[0,.54986,0,0],8890:[.19444,.43056,0,0],8891:[.19444,.69224,0,0],8892:[.19444,.69224,0,0],8901:[0,.54986,0,0],8903:[.08167,.58167,0,0],8905:[.08167,.58167,0,0],8906:[.08167,.58167,0,0],8907:[0,.69224,0,0],8908:[0,.69224,0,0],8909:[-.03598,.46402,0,0],8910:[0,.54986,0,0],8911:[0,.54986,0,0],8912:[.03517,.54986,0,0],8913:[.03517,.54986,0,0],8914:[0,.54986,0,0],8915:[0,.54986,0,0],8916:[0,.69224,0,0],8918:[.0391,.5391,0,0],8919:[.0391,.5391,0,0],8920:[.03517,.54986,0,0],8921:[.03517,.54986,0,0],8922:[.38569,.88569,0,0],8923:[.38569,.88569,0,0],8926:[.13667,.63667,0,0],8927:[.13667,.63667,0,0],8928:[.30274,.79383,0,0],8929:[.30274,.79383,0,0],8934:[.23222,.74111,0,0],8935:[.23222,.74111,0,0],8936:[.23222,.74111,0,0],8937:[.23222,.74111,0,0],8938:[.20576,.70576,0,0],8939:[.20576,.70576,0,0],8940:[.30274,.79383,0,0],8941:[.30274,.79383,0,0],8994:[.19444,.69224,0,0],8995:[.19444,.69224,0,0],9416:[.15559,.69224,0,0],9484:[0,.69224,0,0],9488:[0,.69224,0,0],9492:[0,.37788,0,0],9496:[0,.37788,0,0],9585:[.19444,.68889,0,0],9586:[.19444,.74111,0,0],9632:[0,.675,0,0],9633:[0,.675,0,0],9650:[0,.54986,0,0],9651:[0,.54986,0,0],9654:[.03517,.54986,0,0],9660:[0,.54986,0,0],9661:[0,.54986,0,0],9664:[.03517,.54986,0,0],9674:[.11111,.69224,0,0],9733:[.19444,.69224,0,0],10003:[0,.69224,0,0],10016:[0,.69224,0,0],10731:[.11111,.69224,0,0],10846:[.19444,.75583,0,0],10877:[.13667,.63667,0,0],10878:[.13667,.63667,0,0],10885:[.25583,.75583,0,0],10886:[.25583,.75583,0,0],10887:[.13597,.63597,0,0],10888:[.13597,.63597,0,0],10889:[.26167,.75726,0,0],10890:[.26167,.75726,0,0],10891:[.48256,.98256,0,0],10892:[.48256,.98256,0,0],10901:[.13667,.63667,0,0],10902:[.13667,.63667,0,0],10933:[.25142,.75726,0,0],10934:[.25142,.75726,0,0],10935:[.26167,.75726,0,0],10936:[.26167,.75726,0,0],10937:[.26167,.75726,0,0],10938:[.26167,.75726,0,0],10949:[.25583,.75583,0,0],10950:[.25583,.75583,0,0],10955:[.28481,.79383,0,0],10956:[.28481,.79383,0,0],57350:[.08167,.58167,0,0],57351:[.08167,.58167,0,0],57352:[.08167,.58167,0,0],57353:[0,.43056,.04028,0],57356:[.25142,.75726,0,0],57357:[.25142,.75726,0,0],57358:[.41951,.91951,0,0],57359:[.30274,.79383,0,0],57360:[.30274,.79383,0,0],57361:[.41951,.91951,0,0],57366:[.25142,.75726,0,0],57367:[.25142,.75726,0,0],57368:[.25142,.75726,0,0],57369:[.25142,.75726,0,0],57370:[.13597,.63597,0,0],57371:[.13597,.63597,0,0]},\"Caligraphic-Regular\":{48:[0,.43056,0,0],49:[0,.43056,0,0],50:[0,.43056,0,0],51:[.19444,.43056,0,0],52:[.19444,.43056,0,0],53:[.19444,.43056,0,0],54:[0,.64444,0,0],55:[.19444,.43056,0,0],56:[0,.64444,0,0],57:[.19444,.43056,0,0],65:[0,.68333,0,.19445],66:[0,.68333,.03041,.13889],67:[0,.68333,.05834,.13889],68:[0,.68333,.02778,.08334],69:[0,.68333,.08944,.11111],70:[0,.68333,.09931,.11111],71:[.09722,.68333,.0593,.11111],72:[0,.68333,.00965,.11111],73:[0,.68333,.07382,0],74:[.09722,.68333,.18472,.16667],75:[0,.68333,.01445,.05556],76:[0,.68333,0,.13889],77:[0,.68333,0,.13889],78:[0,.68333,.14736,.08334],79:[0,.68333,.02778,.11111],80:[0,.68333,.08222,.08334],81:[.09722,.68333,0,.11111],82:[0,.68333,0,.08334],83:[0,.68333,.075,.13889],84:[0,.68333,.25417,0],85:[0,.68333,.09931,.08334],86:[0,.68333,.08222,0],87:[0,.68333,.08222,.08334],88:[0,.68333,.14643,.13889],89:[.09722,.68333,.08222,.08334],90:[0,.68333,.07944,.13889]},\"Fraktur-Regular\":{33:[0,.69141,0,0],34:[0,.69141,0,0],38:[0,.69141,0,0],39:[0,.69141,0,0],40:[.24982,.74947,0,0],41:[.24982,.74947,0,0],42:[0,.62119,0,0],43:[.08319,.58283,0,0],44:[0,.10803,0,0],45:[.08319,.58283,0,0],46:[0,.10803,0,0],47:[.24982,.74947,0,0],48:[0,.47534,0,0],49:[0,.47534,0,0],50:[0,.47534,0,0],51:[.18906,.47534,0,0],52:[.18906,.47534,0,0],53:[.18906,.47534,0,0],54:[0,.69141,0,0],55:[.18906,.47534,0,0],56:[0,.69141,0,0],57:[.18906,.47534,0,0],58:[0,.47534,0,0],59:[.12604,.47534,0,0],61:[-.13099,.36866,0,0],63:[0,.69141,0,0],65:[0,.69141,0,0],66:[0,.69141,0,0],67:[0,.69141,0,0],68:[0,.69141,0,0],69:[0,.69141,0,0],70:[.12604,.69141,0,0],71:[0,.69141,0,0],72:[.06302,.69141,0,0],73:[0,.69141,0,0],74:[.12604,.69141,0,0],75:[0,.69141,0,0],76:[0,.69141,0,0],77:[0,.69141,0,0],78:[0,.69141,0,0],79:[0,.69141,0,0],80:[.18906,.69141,0,0],81:[.03781,.69141,0,0],82:[0,.69141,0,0],83:[0,.69141,0,0],84:[0,.69141,0,0],85:[0,.69141,0,0],86:[0,.69141,0,0],87:[0,.69141,0,0],88:[0,.69141,0,0],89:[.18906,.69141,0,0],90:[.12604,.69141,0,0],91:[.24982,.74947,0,0],93:[.24982,.74947,0,0],94:[0,.69141,0,0],97:[0,.47534,0,0],98:[0,.69141,0,0],99:[0,.47534,0,0],100:[0,.62119,0,0],101:[0,.47534,0,0],102:[.18906,.69141,0,0],103:[.18906,.47534,0,0],104:[.18906,.69141,0,0],105:[0,.69141,0,0],106:[0,.69141,0,0],107:[0,.69141,0,0],108:[0,.69141,0,0],109:[0,.47534,0,0],110:[0,.47534,0,0],111:[0,.47534,0,0],112:[.18906,.52396,0,0],113:[.18906,.47534,0,0],114:[0,.47534,0,0],115:[0,.47534,0,0],116:[0,.62119,0,0],117:[0,.47534,0,0],118:[0,.52396,0,0],119:[0,.52396,0,0],120:[.18906,.47534,0,0],121:[.18906,.47534,0,0],122:[.18906,.47534,0,0],8216:[0,.69141,0,0],8217:[0,.69141,0,0],58112:[0,.62119,0,0],58113:[0,.62119,0,0],58114:[.18906,.69141,0,0],58115:[.18906,.69141,0,0],58116:[.18906,.47534,0,0],58117:[0,.69141,0,0],58118:[0,.62119,0,0],58119:[0,.47534,0,0]},\"Main-Bold\":{33:[0,.69444,0,0],34:[0,.69444,0,0],35:[.19444,.69444,0,0],36:[.05556,.75,0,0],37:[.05556,.75,0,0],38:[0,.69444,0,0],39:[0,.69444,0,0],40:[.25,.75,0,0],41:[.25,.75,0,0],42:[0,.75,0,0],43:[.13333,.63333,0,0],44:[.19444,.15556,0,0],45:[0,.44444,0,0],46:[0,.15556,0,0],47:[.25,.75,0,0],48:[0,.64444,0,0],49:[0,.64444,0,0],50:[0,.64444,0,0],51:[0,.64444,0,0],52:[0,.64444,0,0],53:[0,.64444,0,0],54:[0,.64444,0,0],55:[0,.64444,0,0],56:[0,.64444,0,0],57:[0,.64444,0,0],58:[0,.44444,0,0],59:[.19444,.44444,0,0],60:[.08556,.58556,0,0],61:[-.10889,.39111,0,0],62:[.08556,.58556,0,0],63:[0,.69444,0,0],64:[0,.69444,0,0],65:[0,.68611,0,0],66:[0,.68611,0,0],67:[0,.68611,0,0],68:[0,.68611,0,0],69:[0,.68611,0,0],70:[0,.68611,0,0],71:[0,.68611,0,0],72:[0,.68611,0,0],73:[0,.68611,0,0],74:[0,.68611,0,0],75:[0,.68611,0,0],76:[0,.68611,0,0],77:[0,.68611,0,0],78:[0,.68611,0,0],79:[0,.68611,0,0],80:[0,.68611,0,0],81:[.19444,.68611,0,0],82:[0,.68611,0,0],83:[0,.68611,0,0],84:[0,.68611,0,0],85:[0,.68611,0,0],86:[0,.68611,.01597,0],87:[0,.68611,.01597,0],88:[0,.68611,0,0],89:[0,.68611,.02875,0],90:[0,.68611,0,0],91:[.25,.75,0,0],92:[.25,.75,0,0],93:[.25,.75,0,0],94:[0,.69444,0,0],95:[.31,.13444,.03194,0],96:[0,.69444,0,0],97:[0,.44444,0,0],98:[0,.69444,0,0],99:[0,.44444,0,0],100:[0,.69444,0,0],101:[0,.44444,0,0],102:[0,.69444,.10903,0],103:[.19444,.44444,.01597,0],104:[0,.69444,0,0],105:[0,.69444,0,0],106:[.19444,.69444,0,0],107:[0,.69444,0,0],108:[0,.69444,0,0],109:[0,.44444,0,0],110:[0,.44444,0,0],111:[0,.44444,0,0],112:[.19444,.44444,0,0],113:[.19444,.44444,0,0],114:[0,.44444,0,0],115:[0,.44444,0,0],116:[0,.63492,0,0],117:[0,.44444,0,0],118:[0,.44444,.01597,0],119:[0,.44444,.01597,0],120:[0,.44444,0,0],121:[.19444,.44444,.01597,0],122:[0,.44444,0,0],123:[.25,.75,0,0],124:[.25,.75,0,0],125:[.25,.75,0,0],126:[.35,.34444,0,0],168:[0,.69444,0,0],172:[0,.44444,0,0],175:[0,.59611,0,0],176:[0,.69444,0,0],177:[.13333,.63333,0,0],180:[0,.69444,0,0],215:[.13333,.63333,0,0],247:[.13333,.63333,0,0],305:[0,.44444,0,0],567:[.19444,.44444,0,0],710:[0,.69444,0,0],711:[0,.63194,0,0],713:[0,.59611,0,0],714:[0,.69444,0,0],715:[0,.69444,0,0],728:[0,.69444,0,0],729:[0,.69444,0,0],730:[0,.69444,0,0],732:[0,.69444,0,0],768:[0,.69444,0,0],769:[0,.69444,0,0],770:[0,.69444,0,0],771:[0,.69444,0,0],772:[0,.59611,0,0],774:[0,.69444,0,0],775:[0,.69444,0,0],776:[0,.69444,0,0],778:[0,.69444,0,0],779:[0,.69444,0,0],780:[0,.63194,0,0],824:[.19444,.69444,0,0],915:[0,.68611,0,0],916:[0,.68611,0,0],920:[0,.68611,0,0],923:[0,.68611,0,0],926:[0,.68611,0,0],928:[0,.68611,0,0],931:[0,.68611,0,0],933:[0,.68611,0,0],934:[0,.68611,0,0],936:[0,.68611,0,0],937:[0,.68611,0,0],8211:[0,.44444,.03194,0],8212:[0,.44444,.03194,0],8216:[0,.69444,0,0],8217:[0,.69444,0,0],8220:[0,.69444,0,0],8221:[0,.69444,0,0],8224:[.19444,.69444,0,0],8225:[.19444,.69444,0,0],8242:[0,.55556,0,0],8407:[0,.72444,.15486,0],8463:[0,.69444,0,0],8465:[0,.69444,0,0],8467:[0,.69444,0,0],8472:[.19444,.44444,0,0],8476:[0,.69444,0,0],8501:[0,.69444,0,0],8592:[-.10889,.39111,0,0],8593:[.19444,.69444,0,0],8594:[-.10889,.39111,0,0],8595:[.19444,.69444,0,0],8596:[-.10889,.39111,0,0],8597:[.25,.75,0,0],8598:[.19444,.69444,0,0],8599:[.19444,.69444,0,0],8600:[.19444,.69444,0,0],8601:[.19444,.69444,0,0],8636:[-.10889,.39111,0,0],8637:[-.10889,.39111,0,0],8640:[-.10889,.39111,0,0],8641:[-.10889,.39111,0,0],8656:[-.10889,.39111,0,0],8657:[.19444,.69444,0,0],8658:[-.10889,.39111,0,0],8659:[.19444,.69444,0,0],8660:[-.10889,.39111,0,0],8661:[.25,.75,0,0],8704:[0,.69444,0,0],8706:[0,.69444,.06389,0],8707:[0,.69444,0,0],8709:[.05556,.75,0,0],8711:[0,.68611,0,0],8712:[.08556,.58556,0,0],8715:[.08556,.58556,0,0],8722:[.13333,.63333,0,0],8723:[.13333,.63333,0,0],8725:[.25,.75,0,0],8726:[.25,.75,0,0],8727:[-.02778,.47222,0,0],8728:[-.02639,.47361,0,0],8729:[-.02639,.47361,0,0],8730:[.18,.82,0,0],8733:[0,.44444,0,0],8734:[0,.44444,0,0],8736:[0,.69224,0,0],8739:[.25,.75,0,0],8741:[.25,.75,0,0],8743:[0,.55556,0,0],8744:[0,.55556,0,0],8745:[0,.55556,0,0],8746:[0,.55556,0,0],8747:[.19444,.69444,.12778,0],8764:[-.10889,.39111,0,0],8768:[.19444,.69444,0,0],8771:[.00222,.50222,0,0],8776:[.02444,.52444,0,0],8781:[.00222,.50222,0,0],8801:[.00222,.50222,0,0],8804:[.19667,.69667,0,0],8805:[.19667,.69667,0,0],8810:[.08556,.58556,0,0],8811:[.08556,.58556,0,0],8826:[.08556,.58556,0,0],8827:[.08556,.58556,0,0],8834:[.08556,.58556,0,0],8835:[.08556,.58556,0,0],8838:[.19667,.69667,0,0],8839:[.19667,.69667,0,0],8846:[0,.55556,0,0],8849:[.19667,.69667,0,0],8850:[.19667,.69667,0,0],8851:[0,.55556,0,0],8852:[0,.55556,0,0],8853:[.13333,.63333,0,0],8854:[.13333,.63333,0,0],8855:[.13333,.63333,0,0],8856:[.13333,.63333,0,0],8857:[.13333,.63333,0,0],8866:[0,.69444,0,0],8867:[0,.69444,0,0],8868:[0,.69444,0,0],8869:[0,.69444,0,0],8900:[-.02639,.47361,0,0],8901:[-.02639,.47361,0,0],8902:[-.02778,.47222,0,0],8968:[.25,.75,0,0],8969:[.25,.75,0,0],8970:[.25,.75,0,0],8971:[.25,.75,0,0],8994:[-.13889,.36111,0,0],8995:[-.13889,.36111,0,0],9651:[.19444,.69444,0,0],9657:[-.02778,.47222,0,0],9661:[.19444,.69444,0,0],9667:[-.02778,.47222,0,0],9711:[.19444,.69444,0,0],9824:[.12963,.69444,0,0],9825:[.12963,.69444,0,0],9826:[.12963,.69444,0,0],9827:[.12963,.69444,0,0],9837:[0,.75,0,0],9838:[.19444,.69444,0,0],9839:[.19444,.69444,0,0],10216:[.25,.75,0,0],10217:[.25,.75,0,0],10815:[0,.68611,0,0],10927:[.19667,.69667,0,0],10928:[.19667,.69667,0,0]},\"Main-Italic\":{33:[0,.69444,.12417,0],34:[0,.69444,.06961,0],35:[.19444,.69444,.06616,0],37:[.05556,.75,.13639,0],38:[0,.69444,.09694,0],39:[0,.69444,.12417,0],40:[.25,.75,.16194,0],41:[.25,.75,.03694,0],42:[0,.75,.14917,0],43:[.05667,.56167,.03694,0],44:[.19444,.10556,0,0],45:[0,.43056,.02826,0],46:[0,.10556,0,0],47:[.25,.75,.16194,0],48:[0,.64444,.13556,0],49:[0,.64444,.13556,0],50:[0,.64444,.13556,0],51:[0,.64444,.13556,0],52:[.19444,.64444,.13556,0],53:[0,.64444,.13556,0],54:[0,.64444,.13556,0],55:[.19444,.64444,.13556,0],56:[0,.64444,.13556,0],57:[0,.64444,.13556,0],58:[0,.43056,.0582,0],59:[.19444,.43056,.0582,0],61:[-.13313,.36687,.06616,0],63:[0,.69444,.1225,0],64:[0,.69444,.09597,0],65:[0,.68333,0,0],66:[0,.68333,.10257,0],67:[0,.68333,.14528,0],68:[0,.68333,.09403,0],69:[0,.68333,.12028,0],70:[0,.68333,.13305,0],71:[0,.68333,.08722,0],72:[0,.68333,.16389,0],73:[0,.68333,.15806,0],74:[0,.68333,.14028,0],75:[0,.68333,.14528,0],76:[0,.68333,0,0],77:[0,.68333,.16389,0],78:[0,.68333,.16389,0],79:[0,.68333,.09403,0],80:[0,.68333,.10257,0],81:[.19444,.68333,.09403,0],82:[0,.68333,.03868,0],83:[0,.68333,.11972,0],84:[0,.68333,.13305,0],85:[0,.68333,.16389,0],86:[0,.68333,.18361,0],87:[0,.68333,.18361,0],88:[0,.68333,.15806,0],89:[0,.68333,.19383,0],90:[0,.68333,.14528,0],91:[.25,.75,.1875,0],93:[.25,.75,.10528,0],94:[0,.69444,.06646,0],95:[.31,.12056,.09208,0],97:[0,.43056,.07671,0],98:[0,.69444,.06312,0],99:[0,.43056,.05653,0],100:[0,.69444,.10333,0],101:[0,.43056,.07514,0],102:[.19444,.69444,.21194,0],103:[.19444,.43056,.08847,0],104:[0,.69444,.07671,0],105:[0,.65536,.1019,0],106:[.19444,.65536,.14467,0],107:[0,.69444,.10764,0],108:[0,.69444,.10333,0],109:[0,.43056,.07671,0],110:[0,.43056,.07671,0],111:[0,.43056,.06312,0],112:[.19444,.43056,.06312,0],113:[.19444,.43056,.08847,0],114:[0,.43056,.10764,0],115:[0,.43056,.08208,0],116:[0,.61508,.09486,0],117:[0,.43056,.07671,0],118:[0,.43056,.10764,0],119:[0,.43056,.10764,0],120:[0,.43056,.12042,0],121:[.19444,.43056,.08847,0],122:[0,.43056,.12292,0],126:[.35,.31786,.11585,0],163:[0,.69444,0,0],305:[0,.43056,0,.02778],567:[.19444,.43056,0,.08334],768:[0,.69444,0,0],769:[0,.69444,.09694,0],770:[0,.69444,.06646,0],771:[0,.66786,.11585,0],772:[0,.56167,.10333,0],774:[0,.69444,.10806,0],775:[0,.66786,.11752,0],776:[0,.66786,.10474,0],778:[0,.69444,0,0],779:[0,.69444,.1225,0],780:[0,.62847,.08295,0],915:[0,.68333,.13305,0],916:[0,.68333,0,0],920:[0,.68333,.09403,0],923:[0,.68333,0,0],926:[0,.68333,.15294,0],928:[0,.68333,.16389,0],931:[0,.68333,.12028,0],933:[0,.68333,.11111,0],934:[0,.68333,.05986,0],936:[0,.68333,.11111,0],937:[0,.68333,.10257,0],8211:[0,.43056,.09208,0],8212:[0,.43056,.09208,0],8216:[0,.69444,.12417,0],8217:[0,.69444,.12417,0],8220:[0,.69444,.1685,0],8221:[0,.69444,.06961,0],8463:[0,.68889,0,0]},\"Main-Regular\":{32:[0,0,0,0],33:[0,.69444,0,0],34:[0,.69444,0,0],35:[.19444,.69444,0,0],36:[.05556,.75,0,0],37:[.05556,.75,0,0],38:[0,.69444,0,0],39:[0,.69444,0,0],40:[.25,.75,0,0],41:[.25,.75,0,0],42:[0,.75,0,0],43:[.08333,.58333,0,0],44:[.19444,.10556,0,0],45:[0,.43056,0,0],46:[0,.10556,0,0],47:[.25,.75,0,0],48:[0,.64444,0,0],49:[0,.64444,0,0],50:[0,.64444,0,0],51:[0,.64444,0,0],52:[0,.64444,0,0],53:[0,.64444,0,0],54:[0,.64444,0,0],55:[0,.64444,0,0],56:[0,.64444,0,0],57:[0,.64444,0,0],58:[0,.43056,0,0],59:[.19444,.43056,0,0],60:[.0391,.5391,0,0],61:[-.13313,.36687,0,0],62:[.0391,.5391,0,0],63:[0,.69444,0,0],64:[0,.69444,0,0],65:[0,.68333,0,0],66:[0,.68333,0,0],67:[0,.68333,0,0],68:[0,.68333,0,0],69:[0,.68333,0,0],70:[0,.68333,0,0],71:[0,.68333,0,0],72:[0,.68333,0,0],73:[0,.68333,0,0],74:[0,.68333,0,0],75:[0,.68333,0,0],76:[0,.68333,0,0],77:[0,.68333,0,0],78:[0,.68333,0,0],79:[0,.68333,0,0],80:[0,.68333,0,0],81:[.19444,.68333,0,0],82:[0,.68333,0,0],83:[0,.68333,0,0],84:[0,.68333,0,0],85:[0,.68333,0,0],86:[0,.68333,.01389,0],87:[0,.68333,.01389,0],88:[0,.68333,0,0],89:[0,.68333,.025,0],90:[0,.68333,0,0],91:[.25,.75,0,0],92:[.25,.75,0,0],93:[.25,.75,0,0],94:[0,.69444,0,0],95:[.31,.12056,.02778,0],96:[0,.69444,0,0],97:[0,.43056,0,0],98:[0,.69444,0,0],99:[0,.43056,0,0],100:[0,.69444,0,0],101:[0,.43056,0,0],102:[0,.69444,.07778,0],103:[.19444,.43056,.01389,0],104:[0,.69444,0,0],105:[0,.66786,0,0],106:[.19444,.66786,0,0],107:[0,.69444,0,0],108:[0,.69444,0,0],109:[0,.43056,0,0],110:[0,.43056,0,0],111:[0,.43056,0,0],112:[.19444,.43056,0,0],113:[.19444,.43056,0,0],114:[0,.43056,0,0],115:[0,.43056,0,0],116:[0,.61508,0,0],117:[0,.43056,0,0],118:[0,.43056,.01389,0],119:[0,.43056,.01389,0],120:[0,.43056,0,0],121:[.19444,.43056,.01389,0],122:[0,.43056,0,0],123:[.25,.75,0,0],124:[.25,.75,0,0],125:[.25,.75,0,0],126:[.35,.31786,0,0],160:[0,0,0,0],168:[0,.66786,0,0],172:[0,.43056,0,0],175:[0,.56778,0,0],176:[0,.69444,0,0],177:[.08333,.58333,0,0],180:[0,.69444,0,0],215:[.08333,.58333,0,0],247:[.08333,.58333,0,0],305:[0,.43056,0,0],567:[.19444,.43056,0,0],710:[0,.69444,0,0],711:[0,.62847,0,0],713:[0,.56778,0,0],714:[0,.69444,0,0],715:[0,.69444,0,0],728:[0,.69444,0,0],729:[0,.66786,0,0],730:[0,.69444,0,0],732:[0,.66786,0,0],768:[0,.69444,0,0],769:[0,.69444,0,0],770:[0,.69444,0,0],771:[0,.66786,0,0],772:[0,.56778,0,0],774:[0,.69444,0,0],775:[0,.66786,0,0],776:[0,.66786,0,0],778:[0,.69444,0,0],779:[0,.69444,0,0],780:[0,.62847,0,0],824:[.19444,.69444,0,0],915:[0,.68333,0,0],916:[0,.68333,0,0],920:[0,.68333,0,0],923:[0,.68333,0,0],926:[0,.68333,0,0],928:[0,.68333,0,0],931:[0,.68333,0,0],933:[0,.68333,0,0],934:[0,.68333,0,0],936:[0,.68333,0,0],937:[0,.68333,0,0],8211:[0,.43056,.02778,0],8212:[0,.43056,.02778,0],8216:[0,.69444,0,0],8217:[0,.69444,0,0],8220:[0,.69444,0,0],8221:[0,.69444,0,0],8224:[.19444,.69444,0,0],8225:[.19444,.69444,0,0],8230:[0,.12,0,0],8242:[0,.55556,0,0],8407:[0,.71444,.15382,0],8463:[0,.68889,0,0],8465:[0,.69444,0,0],8467:[0,.69444,0,.11111],8472:[.19444,.43056,0,.11111],8476:[0,.69444,0,0],8501:[0,.69444,0,0],8592:[-.13313,.36687,0,0],8593:[.19444,.69444,0,0],8594:[-.13313,.36687,0,0],8595:[.19444,.69444,0,0],8596:[-.13313,.36687,0,0],8597:[.25,.75,0,0],8598:[.19444,.69444,0,0],8599:[.19444,.69444,0,0],8600:[.19444,.69444,0,0],8601:[.19444,.69444,0,0],8614:[.011,.511,0,0],8617:[.011,.511,0,0],8618:[.011,.511,0,0],8636:[-.13313,.36687,0,0],8637:[-.13313,.36687,0,0],8640:[-.13313,.36687,0,0],8641:[-.13313,.36687,0,0],8652:[.011,.671,0,0],8656:[-.13313,.36687,0,0],8657:[.19444,.69444,0,0],8658:[-.13313,.36687,0,0],8659:[.19444,.69444,0,0],8660:[-.13313,.36687,0,0],8661:[.25,.75,0,0],8704:[0,.69444,0,0],8706:[0,.69444,.05556,.08334],8707:[0,.69444,0,0],8709:[.05556,.75,0,0],8711:[0,.68333,0,0],8712:[.0391,.5391,0,0],8715:[.0391,.5391,0,0],8722:[.08333,.58333,0,0],8723:[.08333,.58333,0,0],8725:[.25,.75,0,0],8726:[.25,.75,0,0],8727:[-.03472,.46528,0,0],8728:[-.05555,.44445,0,0],8729:[-.05555,.44445,0,0],8730:[.2,.8,0,0],8733:[0,.43056,0,0],8734:[0,.43056,0,0],8736:[0,.69224,0,0],8739:[.25,.75,0,0],8741:[.25,.75,0,0],8743:[0,.55556,0,0],8744:[0,.55556,0,0],8745:[0,.55556,0,0],8746:[0,.55556,0,0],8747:[.19444,.69444,.11111,0],8764:[-.13313,.36687,0,0],8768:[.19444,.69444,0,0],8771:[-.03625,.46375,0,0],8773:[-.022,.589,0,0],8776:[-.01688,.48312,0,0],8781:[-.03625,.46375,0,0],8784:[-.133,.67,0,0],8800:[.215,.716,0,0],8801:[-.03625,.46375,0,0],8804:[.13597,.63597,0,0],8805:[.13597,.63597,0,0],8810:[.0391,.5391,0,0],8811:[.0391,.5391,0,0],8826:[.0391,.5391,0,0],8827:[.0391,.5391,0,0],8834:[.0391,.5391,0,0],8835:[.0391,.5391,0,0],8838:[.13597,.63597,0,0],8839:[.13597,.63597,0,0],8846:[0,.55556,0,0],8849:[.13597,.63597,0,0],8850:[.13597,.63597,0,0],8851:[0,.55556,0,0],8852:[0,.55556,0,0],8853:[.08333,.58333,0,0],8854:[.08333,.58333,0,0],8855:[.08333,.58333,0,0],8856:[.08333,.58333,0,0],8857:[.08333,.58333,0,0],8866:[0,.69444,0,0],8867:[0,.69444,0,0],8868:[0,.69444,0,0],8869:[0,.69444,0,0],8872:[.249,.75,0,0],8900:[-.05555,.44445,0,0],8901:[-.05555,.44445,0,0],8902:[-.03472,.46528,0,0],8904:[.005,.505,0,0],8942:[.03,.9,0,0],8943:[-.19,.31,0,0],8945:[-.1,.82,0,0],8968:[.25,.75,0,0],8969:[.25,.75,0,0],8970:[.25,.75,0,0],8971:[.25,.75,0,0],8994:[-.14236,.35764,0,0],8995:[-.14236,.35764,0,0],9136:[.244,.744,0,0],9137:[.244,.744,0,0],9651:[.19444,.69444,0,0],9657:[-.03472,.46528,0,0],9661:[.19444,.69444,0,0],9667:[-.03472,.46528,0,0],9711:[.19444,.69444,0,0],9824:[.12963,.69444,0,0],9825:[.12963,.69444,0,0],9826:[.12963,.69444,0,0],9827:[.12963,.69444,0,0],9837:[0,.75,0,0],9838:[.19444,.69444,0,0],9839:[.19444,.69444,0,0],10216:[.25,.75,0,0],10217:[.25,.75,0,0],10222:[.244,.744,0,0],10223:[.244,.744,0,0],10229:[.011,.511,0,0],10230:[.011,.511,0,0],10231:[.011,.511,0,0],10232:[.024,.525,0,0],10233:[.024,.525,0,0],10234:[.024,.525,0,0],10236:[.011,.511,0,0],10815:[0,.68333,0,0],10927:[.13597,.63597,0,0],10928:[.13597,.63597,0,0]},\"Math-BoldItalic\":{47:[.19444,.69444,0,0],65:[0,.68611,0,0],66:[0,.68611,.04835,0],67:[0,.68611,.06979,0],68:[0,.68611,.03194,0],69:[0,.68611,.05451,0],70:[0,.68611,.15972,0],71:[0,.68611,0,0],72:[0,.68611,.08229,0],73:[0,.68611,.07778,0],74:[0,.68611,.10069,0],75:[0,.68611,.06979,0],76:[0,.68611,0,0],77:[0,.68611,.11424,0],78:[0,.68611,.11424,0],79:[0,.68611,.03194,0],80:[0,.68611,.15972,0],81:[.19444,.68611,0,0],82:[0,.68611,.00421,0],83:[0,.68611,.05382,0],84:[0,.68611,.15972,0],85:[0,.68611,.11424,0],86:[0,.68611,.25555,0],87:[0,.68611,.15972,0],88:[0,.68611,.07778,0],89:[0,.68611,.25555,0],90:[0,.68611,.06979,0],97:[0,.44444,0,0],98:[0,.69444,0,0],99:[0,.44444,0,0],100:[0,.69444,0,0],101:[0,.44444,0,0],102:[.19444,.69444,.11042,0],103:[.19444,.44444,.03704,0],104:[0,.69444,0,0],105:[0,.69326,0,0],106:[.19444,.69326,.0622,0],107:[0,.69444,.01852,0],108:[0,.69444,.0088,0],109:[0,.44444,0,0],110:[0,.44444,0,0],111:[0,.44444,0,0],112:[.19444,.44444,0,0],113:[.19444,.44444,.03704,0],114:[0,.44444,.03194,0],115:[0,.44444,0,0],116:[0,.63492,0,0],117:[0,.44444,0,0],118:[0,.44444,.03704,0],119:[0,.44444,.02778,0],120:[0,.44444,0,0],121:[.19444,.44444,.03704,0],122:[0,.44444,.04213,0],915:[0,.68611,.15972,0],916:[0,.68611,0,0],920:[0,.68611,.03194,0],923:[0,.68611,0,0],926:[0,.68611,.07458,0],928:[0,.68611,.08229,0],931:[0,.68611,.05451,0],933:[0,.68611,.15972,0],934:[0,.68611,0,0],936:[0,.68611,.11653,0],937:[0,.68611,.04835,0],945:[0,.44444,0,0],946:[.19444,.69444,.03403,0],947:[.19444,.44444,.06389,0],948:[0,.69444,.03819,0],949:[0,.44444,0,0],950:[.19444,.69444,.06215,0],951:[.19444,.44444,.03704,0],952:[0,.69444,.03194,0],953:[0,.44444,0,0],954:[0,.44444,0,0],955:[0,.69444,0,0],956:[.19444,.44444,0,0],957:[0,.44444,.06898,0],958:[.19444,.69444,.03021,0],959:[0,.44444,0,0],960:[0,.44444,.03704,0],961:[.19444,.44444,0,0],962:[.09722,.44444,.07917,0],963:[0,.44444,.03704,0],964:[0,.44444,.13472,0],965:[0,.44444,.03704,0],966:[.19444,.44444,0,0],967:[.19444,.44444,0,0],968:[.19444,.69444,.03704,0],969:[0,.44444,.03704,0],977:[0,.69444,0,0],981:[.19444,.69444,0,0],982:[0,.44444,.03194,0],1009:[.19444,.44444,0,0],1013:[0,.44444,0,0]},\"Math-Italic\":{47:[.19444,.69444,0,0],65:[0,.68333,0,.13889],66:[0,.68333,.05017,.08334],67:[0,.68333,.07153,.08334],68:[0,.68333,.02778,.05556],69:[0,.68333,.05764,.08334],70:[0,.68333,.13889,.08334],71:[0,.68333,0,.08334],72:[0,.68333,.08125,.05556],73:[0,.68333,.07847,.11111],74:[0,.68333,.09618,.16667],75:[0,.68333,.07153,.05556],76:[0,.68333,0,.02778],77:[0,.68333,.10903,.08334],78:[0,.68333,.10903,.08334],79:[0,.68333,.02778,.08334],80:[0,.68333,.13889,.08334],81:[.19444,.68333,0,.08334],82:[0,.68333,.00773,.08334],83:[0,.68333,.05764,.08334],84:[0,.68333,.13889,.08334],85:[0,.68333,.10903,.02778],86:[0,.68333,.22222,0],87:[0,.68333,.13889,0],88:[0,.68333,.07847,.08334],89:[0,.68333,.22222,0],90:[0,.68333,.07153,.08334],97:[0,.43056,0,0],98:[0,.69444,0,0],99:[0,.43056,0,.05556],100:[0,.69444,0,.16667],101:[0,.43056,0,.05556],102:[.19444,.69444,.10764,.16667],103:[.19444,.43056,.03588,.02778],104:[0,.69444,0,0],105:[0,.65952,0,0],106:[.19444,.65952,.05724,0],107:[0,.69444,.03148,0],108:[0,.69444,.01968,.08334],109:[0,.43056,0,0],110:[0,.43056,0,0],111:[0,.43056,0,.05556],112:[.19444,.43056,0,.08334],113:[.19444,.43056,.03588,.08334],114:[0,.43056,.02778,.05556],115:[0,.43056,0,.05556],116:[0,.61508,0,.08334],117:[0,.43056,0,.02778],118:[0,.43056,.03588,.02778],119:[0,.43056,.02691,.08334],120:[0,.43056,0,.02778],121:[.19444,.43056,.03588,.05556],122:[0,.43056,.04398,.05556],915:[0,.68333,.13889,.08334],916:[0,.68333,0,.16667],920:[0,.68333,.02778,.08334],923:[0,.68333,0,.16667],926:[0,.68333,.07569,.08334],928:[0,.68333,.08125,.05556],931:[0,.68333,.05764,.08334],933:[0,.68333,.13889,.05556],934:[0,.68333,0,.08334],936:[0,.68333,.11,.05556],937:[0,.68333,.05017,.08334],945:[0,.43056,.0037,.02778],946:[.19444,.69444,.05278,.08334],947:[.19444,.43056,.05556,0],948:[0,.69444,.03785,.05556],949:[0,.43056,0,.08334],950:[.19444,.69444,.07378,.08334],951:[.19444,.43056,.03588,.05556],952:[0,.69444,.02778,.08334],953:[0,.43056,0,.05556],954:[0,.43056,0,0],955:[0,.69444,0,0],956:[.19444,.43056,0,.02778],957:[0,.43056,.06366,.02778],958:[.19444,.69444,.04601,.11111],959:[0,.43056,0,.05556],960:[0,.43056,.03588,0],961:[.19444,.43056,0,.08334],962:[.09722,.43056,.07986,.08334],963:[0,.43056,.03588,0],964:[0,.43056,.1132,.02778],965:[0,.43056,.03588,.02778],966:[.19444,.43056,0,.08334],967:[.19444,.43056,0,.05556],968:[.19444,.69444,.03588,.11111],969:[0,.43056,.03588,0],977:[0,.69444,0,.08334],981:[.19444,.69444,0,.08334],982:[0,.43056,.02778,0],1009:[.19444,.43056,0,.08334],1013:[0,.43056,0,.05556]},\"Math-Regular\":{65:[0,.68333,0,.13889],66:[0,.68333,.05017,.08334],67:[0,.68333,.07153,.08334],68:[0,.68333,.02778,.05556],69:[0,.68333,.05764,.08334],70:[0,.68333,.13889,.08334],71:[0,.68333,0,.08334],72:[0,.68333,.08125,.05556],73:[0,.68333,.07847,.11111],74:[0,.68333,.09618,.16667],75:[0,.68333,.07153,.05556],76:[0,.68333,0,.02778],77:[0,.68333,.10903,.08334],78:[0,.68333,.10903,.08334],79:[0,.68333,.02778,.08334],80:[0,.68333,.13889,.08334],81:[.19444,.68333,0,.08334],82:[0,.68333,.00773,.08334],83:[0,.68333,.05764,.08334],84:[0,.68333,.13889,.08334],85:[0,.68333,.10903,.02778],86:[0,.68333,.22222,0],87:[0,.68333,.13889,0],88:[0,.68333,.07847,.08334],89:[0,.68333,.22222,0],90:[0,.68333,.07153,.08334],97:[0,.43056,0,0],98:[0,.69444,0,0],99:[0,.43056,0,.05556],100:[0,.69444,0,.16667],101:[0,.43056,0,.05556],102:[.19444,.69444,.10764,.16667],103:[.19444,.43056,.03588,.02778],104:[0,.69444,0,0],105:[0,.65952,0,0],106:[.19444,.65952,.05724,0],107:[0,.69444,.03148,0],108:[0,.69444,.01968,.08334],109:[0,.43056,0,0],110:[0,.43056,0,0],111:[0,.43056,0,.05556],112:[.19444,.43056,0,.08334],113:[.19444,.43056,.03588,.08334],114:[0,.43056,.02778,.05556],115:[0,.43056,0,.05556],116:[0,.61508,0,.08334],117:[0,.43056,0,.02778],118:[0,.43056,.03588,.02778],119:[0,.43056,.02691,.08334],120:[0,.43056,0,.02778],121:[.19444,.43056,.03588,.05556],122:[0,.43056,.04398,.05556],915:[0,.68333,.13889,.08334],916:[0,.68333,0,.16667],920:[0,.68333,.02778,.08334],923:[0,.68333,0,.16667],926:[0,.68333,.07569,.08334],928:[0,.68333,.08125,.05556],931:[0,.68333,.05764,.08334],933:[0,.68333,.13889,.05556],934:[0,.68333,0,.08334],936:[0,.68333,.11,.05556],937:[0,.68333,.05017,.08334],945:[0,.43056,.0037,.02778],946:[.19444,.69444,.05278,.08334],947:[.19444,.43056,.05556,0],948:[0,.69444,.03785,.05556],949:[0,.43056,0,.08334],950:[.19444,.69444,.07378,.08334],951:[.19444,.43056,.03588,.05556],952:[0,.69444,.02778,.08334],953:[0,.43056,0,.05556],954:[0,.43056,0,0],955:[0,.69444,0,0],956:[.19444,.43056,0,.02778],957:[0,.43056,.06366,.02778],958:[.19444,.69444,.04601,.11111],959:[0,.43056,0,.05556],960:[0,.43056,.03588,0],961:[.19444,.43056,0,.08334],962:[.09722,.43056,.07986,.08334],963:[0,.43056,.03588,0],964:[0,.43056,.1132,.02778],965:[0,.43056,.03588,.02778],966:[.19444,.43056,0,.08334],967:[.19444,.43056,0,.05556],968:[.19444,.69444,.03588,.11111],969:[0,.43056,.03588,0],977:[0,.69444,0,.08334],981:[.19444,.69444,0,.08334],982:[0,.43056,.02778,0],1009:[.19444,.43056,0,.08334],1013:[0,.43056,0,.05556]},\"SansSerif-Regular\":{33:[0,.69444,0,0],34:[0,.69444,0,0],35:[.19444,.69444,0,0],36:[.05556,.75,0,0],37:[.05556,.75,0,0],38:[0,.69444,0,0],39:[0,.69444,0,0],40:[.25,.75,0,0],41:[.25,.75,0,0],42:[0,.75,0,0],43:[.08333,.58333,0,0],44:[.125,.08333,0,0],45:[0,.44444,0,0],46:[0,.08333,0,0],47:[.25,.75,0,0],48:[0,.65556,0,0],49:[0,.65556,0,0],50:[0,.65556,0,0],51:[0,.65556,0,0],52:[0,.65556,0,0],53:[0,.65556,0,0],54:[0,.65556,0,0],55:[0,.65556,0,0],56:[0,.65556,0,0],57:[0,.65556,0,0],58:[0,.44444,0,0],59:[.125,.44444,0,0],61:[-.13,.37,0,0],63:[0,.69444,0,0],64:[0,.69444,0,0],65:[0,.69444,0,0],66:[0,.69444,0,0],67:[0,.69444,0,0],68:[0,.69444,0,0],69:[0,.69444,0,0],70:[0,.69444,0,0],71:[0,.69444,0,0],72:[0,.69444,0,0],73:[0,.69444,0,0],74:[0,.69444,0,0],75:[0,.69444,0,0],76:[0,.69444,0,0],77:[0,.69444,0,0],78:[0,.69444,0,0],79:[0,.69444,0,0],80:[0,.69444,0,0],81:[.125,.69444,0,0],82:[0,.69444,0,0],83:[0,.69444,0,0],84:[0,.69444,0,0],85:[0,.69444,0,0],86:[0,.69444,.01389,0],87:[0,.69444,.01389,0],88:[0,.69444,0,0],89:[0,.69444,.025,0],90:[0,.69444,0,0],91:[.25,.75,0,0],93:[.25,.75,0,0],94:[0,.69444,0,0],95:[.35,.09444,.02778,0],97:[0,.44444,0,0],98:[0,.69444,0,0],99:[0,.44444,0,0],100:[0,.69444,0,0],101:[0,.44444,0,0],102:[0,.69444,.06944,0],103:[.19444,.44444,.01389,0],104:[0,.69444,0,0],105:[0,.67937,0,0],106:[.19444,.67937,0,0],107:[0,.69444,0,0],108:[0,.69444,0,0],109:[0,.44444,0,0],110:[0,.44444,0,0],111:[0,.44444,0,0],112:[.19444,.44444,0,0],113:[.19444,.44444,0,0],114:[0,.44444,.01389,0],115:[0,.44444,0,0],116:[0,.57143,0,0],117:[0,.44444,0,0],118:[0,.44444,.01389,0],119:[0,.44444,.01389,0],120:[0,.44444,0,0],121:[.19444,.44444,.01389,0],122:[0,.44444,0,0],126:[.35,.32659,0,0],305:[0,.44444,0,0],567:[.19444,.44444,0,0],768:[0,.69444,0,0],769:[0,.69444,0,0],770:[0,.69444,0,0],771:[0,.67659,0,0],772:[0,.60889,0,0],774:[0,.69444,0,0],775:[0,.67937,0,0],776:[0,.67937,0,0],778:[0,.69444,0,0],779:[0,.69444,0,0],780:[0,.63194,0,0],915:[0,.69444,0,0],916:[0,.69444,0,0],920:[0,.69444,0,0],923:[0,.69444,0,0],926:[0,.69444,0,0],928:[0,.69444,0,0],931:[0,.69444,0,0],933:[0,.69444,0,0],934:[0,.69444,0,0],936:[0,.69444,0,0],937:[0,.69444,0,0],8211:[0,.44444,.02778,0],8212:[0,.44444,.02778,0],8216:[0,.69444,0,0],8217:[0,.69444,0,0],8220:[0,.69444,0,0],8221:[0,.69444,0,0]},\"Script-Regular\":{65:[0,.7,.22925,0],66:[0,.7,.04087,0],67:[0,.7,.1689,0],68:[0,.7,.09371,0],69:[0,.7,.18583,0],70:[0,.7,.13634,0],71:[0,.7,.17322,0],72:[0,.7,.29694,0],73:[0,.7,.19189,0],74:[.27778,.7,.19189,0],75:[0,.7,.31259,0],76:[0,.7,.19189,0],77:[0,.7,.15981,0],78:[0,.7,.3525,0],79:[0,.7,.08078,0],80:[0,.7,.08078,0],81:[0,.7,.03305,0],82:[0,.7,.06259,0],83:[0,.7,.19189,0],84:[0,.7,.29087,0],85:[0,.7,.25815,0],86:[0,.7,.27523,0],87:[0,.7,.27523,0],88:[0,.7,.26006,0],89:[0,.7,.2939,0],90:[0,.7,.24037,0]},\"Size1-Regular\":{40:[.35001,.85,0,0],41:[.35001,.85,0,0],47:[.35001,.85,0,0],91:[.35001,.85,0,0],92:[.35001,.85,0,0],93:[.35001,.85,0,0],123:[.35001,.85,0,0],125:[.35001,.85,0,0],710:[0,.72222,0,0],732:[0,.72222,0,0],770:[0,.72222,0,0],771:[0,.72222,0,0],8214:[-99e-5,.601,0,0],8593:[1e-5,.6,0,0],8595:[1e-5,.6,0,0],8657:[1e-5,.6,0,0],8659:[1e-5,.6,0,0],8719:[.25001,.75,0,0],8720:[.25001,.75,0,0],8721:[.25001,.75,0,0],8730:[.35001,.85,0,0],8739:[-.00599,.606,0,0],8741:[-.00599,.606,0,0],8747:[.30612,.805,.19445,0],8748:[.306,.805,.19445,0],8749:[.306,.805,.19445,0],8750:[.30612,.805,.19445,0],8896:[.25001,.75,0,0],8897:[.25001,.75,0,0],8898:[.25001,.75,0,0],8899:[.25001,.75,0,0],8968:[.35001,.85,0,0],8969:[.35001,.85,0,0],8970:[.35001,.85,0,0],8971:[.35001,.85,0,0],9168:[-99e-5,.601,0,0],10216:[.35001,.85,0,0],10217:[.35001,.85,0,0],10752:[.25001,.75,0,0],10753:[.25001,.75,0,0],10754:[.25001,.75,0,0],10756:[.25001,.75,0,0],10758:[.25001,.75,0,0]},\"Size2-Regular\":{40:[.65002,1.15,0,0],41:[.65002,1.15,0,0],47:[.65002,1.15,0,0],91:[.65002,1.15,0,0],92:[.65002,1.15,0,0],93:[.65002,1.15,0,0],123:[.65002,1.15,0,0],125:[.65002,1.15,0,0],710:[0,.75,0,0],732:[0,.75,0,0],770:[0,.75,0,0],771:[0,.75,0,0],8719:[.55001,1.05,0,0],8720:[.55001,1.05,0,0],8721:[.55001,1.05,0,0],8730:[.65002,1.15,0,0],8747:[.86225,1.36,.44445,0],8748:[.862,1.36,.44445,0],8749:[.862,1.36,.44445,0],8750:[.86225,1.36,.44445,0],8896:[.55001,1.05,0,0],8897:[.55001,1.05,0,0],8898:[.55001,1.05,0,0],8899:[.55001,1.05,0,0],8968:[.65002,1.15,0,0],8969:[.65002,1.15,0,0],8970:[.65002,1.15,0,0],8971:[.65002,1.15,0,0],10216:[.65002,1.15,0,0],10217:[.65002,1.15,0,0],10752:[.55001,1.05,0,0],10753:[.55001,1.05,0,0],10754:[.55001,1.05,0,0],\n10756:[.55001,1.05,0,0],10758:[.55001,1.05,0,0]},\"Size3-Regular\":{40:[.95003,1.45,0,0],41:[.95003,1.45,0,0],47:[.95003,1.45,0,0],91:[.95003,1.45,0,0],92:[.95003,1.45,0,0],93:[.95003,1.45,0,0],123:[.95003,1.45,0,0],125:[.95003,1.45,0,0],710:[0,.75,0,0],732:[0,.75,0,0],770:[0,.75,0,0],771:[0,.75,0,0],8730:[.95003,1.45,0,0],8968:[.95003,1.45,0,0],8969:[.95003,1.45,0,0],8970:[.95003,1.45,0,0],8971:[.95003,1.45,0,0],10216:[.95003,1.45,0,0],10217:[.95003,1.45,0,0]},\"Size4-Regular\":{40:[1.25003,1.75,0,0],41:[1.25003,1.75,0,0],47:[1.25003,1.75,0,0],91:[1.25003,1.75,0,0],92:[1.25003,1.75,0,0],93:[1.25003,1.75,0,0],123:[1.25003,1.75,0,0],125:[1.25003,1.75,0,0],710:[0,.825,0,0],732:[0,.825,0,0],770:[0,.825,0,0],771:[0,.825,0,0],8730:[1.25003,1.75,0,0],8968:[1.25003,1.75,0,0],8969:[1.25003,1.75,0,0],8970:[1.25003,1.75,0,0],8971:[1.25003,1.75,0,0],9115:[.64502,1.155,0,0],9116:[1e-5,.6,0,0],9117:[.64502,1.155,0,0],9118:[.64502,1.155,0,0],9119:[1e-5,.6,0,0],9120:[.64502,1.155,0,0],9121:[.64502,1.155,0,0],9122:[-99e-5,.601,0,0],9123:[.64502,1.155,0,0],9124:[.64502,1.155,0,0],9125:[-99e-5,.601,0,0],9126:[.64502,1.155,0,0],9127:[1e-5,.9,0,0],9128:[.65002,1.15,0,0],9129:[.90001,0,0,0],9130:[0,.3,0,0],9131:[1e-5,.9,0,0],9132:[.65002,1.15,0,0],9133:[.90001,0,0,0],9143:[.88502,.915,0,0],10216:[1.25003,1.75,0,0],10217:[1.25003,1.75,0,0],57344:[-.00499,.605,0,0],57345:[-.00499,.605,0,0],57680:[0,.12,0,0],57681:[0,.12,0,0],57682:[0,.12,0,0],57683:[0,.12,0,0]},\"Typewriter-Regular\":{33:[0,.61111,0,0],34:[0,.61111,0,0],35:[0,.61111,0,0],36:[.08333,.69444,0,0],37:[.08333,.69444,0,0],38:[0,.61111,0,0],39:[0,.61111,0,0],40:[.08333,.69444,0,0],41:[.08333,.69444,0,0],42:[0,.52083,0,0],43:[-.08056,.53055,0,0],44:[.13889,.125,0,0],45:[-.08056,.53055,0,0],46:[0,.125,0,0],47:[.08333,.69444,0,0],48:[0,.61111,0,0],49:[0,.61111,0,0],50:[0,.61111,0,0],51:[0,.61111,0,0],52:[0,.61111,0,0],53:[0,.61111,0,0],54:[0,.61111,0,0],55:[0,.61111,0,0],56:[0,.61111,0,0],57:[0,.61111,0,0],58:[0,.43056,0,0],59:[.13889,.43056,0,0],60:[-.05556,.55556,0,0],61:[-.19549,.41562,0,0],62:[-.05556,.55556,0,0],63:[0,.61111,0,0],64:[0,.61111,0,0],65:[0,.61111,0,0],66:[0,.61111,0,0],67:[0,.61111,0,0],68:[0,.61111,0,0],69:[0,.61111,0,0],70:[0,.61111,0,0],71:[0,.61111,0,0],72:[0,.61111,0,0],73:[0,.61111,0,0],74:[0,.61111,0,0],75:[0,.61111,0,0],76:[0,.61111,0,0],77:[0,.61111,0,0],78:[0,.61111,0,0],79:[0,.61111,0,0],80:[0,.61111,0,0],81:[.13889,.61111,0,0],82:[0,.61111,0,0],83:[0,.61111,0,0],84:[0,.61111,0,0],85:[0,.61111,0,0],86:[0,.61111,0,0],87:[0,.61111,0,0],88:[0,.61111,0,0],89:[0,.61111,0,0],90:[0,.61111,0,0],91:[.08333,.69444,0,0],92:[.08333,.69444,0,0],93:[.08333,.69444,0,0],94:[0,.61111,0,0],95:[.09514,0,0,0],96:[0,.61111,0,0],97:[0,.43056,0,0],98:[0,.61111,0,0],99:[0,.43056,0,0],100:[0,.61111,0,0],101:[0,.43056,0,0],102:[0,.61111,0,0],103:[.22222,.43056,0,0],104:[0,.61111,0,0],105:[0,.61111,0,0],106:[.22222,.61111,0,0],107:[0,.61111,0,0],108:[0,.61111,0,0],109:[0,.43056,0,0],110:[0,.43056,0,0],111:[0,.43056,0,0],112:[.22222,.43056,0,0],113:[.22222,.43056,0,0],114:[0,.43056,0,0],115:[0,.43056,0,0],116:[0,.55358,0,0],117:[0,.43056,0,0],118:[0,.43056,0,0],119:[0,.43056,0,0],120:[0,.43056,0,0],121:[.22222,.43056,0,0],122:[0,.43056,0,0],123:[.08333,.69444,0,0],124:[.08333,.69444,0,0],125:[.08333,.69444,0,0],126:[0,.61111,0,0],127:[0,.61111,0,0],305:[0,.43056,0,0],567:[.22222,.43056,0,0],768:[0,.61111,0,0],769:[0,.61111,0,0],770:[0,.61111,0,0],771:[0,.61111,0,0],772:[0,.56555,0,0],774:[0,.61111,0,0],776:[0,.61111,0,0],778:[0,.61111,0,0],780:[0,.56597,0,0],915:[0,.61111,0,0],916:[0,.61111,0,0],920:[0,.61111,0,0],923:[0,.61111,0,0],926:[0,.61111,0,0],928:[0,.61111,0,0],931:[0,.61111,0,0],933:[0,.61111,0,0],934:[0,.61111,0,0],936:[0,.61111,0,0],937:[0,.61111,0,0],2018:[0,.61111,0,0],2019:[0,.61111,0,0],8242:[0,.61111,0,0]}}},{}],19:[function(e,t,r){var a=e(\"./utils\");var i=e(\"./ParseError\");var n=e(\"./parseData\");var s=n.ParseNode;function l(e,r,a){if(typeof e===\"string\"){e=[e]}if(typeof r===\"number\"){r={numArgs:r}}var i={numArgs:r.numArgs,argTypes:r.argTypes,greediness:r.greediness===undefined?1:r.greediness,allowedInText:!!r.allowedInText,numOptionalArgs:r.numOptionalArgs||0,infix:!!r.infix,handler:a};for(var n=0;n<e.length;++n){t.exports[e[n]]=i}}var o=function(e){if(e.type===\"ordgroup\"){return e.value}else{return[e]}};l(\"\\\\sqrt\",{numArgs:1,numOptionalArgs:1},function(e,t){var r=t[0];var a=t[1];return{type:\"sqrt\",body:a,index:r}});var u={\"\\\\text\":undefined,\"\\\\textrm\":\"mathrm\",\"\\\\textsf\":\"mathsf\",\"\\\\texttt\":\"mathtt\",\"\\\\textnormal\":\"mathrm\",\"\\\\textbf\":\"mathbf\",\"\\\\textit\":\"textit\"};l([\"\\\\text\",\"\\\\textrm\",\"\\\\textsf\",\"\\\\texttt\",\"\\\\textnormal\",\"\\\\textbf\",\"\\\\textit\"],{numArgs:1,argTypes:[\"text\"],greediness:2,allowedInText:true},function(e,t){var r=t[0];return{type:\"text\",body:o(r),style:u[e.funcName]}});l(\"\\\\color\",{numArgs:2,allowedInText:true,greediness:3,argTypes:[\"color\",\"original\"]},function(e,t){var r=t[0];var a=t[1];return{type:\"color\",color:r.value,value:o(a)}});l(\"\\\\overline\",{numArgs:1},function(e,t){var r=t[0];return{type:\"overline\",body:r}});l(\"\\\\underline\",{numArgs:1},function(e,t){var r=t[0];return{type:\"underline\",body:r}});l(\"\\\\rule\",{numArgs:2,numOptionalArgs:1,argTypes:[\"size\",\"size\",\"size\"]},function(e,t){var r=t[0];var a=t[1];var i=t[2];return{type:\"rule\",shift:r&&r.value,width:a.value,height:i.value}});l([\"\\\\kern\",\"\\\\mkern\"],{numArgs:1,argTypes:[\"size\"]},function(e,t){return{type:\"kern\",dimension:t[0].value}});l(\"\\\\KaTeX\",{numArgs:0},function(e){return{type:\"katex\"}});l(\"\\\\phantom\",{numArgs:1},function(e,t){var r=t[0];return{type:\"phantom\",value:o(r)}});l([\"\\\\mathord\",\"\\\\mathbin\",\"\\\\mathrel\",\"\\\\mathopen\",\"\\\\mathclose\",\"\\\\mathpunct\",\"\\\\mathinner\"],{numArgs:1},function(e,t){var r=t[0];return{type:\"mclass\",mclass:\"m\"+e.funcName.substr(5),value:o(r)}});l(\"\\\\stackrel\",{numArgs:2},function(e,t){var r=t[0];var a=t[1];var i=new s(\"op\",{type:\"op\",limits:true,alwaysHandleSupSub:true,symbol:false,value:o(a)},a.mode);var n=new s(\"supsub\",{base:i,sup:r,sub:null},r.mode);return{type:\"mclass\",mclass:\"mrel\",value:[n]}});l(\"\\\\bmod\",{numArgs:0},function(e,t){return{type:\"mod\",modType:\"bmod\",value:null}});l([\"\\\\pod\",\"\\\\pmod\",\"\\\\mod\"],{numArgs:1},function(e,t){var r=t[0];return{type:\"mod\",modType:e.funcName.substr(1),value:o(r)}});var p={\"\\\\bigl\":{mclass:\"mopen\",size:1},\"\\\\Bigl\":{mclass:\"mopen\",size:2},\"\\\\biggl\":{mclass:\"mopen\",size:3},\"\\\\Biggl\":{mclass:\"mopen\",size:4},\"\\\\bigr\":{mclass:\"mclose\",size:1},\"\\\\Bigr\":{mclass:\"mclose\",size:2},\"\\\\biggr\":{mclass:\"mclose\",size:3},\"\\\\Biggr\":{mclass:\"mclose\",size:4},\"\\\\bigm\":{mclass:\"mrel\",size:1},\"\\\\Bigm\":{mclass:\"mrel\",size:2},\"\\\\biggm\":{mclass:\"mrel\",size:3},\"\\\\Biggm\":{mclass:\"mrel\",size:4},\"\\\\big\":{mclass:\"mord\",size:1},\"\\\\Big\":{mclass:\"mord\",size:2},\"\\\\bigg\":{mclass:\"mord\",size:3},\"\\\\Bigg\":{mclass:\"mord\",size:4}};var h=[\"(\",\")\",\"[\",\"\\\\lbrack\",\"]\",\"\\\\rbrack\",\"\\\\{\",\"\\\\lbrace\",\"\\\\}\",\"\\\\rbrace\",\"\\\\lfloor\",\"\\\\rfloor\",\"\\\\lceil\",\"\\\\rceil\",\"<\",\">\",\"\\\\langle\",\"\\\\rangle\",\"\\\\lt\",\"\\\\gt\",\"\\\\lvert\",\"\\\\rvert\",\"\\\\lVert\",\"\\\\rVert\",\"\\\\lgroup\",\"\\\\rgroup\",\"\\\\lmoustache\",\"\\\\rmoustache\",\"/\",\"\\\\backslash\",\"|\",\"\\\\vert\",\"\\\\|\",\"\\\\Vert\",\"\\\\uparrow\",\"\\\\Uparrow\",\"\\\\downarrow\",\"\\\\Downarrow\",\"\\\\updownarrow\",\"\\\\Updownarrow\",\".\"];var c={\"\\\\Bbb\":\"\\\\mathbb\",\"\\\\bold\":\"\\\\mathbf\",\"\\\\frak\":\"\\\\mathfrak\"};l([\"\\\\blue\",\"\\\\orange\",\"\\\\pink\",\"\\\\red\",\"\\\\green\",\"\\\\gray\",\"\\\\purple\",\"\\\\blueA\",\"\\\\blueB\",\"\\\\blueC\",\"\\\\blueD\",\"\\\\blueE\",\"\\\\tealA\",\"\\\\tealB\",\"\\\\tealC\",\"\\\\tealD\",\"\\\\tealE\",\"\\\\greenA\",\"\\\\greenB\",\"\\\\greenC\",\"\\\\greenD\",\"\\\\greenE\",\"\\\\goldA\",\"\\\\goldB\",\"\\\\goldC\",\"\\\\goldD\",\"\\\\goldE\",\"\\\\redA\",\"\\\\redB\",\"\\\\redC\",\"\\\\redD\",\"\\\\redE\",\"\\\\maroonA\",\"\\\\maroonB\",\"\\\\maroonC\",\"\\\\maroonD\",\"\\\\maroonE\",\"\\\\purpleA\",\"\\\\purpleB\",\"\\\\purpleC\",\"\\\\purpleD\",\"\\\\purpleE\",\"\\\\mintA\",\"\\\\mintB\",\"\\\\mintC\",\"\\\\grayA\",\"\\\\grayB\",\"\\\\grayC\",\"\\\\grayD\",\"\\\\grayE\",\"\\\\grayF\",\"\\\\grayG\",\"\\\\grayH\",\"\\\\grayI\",\"\\\\kaBlue\",\"\\\\kaGreen\"],{numArgs:1,allowedInText:true,greediness:3},function(e,t){var r=t[0];return{type:\"color\",color:\"katex-\"+e.funcName.slice(1),value:o(r)}});l([\"\\\\arcsin\",\"\\\\arccos\",\"\\\\arctan\",\"\\\\arg\",\"\\\\cos\",\"\\\\cosh\",\"\\\\cot\",\"\\\\coth\",\"\\\\csc\",\"\\\\deg\",\"\\\\dim\",\"\\\\exp\",\"\\\\hom\",\"\\\\ker\",\"\\\\lg\",\"\\\\ln\",\"\\\\log\",\"\\\\sec\",\"\\\\sin\",\"\\\\sinh\",\"\\\\tan\",\"\\\\tanh\"],{numArgs:0},function(e){return{type:\"op\",limits:false,symbol:false,body:e.funcName}});l([\"\\\\det\",\"\\\\gcd\",\"\\\\inf\",\"\\\\lim\",\"\\\\liminf\",\"\\\\limsup\",\"\\\\max\",\"\\\\min\",\"\\\\Pr\",\"\\\\sup\"],{numArgs:0},function(e){return{type:\"op\",limits:true,symbol:false,body:e.funcName}});l([\"\\\\int\",\"\\\\iint\",\"\\\\iiint\",\"\\\\oint\"],{numArgs:0},function(e){return{type:\"op\",limits:false,symbol:true,body:e.funcName}});l([\"\\\\coprod\",\"\\\\bigvee\",\"\\\\bigwedge\",\"\\\\biguplus\",\"\\\\bigcap\",\"\\\\bigcup\",\"\\\\intop\",\"\\\\prod\",\"\\\\sum\",\"\\\\bigotimes\",\"\\\\bigoplus\",\"\\\\bigodot\",\"\\\\bigsqcup\",\"\\\\smallint\"],{numArgs:0},function(e){return{type:\"op\",limits:true,symbol:true,body:e.funcName}});l(\"\\\\mathop\",{numArgs:1},function(e,t){var r=t[0];return{type:\"op\",limits:false,symbol:false,value:o(r)}});l([\"\\\\dfrac\",\"\\\\frac\",\"\\\\tfrac\",\"\\\\dbinom\",\"\\\\binom\",\"\\\\tbinom\",\"\\\\\\\\atopfrac\"],{numArgs:2,greediness:2},function(e,t){var r=t[0];var a=t[1];var i;var n=null;var s=null;var l=\"auto\";switch(e.funcName){case\"\\\\dfrac\":case\"\\\\frac\":case\"\\\\tfrac\":i=true;break;case\"\\\\\\\\atopfrac\":i=false;break;case\"\\\\dbinom\":case\"\\\\binom\":case\"\\\\tbinom\":i=false;n=\"(\";s=\")\";break;default:throw new Error(\"Unrecognized genfrac command\")}switch(e.funcName){case\"\\\\dfrac\":case\"\\\\dbinom\":l=\"display\";break;case\"\\\\tfrac\":case\"\\\\tbinom\":l=\"text\";break}return{type:\"genfrac\",numer:r,denom:a,hasBarLine:i,leftDelim:n,rightDelim:s,size:l}});l([\"\\\\llap\",\"\\\\rlap\"],{numArgs:1,allowedInText:true},function(e,t){var r=t[0];return{type:e.funcName.slice(1),body:r}});var m=function(e,t){if(a.contains(h,e.value)){return e}else{throw new i(\"Invalid delimiter: '\"+e.value+\"' after '\"+t.funcName+\"'\",e)}};l([\"\\\\bigl\",\"\\\\Bigl\",\"\\\\biggl\",\"\\\\Biggl\",\"\\\\bigr\",\"\\\\Bigr\",\"\\\\biggr\",\"\\\\Biggr\",\"\\\\bigm\",\"\\\\Bigm\",\"\\\\biggm\",\"\\\\Biggm\",\"\\\\big\",\"\\\\Big\",\"\\\\bigg\",\"\\\\Bigg\"],{numArgs:1},function(e,t){var r=m(t[0],e);return{type:\"delimsizing\",size:p[e.funcName].size,mclass:p[e.funcName].mclass,value:r.value}});l([\"\\\\left\",\"\\\\right\"],{numArgs:1},function(e,t){var r=m(t[0],e);return{type:\"leftright\",value:r.value}});l(\"\\\\middle\",{numArgs:1},function(e,t){var r=m(t[0],e);if(!e.parser.leftrightDepth){throw new i(\"\\\\middle without preceding \\\\left\",r)}return{type:\"middle\",value:r.value}});l([\"\\\\tiny\",\"\\\\scriptsize\",\"\\\\footnotesize\",\"\\\\small\",\"\\\\normalsize\",\"\\\\large\",\"\\\\Large\",\"\\\\LARGE\",\"\\\\huge\",\"\\\\Huge\"],0,null);l([\"\\\\displaystyle\",\"\\\\textstyle\",\"\\\\scriptstyle\",\"\\\\scriptscriptstyle\"],0,null);l([\"\\\\mathrm\",\"\\\\mathit\",\"\\\\mathbf\",\"\\\\mathbb\",\"\\\\mathcal\",\"\\\\mathfrak\",\"\\\\mathscr\",\"\\\\mathsf\",\"\\\\mathtt\",\"\\\\Bbb\",\"\\\\bold\",\"\\\\frak\"],{numArgs:1,greediness:2},function(e,t){var r=t[0];var a=e.funcName;if(a in c){a=c[a]}return{type:\"font\",font:a.slice(1),body:r}});l([\"\\\\acute\",\"\\\\grave\",\"\\\\ddot\",\"\\\\tilde\",\"\\\\bar\",\"\\\\breve\",\"\\\\check\",\"\\\\hat\",\"\\\\vec\",\"\\\\dot\"],{numArgs:1},function(e,t){var r=t[0];return{type:\"accent\",accent:e.funcName,base:r}});l([\"\\\\over\",\"\\\\choose\",\"\\\\atop\"],{numArgs:0,infix:true},function(e){var t;switch(e.funcName){case\"\\\\over\":t=\"\\\\frac\";break;case\"\\\\choose\":t=\"\\\\binom\";break;case\"\\\\atop\":t=\"\\\\\\\\atopfrac\";break;default:throw new Error(\"Unrecognized infix genfrac command\")}return{type:\"infix\",replaceWith:t,token:e.token}});l([\"\\\\\\\\\",\"\\\\cr\"],{numArgs:0,numOptionalArgs:1,argTypes:[\"size\"]},function(e,t){var r=t[0];return{type:\"cr\",size:r}});l([\"\\\\begin\",\"\\\\end\"],{numArgs:1,argTypes:[\"text\"]},function(e,t){var r=t[0];if(r.type!==\"ordgroup\"){throw new i(\"Invalid environment name\",r)}var a=\"\";for(var n=0;n<r.value.length;++n){a+=r.value[n].value}return{type:\"environment\",name:a,nameGroup:r}})},{\"./ParseError\":6,\"./parseData\":21,\"./utils\":25}],20:[function(e,t,r){var a=e(\"./utils\");function i(e,t){this.type=e;this.attributes={};this.children=t||[]}i.prototype.setAttribute=function(e,t){this.attributes[e]=t};i.prototype.toNode=function(){var e=document.createElementNS(\"http://www.w3.org/1998/Math/MathML\",this.type);for(var t in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,t)){e.setAttribute(t,this.attributes[t])}}for(var r=0;r<this.children.length;r++){e.appendChild(this.children[r].toNode())}return e};i.prototype.toMarkup=function(){var e=\"<\"+this.type;for(var t in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,t)){e+=\" \"+t+'=\"';e+=a.escape(this.attributes[t]);e+='\"'}}e+=\">\";for(var r=0;r<this.children.length;r++){e+=this.children[r].toMarkup()}e+=\"</\"+this.type+\">\";return e};function n(e){this.text=e}n.prototype.toNode=function(){return document.createTextNode(this.text)};n.prototype.toMarkup=function(){return a.escape(this.text)};t.exports={MathNode:i,TextNode:n}},{\"./utils\":25}],21:[function(e,t,r){function a(e,t,r,a,i){this.type=e;this.value=t;this.mode=r;if(a&&(!i||i.lexer===a.lexer)){this.lexer=a.lexer;this.start=a.start;this.end=(i||a).end}}t.exports={ParseNode:a}},{}],22:[function(e,t,r){var a=e(\"./Parser\");var i=function(e,t){if(!(typeof e===\"string\"||e instanceof String)){throw new TypeError(\"KaTeX can only parse string typed expression\")}var r=new a(e,t);return r.parse()};t.exports=i},{\"./Parser\":7}],23:[function(e,t,r){t.exports={math:{},text:{}};function a(e,r,a,i,n){t.exports[e][n]={font:r,group:a,replace:i}}var i=\"math\";var n=\"text\";var s=\"main\";var l=\"ams\";var o=\"accent\";var u=\"bin\";var p=\"close\";var h=\"inner\";var c=\"mathord\";var m=\"op\";var f=\"open\";var v=\"punct\";var d=\"rel\";var g=\"spacing\";var y=\"textord\";a(i,s,d,\"\\u2261\",\"\\\\equiv\");a(i,s,d,\"\\u227a\",\"\\\\prec\");a(i,s,d,\"\\u227b\",\"\\\\succ\");a(i,s,d,\"\\u223c\",\"\\\\sim\");a(i,s,d,\"\\u22a5\",\"\\\\perp\");a(i,s,d,\"\\u2aaf\",\"\\\\preceq\");a(i,s,d,\"\\u2ab0\",\"\\\\succeq\");a(i,s,d,\"\\u2243\",\"\\\\simeq\");a(i,s,d,\"\\u2223\",\"\\\\mid\");a(i,s,d,\"\\u226a\",\"\\\\ll\");a(i,s,d,\"\\u226b\",\"\\\\gg\");a(i,s,d,\"\\u224d\",\"\\\\asymp\");a(i,s,d,\"\\u2225\",\"\\\\parallel\");a(i,s,d,\"\\u22c8\",\"\\\\bowtie\");a(i,s,d,\"\\u2323\",\"\\\\smile\");a(i,s,d,\"\\u2291\",\"\\\\sqsubseteq\");a(i,s,d,\"\\u2292\",\"\\\\sqsupseteq\");a(i,s,d,\"\\u2250\",\"\\\\doteq\");a(i,s,d,\"\\u2322\",\"\\\\frown\");a(i,s,d,\"\\u220b\",\"\\\\ni\");a(i,s,d,\"\\u221d\",\"\\\\propto\");a(i,s,d,\"\\u22a2\",\"\\\\vdash\");a(i,s,d,\"\\u22a3\",\"\\\\dashv\");a(i,s,d,\"\\u220b\",\"\\\\owns\");a(i,s,v,\".\",\"\\\\ldotp\");a(i,s,v,\"\\u22c5\",\"\\\\cdotp\");a(i,s,y,\"#\",\"\\\\#\");a(n,s,y,\"#\",\"\\\\#\");a(i,s,y,\"&\",\"\\\\&\");a(n,s,y,\"&\",\"\\\\&\");a(i,s,y,\"\\u2135\",\"\\\\aleph\");a(i,s,y,\"\\u2200\",\"\\\\forall\");a(i,s,y,\"\\u210f\",\"\\\\hbar\");a(i,s,y,\"\\u2203\",\"\\\\exists\");a(i,s,y,\"\\u2207\",\"\\\\nabla\");a(i,s,y,\"\\u266d\",\"\\\\flat\");a(i,s,y,\"\\u2113\",\"\\\\ell\");a(i,s,y,\"\\u266e\",\"\\\\natural\");a(i,s,y,\"\\u2663\",\"\\\\clubsuit\");a(i,s,y,\"\\u2118\",\"\\\\wp\");a(i,s,y,\"\\u266f\",\"\\\\sharp\");a(i,s,y,\"\\u2662\",\"\\\\diamondsuit\");a(i,s,y,\"\\u211c\",\"\\\\Re\");a(i,s,y,\"\\u2661\",\"\\\\heartsuit\");a(i,s,y,\"\\u2111\",\"\\\\Im\");a(i,s,y,\"\\u2660\",\"\\\\spadesuit\");a(i,s,y,\"\\u2020\",\"\\\\dag\");a(i,s,y,\"\\u2021\",\"\\\\ddag\");a(i,s,p,\"\\u23b1\",\"\\\\rmoustache\");a(i,s,f,\"\\u23b0\",\"\\\\lmoustache\");a(i,s,p,\"\\u27ef\",\"\\\\rgroup\");a(i,s,f,\"\\u27ee\",\"\\\\lgroup\");a(i,s,u,\"\\u2213\",\"\\\\mp\");a(i,s,u,\"\\u2296\",\"\\\\ominus\");a(i,s,u,\"\\u228e\",\"\\\\uplus\");a(i,s,u,\"\\u2293\",\"\\\\sqcap\");a(i,s,u,\"\\u2217\",\"\\\\ast\");a(i,s,u,\"\\u2294\",\"\\\\sqcup\");a(i,s,u,\"\\u25ef\",\"\\\\bigcirc\");a(i,s,u,\"\\u2219\",\"\\\\bullet\");a(i,s,u,\"\\u2021\",\"\\\\ddagger\");a(i,s,u,\"\\u2240\",\"\\\\wr\");a(i,s,u,\"\\u2a3f\",\"\\\\amalg\");a(i,s,d,\"\\u27f5\",\"\\\\longleftarrow\");a(i,s,d,\"\\u21d0\",\"\\\\Leftarrow\");a(i,s,d,\"\\u27f8\",\"\\\\Longleftarrow\");a(i,s,d,\"\\u27f6\",\"\\\\longrightarrow\");a(i,s,d,\"\\u21d2\",\"\\\\Rightarrow\");a(i,s,d,\"\\u27f9\",\"\\\\Longrightarrow\");a(i,s,d,\"\\u2194\",\"\\\\leftrightarrow\");a(i,s,d,\"\\u27f7\",\"\\\\longleftrightarrow\");a(i,s,d,\"\\u21d4\",\"\\\\Leftrightarrow\");a(i,s,d,\"\\u27fa\",\"\\\\Longleftrightarrow\");a(i,s,d,\"\\u21a6\",\"\\\\mapsto\");a(i,s,d,\"\\u27fc\",\"\\\\longmapsto\");a(i,s,d,\"\\u2197\",\"\\\\nearrow\");a(i,s,d,\"\\u21a9\",\"\\\\hookleftarrow\");a(i,s,d,\"\\u21aa\",\"\\\\hookrightarrow\");a(i,s,d,\"\\u2198\",\"\\\\searrow\");a(i,s,d,\"\\u21bc\",\"\\\\leftharpoonup\");a(i,s,d,\"\\u21c0\",\"\\\\rightharpoonup\");a(i,s,d,\"\\u2199\",\"\\\\swarrow\");a(i,s,d,\"\\u21bd\",\"\\\\leftharpoondown\");a(i,s,d,\"\\u21c1\",\"\\\\rightharpoondown\");a(i,s,d,\"\\u2196\",\"\\\\nwarrow\");a(i,s,d,\"\\u21cc\",\"\\\\rightleftharpoons\");a(i,l,d,\"\\u226e\",\"\\\\nless\");a(i,l,d,\"\\ue010\",\"\\\\nleqslant\");a(i,l,d,\"\\ue011\",\"\\\\nleqq\");a(i,l,d,\"\\u2a87\",\"\\\\lneq\");a(i,l,d,\"\\u2268\",\"\\\\lneqq\");a(i,l,d,\"\\ue00c\",\"\\\\lvertneqq\");a(i,l,d,\"\\u22e6\",\"\\\\lnsim\");a(i,l,d,\"\\u2a89\",\"\\\\lnapprox\");a(i,l,d,\"\\u2280\",\"\\\\nprec\");a(i,l,d,\"\\u22e0\",\"\\\\npreceq\");a(i,l,d,\"\\u22e8\",\"\\\\precnsim\");a(i,l,d,\"\\u2ab9\",\"\\\\precnapprox\");a(i,l,d,\"\\u2241\",\"\\\\nsim\");a(i,l,d,\"\\ue006\",\"\\\\nshortmid\");a(i,l,d,\"\\u2224\",\"\\\\nmid\");a(i,l,d,\"\\u22ac\",\"\\\\nvdash\");a(i,l,d,\"\\u22ad\",\"\\\\nvDash\");a(i,l,d,\"\\u22ea\",\"\\\\ntriangleleft\");a(i,l,d,\"\\u22ec\",\"\\\\ntrianglelefteq\");a(i,l,d,\"\\u228a\",\"\\\\subsetneq\");a(i,l,d,\"\\ue01a\",\"\\\\varsubsetneq\");a(i,l,d,\"\\u2acb\",\"\\\\subsetneqq\");a(i,l,d,\"\\ue017\",\"\\\\varsubsetneqq\");a(i,l,d,\"\\u226f\",\"\\\\ngtr\");a(i,l,d,\"\\ue00f\",\"\\\\ngeqslant\");a(i,l,d,\"\\ue00e\",\"\\\\ngeqq\");a(i,l,d,\"\\u2a88\",\"\\\\gneq\");a(i,l,d,\"\\u2269\",\"\\\\gneqq\");a(i,l,d,\"\\ue00d\",\"\\\\gvertneqq\");a(i,l,d,\"\\u22e7\",\"\\\\gnsim\");a(i,l,d,\"\\u2a8a\",\"\\\\gnapprox\");a(i,l,d,\"\\u2281\",\"\\\\nsucc\");a(i,l,d,\"\\u22e1\",\"\\\\nsucceq\");a(i,l,d,\"\\u22e9\",\"\\\\succnsim\");a(i,l,d,\"\\u2aba\",\"\\\\succnapprox\");a(i,l,d,\"\\u2246\",\"\\\\ncong\");a(i,l,d,\"\\ue007\",\"\\\\nshortparallel\");a(i,l,d,\"\\u2226\",\"\\\\nparallel\");a(i,l,d,\"\\u22af\",\"\\\\nVDash\");a(i,l,d,\"\\u22eb\",\"\\\\ntriangleright\");a(i,l,d,\"\\u22ed\",\"\\\\ntrianglerighteq\");a(i,l,d,\"\\ue018\",\"\\\\nsupseteqq\");a(i,l,d,\"\\u228b\",\"\\\\supsetneq\");a(i,l,d,\"\\ue01b\",\"\\\\varsupsetneq\");a(i,l,d,\"\\u2acc\",\"\\\\supsetneqq\");a(i,l,d,\"\\ue019\",\"\\\\varsupsetneqq\");a(i,l,d,\"\\u22ae\",\"\\\\nVdash\");a(i,l,d,\"\\u2ab5\",\"\\\\precneqq\");a(i,l,d,\"\\u2ab6\",\"\\\\succneqq\");a(i,l,d,\"\\ue016\",\"\\\\nsubseteqq\");a(i,l,u,\"\\u22b4\",\"\\\\unlhd\");a(i,l,u,\"\\u22b5\",\"\\\\unrhd\");a(i,l,d,\"\\u219a\",\"\\\\nleftarrow\");a(i,l,d,\"\\u219b\",\"\\\\nrightarrow\");a(i,l,d,\"\\u21cd\",\"\\\\nLeftarrow\");a(i,l,d,\"\\u21cf\",\"\\\\nRightarrow\");a(i,l,d,\"\\u21ae\",\"\\\\nleftrightarrow\");a(i,l,d,\"\\u21ce\",\"\\\\nLeftrightarrow\");a(i,l,d,\"\\u25b3\",\"\\\\vartriangle\");a(i,l,y,\"\\u210f\",\"\\\\hslash\");a(i,l,y,\"\\u25bd\",\"\\\\triangledown\");a(i,l,y,\"\\u25ca\",\"\\\\lozenge\");a(i,l,y,\"\\u24c8\",\"\\\\circledS\");a(i,l,y,\"\\xae\",\"\\\\circledR\");a(i,l,y,\"\\u2221\",\"\\\\measuredangle\");a(i,l,y,\"\\u2204\",\"\\\\nexists\");a(i,l,y,\"\\u2127\",\"\\\\mho\");a(i,l,y,\"\\u2132\",\"\\\\Finv\");a(i,l,y,\"\\u2141\",\"\\\\Game\");a(i,l,y,\"k\",\"\\\\Bbbk\");a(i,l,y,\"\\u2035\",\"\\\\backprime\");a(i,l,y,\"\\u25b2\",\"\\\\blacktriangle\");a(i,l,y,\"\\u25bc\",\"\\\\blacktriangledown\");a(i,l,y,\"\\u25a0\",\"\\\\blacksquare\");a(i,l,y,\"\\u29eb\",\"\\\\blacklozenge\");a(i,l,y,\"\\u2605\",\"\\\\bigstar\");a(i,l,y,\"\\u2222\",\"\\\\sphericalangle\");a(i,l,y,\"\\u2201\",\"\\\\complement\");a(i,l,y,\"\\xf0\",\"\\\\eth\");a(i,l,y,\"\\u2571\",\"\\\\diagup\");a(i,l,y,\"\\u2572\",\"\\\\diagdown\");a(i,l,y,\"\\u25a1\",\"\\\\square\");a(i,l,y,\"\\u25a1\",\"\\\\Box\");a(i,l,y,\"\\u25ca\",\"\\\\Diamond\");a(i,l,y,\"\\xa5\",\"\\\\yen\");a(i,l,y,\"\\u2713\",\"\\\\checkmark\");a(i,l,y,\"\\u2136\",\"\\\\beth\");a(i,l,y,\"\\u2138\",\"\\\\daleth\");a(i,l,y,\"\\u2137\",\"\\\\gimel\");a(i,l,y,\"\\u03dd\",\"\\\\digamma\");a(i,l,y,\"\\u03f0\",\"\\\\varkappa\");a(i,l,f,\"\\u250c\",\"\\\\ulcorner\");a(i,l,p,\"\\u2510\",\"\\\\urcorner\");a(i,l,f,\"\\u2514\",\"\\\\llcorner\");a(i,l,p,\"\\u2518\",\"\\\\lrcorner\");a(i,l,d,\"\\u2266\",\"\\\\leqq\");a(i,l,d,\"\\u2a7d\",\"\\\\leqslant\");a(i,l,d,\"\\u2a95\",\"\\\\eqslantless\");a(i,l,d,\"\\u2272\",\"\\\\lesssim\");a(i,l,d,\"\\u2a85\",\"\\\\lessapprox\");a(i,l,d,\"\\u224a\",\"\\\\approxeq\");a(i,l,u,\"\\u22d6\",\"\\\\lessdot\");a(i,l,d,\"\\u22d8\",\"\\\\lll\");a(i,l,d,\"\\u2276\",\"\\\\lessgtr\");a(i,l,d,\"\\u22da\",\"\\\\lesseqgtr\");a(i,l,d,\"\\u2a8b\",\"\\\\lesseqqgtr\");a(i,l,d,\"\\u2251\",\"\\\\doteqdot\");a(i,l,d,\"\\u2253\",\"\\\\risingdotseq\");a(i,l,d,\"\\u2252\",\"\\\\fallingdotseq\");a(i,l,d,\"\\u223d\",\"\\\\backsim\");a(i,l,d,\"\\u22cd\",\"\\\\backsimeq\");a(i,l,d,\"\\u2ac5\",\"\\\\subseteqq\");a(i,l,d,\"\\u22d0\",\"\\\\Subset\");a(i,l,d,\"\\u228f\",\"\\\\sqsubset\");a(i,l,d,\"\\u227c\",\"\\\\preccurlyeq\");a(i,l,d,\"\\u22de\",\"\\\\curlyeqprec\");a(i,l,d,\"\\u227e\",\"\\\\precsim\");a(i,l,d,\"\\u2ab7\",\"\\\\precapprox\");a(i,l,d,\"\\u22b2\",\"\\\\vartriangleleft\");a(i,l,d,\"\\u22b4\",\"\\\\trianglelefteq\");a(i,l,d,\"\\u22a8\",\"\\\\vDash\");a(i,l,d,\"\\u22aa\",\"\\\\Vvdash\");a(i,l,d,\"\\u2323\",\"\\\\smallsmile\");a(i,l,d,\"\\u2322\",\"\\\\smallfrown\");a(i,l,d,\"\\u224f\",\"\\\\bumpeq\");a(i,l,d,\"\\u224e\",\"\\\\Bumpeq\");a(i,l,d,\"\\u2267\",\"\\\\geqq\");a(i,l,d,\"\\u2a7e\",\"\\\\geqslant\");a(i,l,d,\"\\u2a96\",\"\\\\eqslantgtr\");a(i,l,d,\"\\u2273\",\"\\\\gtrsim\");a(i,l,d,\"\\u2a86\",\"\\\\gtrapprox\");a(i,l,u,\"\\u22d7\",\"\\\\gtrdot\");a(i,l,d,\"\\u22d9\",\"\\\\ggg\");a(i,l,d,\"\\u2277\",\"\\\\gtrless\");a(i,l,d,\"\\u22db\",\"\\\\gtreqless\");a(i,l,d,\"\\u2a8c\",\"\\\\gtreqqless\");a(i,l,d,\"\\u2256\",\"\\\\eqcirc\");a(i,l,d,\"\\u2257\",\"\\\\circeq\");a(i,l,d,\"\\u225c\",\"\\\\triangleq\");a(i,l,d,\"\\u223c\",\"\\\\thicksim\");a(i,l,d,\"\\u2248\",\"\\\\thickapprox\");a(i,l,d,\"\\u2ac6\",\"\\\\supseteqq\");a(i,l,d,\"\\u22d1\",\"\\\\Supset\");a(i,l,d,\"\\u2290\",\"\\\\sqsupset\");a(i,l,d,\"\\u227d\",\"\\\\succcurlyeq\");a(i,l,d,\"\\u22df\",\"\\\\curlyeqsucc\");a(i,l,d,\"\\u227f\",\"\\\\succsim\");a(i,l,d,\"\\u2ab8\",\"\\\\succapprox\");a(i,l,d,\"\\u22b3\",\"\\\\vartriangleright\");a(i,l,d,\"\\u22b5\",\"\\\\trianglerighteq\");a(i,l,d,\"\\u22a9\",\"\\\\Vdash\");a(i,l,d,\"\\u2223\",\"\\\\shortmid\");a(i,l,d,\"\\u2225\",\"\\\\shortparallel\");a(i,l,d,\"\\u226c\",\"\\\\between\");a(i,l,d,\"\\u22d4\",\"\\\\pitchfork\");a(i,l,d,\"\\u221d\",\"\\\\varpropto\");a(i,l,d,\"\\u25c0\",\"\\\\blacktriangleleft\");a(i,l,d,\"\\u2234\",\"\\\\therefore\");a(i,l,d,\"\\u220d\",\"\\\\backepsilon\");a(i,l,d,\"\\u25b6\",\"\\\\blacktriangleright\");a(i,l,d,\"\\u2235\",\"\\\\because\");a(i,l,d,\"\\u22d8\",\"\\\\llless\");a(i,l,d,\"\\u22d9\",\"\\\\gggtr\");a(i,l,u,\"\\u22b2\",\"\\\\lhd\");a(i,l,u,\"\\u22b3\",\"\\\\rhd\");a(i,l,d,\"\\u2242\",\"\\\\eqsim\");a(i,s,d,\"\\u22c8\",\"\\\\Join\");a(i,l,d,\"\\u2251\",\"\\\\Doteq\");a(i,l,u,\"\\u2214\",\"\\\\dotplus\");a(i,l,u,\"\\u2216\",\"\\\\smallsetminus\");a(i,l,u,\"\\u22d2\",\"\\\\Cap\");a(i,l,u,\"\\u22d3\",\"\\\\Cup\");a(i,l,u,\"\\u2a5e\",\"\\\\doublebarwedge\");a(i,l,u,\"\\u229f\",\"\\\\boxminus\");a(i,l,u,\"\\u229e\",\"\\\\boxplus\");a(i,l,u,\"\\u22c7\",\"\\\\divideontimes\");a(i,l,u,\"\\u22c9\",\"\\\\ltimes\");a(i,l,u,\"\\u22ca\",\"\\\\rtimes\");a(i,l,u,\"\\u22cb\",\"\\\\leftthreetimes\");a(i,l,u,\"\\u22cc\",\"\\\\rightthreetimes\");a(i,l,u,\"\\u22cf\",\"\\\\curlywedge\");a(i,l,u,\"\\u22ce\",\"\\\\curlyvee\");a(i,l,u,\"\\u229d\",\"\\\\circleddash\");a(i,l,u,\"\\u229b\",\"\\\\circledast\");a(i,l,u,\"\\u22c5\",\"\\\\centerdot\");a(i,l,u,\"\\u22ba\",\"\\\\intercal\");a(i,l,u,\"\\u22d2\",\"\\\\doublecap\");a(i,l,u,\"\\u22d3\",\"\\\\doublecup\");a(i,l,u,\"\\u22a0\",\"\\\\boxtimes\");a(i,l,d,\"\\u21e2\",\"\\\\dashrightarrow\");a(i,l,d,\"\\u21e0\",\"\\\\dashleftarrow\");a(i,l,d,\"\\u21c7\",\"\\\\leftleftarrows\");a(i,l,d,\"\\u21c6\",\"\\\\leftrightarrows\");a(i,l,d,\"\\u21da\",\"\\\\Lleftarrow\");a(i,l,d,\"\\u219e\",\"\\\\twoheadleftarrow\");a(i,l,d,\"\\u21a2\",\"\\\\leftarrowtail\");a(i,l,d,\"\\u21ab\",\"\\\\looparrowleft\");a(i,l,d,\"\\u21cb\",\"\\\\leftrightharpoons\");a(i,l,d,\"\\u21b6\",\"\\\\curvearrowleft\");a(i,l,d,\"\\u21ba\",\"\\\\circlearrowleft\");a(i,l,d,\"\\u21b0\",\"\\\\Lsh\");a(i,l,d,\"\\u21c8\",\"\\\\upuparrows\");a(i,l,d,\"\\u21bf\",\"\\\\upharpoonleft\");a(i,l,d,\"\\u21c3\",\"\\\\downharpoonleft\");a(i,l,d,\"\\u22b8\",\"\\\\multimap\");a(i,l,d,\"\\u21ad\",\"\\\\leftrightsquigarrow\");a(i,l,d,\"\\u21c9\",\"\\\\rightrightarrows\");a(i,l,d,\"\\u21c4\",\"\\\\rightleftarrows\");a(i,l,d,\"\\u21a0\",\"\\\\twoheadrightarrow\");a(i,l,d,\"\\u21a3\",\"\\\\rightarrowtail\");a(i,l,d,\"\\u21ac\",\"\\\\looparrowright\");a(i,l,d,\"\\u21b7\",\"\\\\curvearrowright\");a(i,l,d,\"\\u21bb\",\"\\\\circlearrowright\");a(i,l,d,\"\\u21b1\",\"\\\\Rsh\");a(i,l,d,\"\\u21ca\",\"\\\\downdownarrows\");a(i,l,d,\"\\u21be\",\"\\\\upharpoonright\");a(i,l,d,\"\\u21c2\",\"\\\\downharpoonright\");a(i,l,d,\"\\u21dd\",\"\\\\rightsquigarrow\");a(i,l,d,\"\\u21dd\",\"\\\\leadsto\");a(i,l,d,\"\\u21db\",\"\\\\Rrightarrow\");a(i,l,d,\"\\u21be\",\"\\\\restriction\");a(i,s,y,\"\\u2018\",\"`\");a(i,s,y,\"$\",\"\\\\$\");a(n,s,y,\"$\",\"\\\\$\");a(i,s,y,\"%\",\"\\\\%\");a(n,s,y,\"%\",\"\\\\%\");a(i,s,y,\"_\",\"\\\\_\");a(n,s,y,\"_\",\"\\\\_\");a(i,s,y,\"\\u2220\",\"\\\\angle\");a(i,s,y,\"\\u221e\",\"\\\\infty\");a(i,s,y,\"\\u2032\",\"\\\\prime\");a(i,s,y,\"\\u25b3\",\"\\\\triangle\");a(i,s,y,\"\\u0393\",\"\\\\Gamma\");a(i,s,y,\"\\u0394\",\"\\\\Delta\");a(i,s,y,\"\\u0398\",\"\\\\Theta\");a(i,s,y,\"\\u039b\",\"\\\\Lambda\");a(i,s,y,\"\\u039e\",\"\\\\Xi\");a(i,s,y,\"\\u03a0\",\"\\\\Pi\");a(i,s,y,\"\\u03a3\",\"\\\\Sigma\");a(i,s,y,\"\\u03a5\",\"\\\\Upsilon\");a(i,s,y,\"\\u03a6\",\"\\\\Phi\");a(i,s,y,\"\\u03a8\",\"\\\\Psi\");a(i,s,y,\"\\u03a9\",\"\\\\Omega\");a(i,s,y,\"\\xac\",\"\\\\neg\");a(i,s,y,\"\\xac\",\"\\\\lnot\");a(i,s,y,\"\\u22a4\",\"\\\\top\");a(i,s,y,\"\\u22a5\",\"\\\\bot\");a(i,s,y,\"\\u2205\",\"\\\\emptyset\");a(i,l,y,\"\\u2205\",\"\\\\varnothing\");a(i,s,c,\"\\u03b1\",\"\\\\alpha\");a(i,s,c,\"\\u03b2\",\"\\\\beta\");a(i,s,c,\"\\u03b3\",\"\\\\gamma\");a(i,s,c,\"\\u03b4\",\"\\\\delta\");a(i,s,c,\"\\u03f5\",\"\\\\epsilon\");a(i,s,c,\"\\u03b6\",\"\\\\zeta\");a(i,s,c,\"\\u03b7\",\"\\\\eta\");a(i,s,c,\"\\u03b8\",\"\\\\theta\");a(i,s,c,\"\\u03b9\",\"\\\\iota\");a(i,s,c,\"\\u03ba\",\"\\\\kappa\");a(i,s,c,\"\\u03bb\",\"\\\\lambda\");a(i,s,c,\"\\u03bc\",\"\\\\mu\");a(i,s,c,\"\\u03bd\",\"\\\\nu\");a(i,s,c,\"\\u03be\",\"\\\\xi\");a(i,s,c,\"o\",\"\\\\omicron\");a(i,s,c,\"\\u03c0\",\"\\\\pi\");a(i,s,c,\"\\u03c1\",\"\\\\rho\");a(i,s,c,\"\\u03c3\",\"\\\\sigma\");a(i,s,c,\"\\u03c4\",\"\\\\tau\");a(i,s,c,\"\\u03c5\",\"\\\\upsilon\");a(i,s,c,\"\\u03d5\",\"\\\\phi\");a(i,s,c,\"\\u03c7\",\"\\\\chi\");a(i,s,c,\"\\u03c8\",\"\\\\psi\");a(i,s,c,\"\\u03c9\",\"\\\\omega\");a(i,s,c,\"\\u03b5\",\"\\\\varepsilon\");a(i,s,c,\"\\u03d1\",\"\\\\vartheta\");a(i,s,c,\"\\u03d6\",\"\\\\varpi\");a(i,s,c,\"\\u03f1\",\"\\\\varrho\");a(i,s,c,\"\\u03c2\",\"\\\\varsigma\");a(i,s,c,\"\\u03c6\",\"\\\\varphi\");a(i,s,u,\"\\u2217\",\"*\");a(i,s,u,\"+\",\"+\");a(i,s,u,\"\\u2212\",\"-\");a(i,s,u,\"\\u22c5\",\"\\\\cdot\");a(i,s,u,\"\\u2218\",\"\\\\circ\");a(i,s,u,\"\\xf7\",\"\\\\div\");a(i,s,u,\"\\xb1\",\"\\\\pm\");a(i,s,u,\"\\xd7\",\"\\\\times\");a(i,s,u,\"\\u2229\",\"\\\\cap\");a(i,s,u,\"\\u222a\",\"\\\\cup\");a(i,s,u,\"\\u2216\",\"\\\\setminus\");a(i,s,u,\"\\u2227\",\"\\\\land\");a(i,s,u,\"\\u2228\",\"\\\\lor\");a(i,s,u,\"\\u2227\",\"\\\\wedge\");a(i,s,u,\"\\u2228\",\"\\\\vee\");a(i,s,y,\"\\u221a\",\"\\\\surd\");a(i,s,f,\"(\",\"(\");a(i,s,f,\"[\",\"[\");a(i,s,f,\"\\u27e8\",\"\\\\langle\");a(i,s,f,\"\\u2223\",\"\\\\lvert\");a(i,s,f,\"\\u2225\",\"\\\\lVert\");a(i,s,p,\")\",\")\");a(i,s,p,\"]\",\"]\");a(i,s,p,\"?\",\"?\");a(i,s,p,\"!\",\"!\");a(i,s,p,\"\\u27e9\",\"\\\\rangle\");a(i,s,p,\"\\u2223\",\"\\\\rvert\");a(i,s,p,\"\\u2225\",\"\\\\rVert\");a(i,s,d,\"=\",\"=\");a(i,s,d,\"<\",\"<\");a(i,s,d,\">\",\">\");a(i,s,d,\":\",\":\");a(i,s,d,\"\\u2248\",\"\\\\approx\");a(i,s,d,\"\\u2245\",\"\\\\cong\");a(i,s,d,\"\\u2265\",\"\\\\ge\");a(i,s,d,\"\\u2265\",\"\\\\geq\");a(i,s,d,\"\\u2190\",\"\\\\gets\");a(i,s,d,\">\",\"\\\\gt\");a(i,s,d,\"\\u2208\",\"\\\\in\");a(i,s,d,\"\\u2209\",\"\\\\notin\");a(i,s,d,\"\\u2282\",\"\\\\subset\");a(i,s,d,\"\\u2283\",\"\\\\supset\");a(i,s,d,\"\\u2286\",\"\\\\subseteq\");a(i,s,d,\"\\u2287\",\"\\\\supseteq\");a(i,l,d,\"\\u2288\",\"\\\\nsubseteq\");a(i,l,d,\"\\u2289\",\"\\\\nsupseteq\");a(i,s,d,\"\\u22a8\",\"\\\\models\");a(i,s,d,\"\\u2190\",\"\\\\leftarrow\");a(i,s,d,\"\\u2264\",\"\\\\le\");a(i,s,d,\"\\u2264\",\"\\\\leq\");a(i,s,d,\"<\",\"\\\\lt\");a(i,s,d,\"\\u2260\",\"\\\\ne\");a(i,s,d,\"\\u2260\",\"\\\\neq\");a(i,s,d,\"\\u2192\",\"\\\\rightarrow\");a(i,s,d,\"\\u2192\",\"\\\\to\");a(i,l,d,\"\\u2271\",\"\\\\ngeq\");a(i,l,d,\"\\u2270\",\"\\\\nleq\");a(i,s,g,null,\"\\\\!\");a(i,s,g,\"\\xa0\",\"\\\\ \");a(i,s,g,\"\\xa0\",\"~\");a(i,s,g,null,\"\\\\,\");a(i,s,g,null,\"\\\\:\");a(i,s,g,null,\"\\\\;\");a(i,s,g,null,\"\\\\enspace\");a(i,s,g,null,\"\\\\qquad\");a(i,s,g,null,\"\\\\quad\");a(i,s,g,\"\\xa0\",\"\\\\space\");a(i,s,v,\",\",\",\");a(i,s,v,\";\",\";\");a(i,s,v,\":\",\"\\\\colon\");a(i,l,u,\"\\u22bc\",\"\\\\barwedge\");a(i,l,u,\"\\u22bb\",\"\\\\veebar\");a(i,s,u,\"\\u2299\",\"\\\\odot\");a(i,s,u,\"\\u2295\",\"\\\\oplus\");a(i,s,u,\"\\u2297\",\"\\\\otimes\");a(i,s,y,\"\\u2202\",\"\\\\partial\");a(i,s,u,\"\\u2298\",\"\\\\oslash\");a(i,l,u,\"\\u229a\",\"\\\\circledcirc\");a(i,l,u,\"\\u22a1\",\"\\\\boxdot\");a(i,s,u,\"\\u25b3\",\"\\\\bigtriangleup\");a(i,s,u,\"\\u25bd\",\"\\\\bigtriangledown\");a(i,s,u,\"\\u2020\",\"\\\\dagger\");a(i,s,u,\"\\u22c4\",\"\\\\diamond\");a(i,s,u,\"\\u22c6\",\"\\\\star\");a(i,s,u,\"\\u25c3\",\"\\\\triangleleft\");a(i,s,u,\"\\u25b9\",\"\\\\triangleright\");a(i,s,f,\"{\",\"\\\\{\");a(n,s,y,\"{\",\"\\\\{\");a(i,s,p,\"}\",\"\\\\}\");a(n,s,y,\"}\",\"\\\\}\");a(i,s,f,\"{\",\"\\\\lbrace\");a(i,s,p,\"}\",\"\\\\rbrace\");a(i,s,f,\"[\",\"\\\\lbrack\");a(i,s,p,\"]\",\"\\\\rbrack\");a(i,s,f,\"\\u230a\",\"\\\\lfloor\");a(i,s,p,\"\\u230b\",\"\\\\rfloor\");a(i,s,f,\"\\u2308\",\"\\\\lceil\");a(i,s,p,\"\\u2309\",\"\\\\rceil\");a(i,s,y,\"\\\\\",\"\\\\backslash\");a(i,s,y,\"\\u2223\",\"|\");a(i,s,y,\"\\u2223\",\"\\\\vert\");a(i,s,y,\"\\u2225\",\"\\\\|\");a(i,s,y,\"\\u2225\",\"\\\\Vert\");a(i,s,d,\"\\u2191\",\"\\\\uparrow\");a(i,s,d,\"\\u21d1\",\"\\\\Uparrow\");a(i,s,d,\"\\u2193\",\"\\\\downarrow\");a(i,s,d,\"\\u21d3\",\"\\\\Downarrow\");a(i,s,d,\"\\u2195\",\"\\\\updownarrow\");a(i,s,d,\"\\u21d5\",\"\\\\Updownarrow\");a(i,i,m,\"\\u2210\",\"\\\\coprod\");a(i,i,m,\"\\u22c1\",\"\\\\bigvee\");a(i,i,m,\"\\u22c0\",\"\\\\bigwedge\");a(i,i,m,\"\\u2a04\",\"\\\\biguplus\");a(i,i,m,\"\\u22c2\",\"\\\\bigcap\");a(i,i,m,\"\\u22c3\",\"\\\\bigcup\");a(i,i,m,\"\\u222b\",\"\\\\int\");a(i,i,m,\"\\u222b\",\"\\\\intop\");a(i,i,m,\"\\u222c\",\"\\\\iint\");a(i,i,m,\"\\u222d\",\"\\\\iiint\");a(i,i,m,\"\\u220f\",\"\\\\prod\");a(i,i,m,\"\\u2211\",\"\\\\sum\");a(i,i,m,\"\\u2a02\",\"\\\\bigotimes\");a(i,i,m,\"\\u2a01\",\"\\\\bigoplus\");a(i,i,m,\"\\u2a00\",\"\\\\bigodot\");a(i,i,m,\"\\u222e\",\"\\\\oint\");a(i,i,m,\"\\u2a06\",\"\\\\bigsqcup\");a(i,i,m,\"\\u222b\",\"\\\\smallint\");a(n,s,h,\"\\u2026\",\"\\\\textellipsis\");a(i,s,h,\"\\u2026\",\"\\\\mathellipsis\");a(n,s,h,\"\\u2026\",\"\\\\ldots\");a(i,s,h,\"\\u2026\",\"\\\\ldots\");a(i,s,h,\"\\u22ef\",\"\\\\cdots\");a(i,s,h,\"\\u22f1\",\"\\\\ddots\");a(i,s,y,\"\\u22ee\",\"\\\\vdots\");a(i,s,o,\"\\xb4\",\"\\\\acute\");a(i,s,o,\"`\",\"\\\\grave\");a(i,s,o,\"\\xa8\",\"\\\\ddot\");a(i,s,o,\"~\",\"\\\\tilde\");a(i,s,o,\"\\xaf\",\"\\\\bar\");a(i,s,o,\"\\u02d8\",\"\\\\breve\");a(i,s,o,\"\\u02c7\",\"\\\\check\");a(i,s,o,\"^\",\"\\\\hat\");a(i,s,o,\"\\u20d7\",\"\\\\vec\");a(i,s,o,\"\\u02d9\",\"\\\\dot\");a(i,s,c,\"\\u0131\",\"\\\\imath\");a(i,s,c,\"\\u0237\",\"\\\\jmath\");a(n,s,y,\"\\u2013\",\"--\");a(n,s,y,\"\\u2014\",\"---\");a(n,s,y,\"\\u2018\",\"`\");a(n,s,y,\"\\u2019\",\"'\");a(n,s,y,\"\\u201c\",\"``\");a(n,s,y,\"\\u201d\",\"''\");a(i,s,y,\"\\xb0\",\"\\\\degree\");a(n,s,y,\"\\xb0\",\"\\\\degree\");a(i,s,c,\"\\xa3\",\"\\\\pounds\");a(i,l,y,\"\\u2720\",\"\\\\maltese\");a(n,l,y,\"\\u2720\",\"\\\\maltese\");a(n,s,g,\"\\xa0\",\"\\\\ \");a(n,s,g,\"\\xa0\",\" \");a(n,s,g,\"\\xa0\",\"~\");var x;var b;var w='0123456789/@.\"';for(x=0;x<w.length;x++){b=w.charAt(x);a(i,s,y,b,b)}var k='0123456789!@*()-=+[]\";:?/.,';for(x=0;x<k.length;x++){b=k.charAt(x);a(n,s,y,b,b)}var z=\"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\";for(x=0;x<z.length;x++){b=z.charAt(x);a(i,s,c,b,b);a(n,s,y,b,b)}for(x=192;x<=214;x++){b=String.fromCharCode(x);a(n,s,y,b,b)}for(x=216;x<=246;x++){b=String.fromCharCode(x);a(n,s,y,b,b)}for(x=248;x<=255;x++){b=String.fromCharCode(x);a(n,s,y,b,b)}for(x=1040;x<=1103;x++){b=String.fromCharCode(x);a(n,s,y,b,b)}a(n,s,y,\"\\u2013\",\"\\u2013\");a(n,s,y,\"\\u2014\",\"\\u2014\");a(n,s,y,\"\\u2018\",\"\\u2018\");a(n,s,y,\"\\u2019\",\"\\u2019\");a(n,s,y,\"\\u201c\",\"\\u201c\");a(n,s,y,\"\\u201d\",\"\\u201d\")},{}],24:[function(e,t,r){var a=/[\\uAC00-\\uD7AF]/;var i=/[\\u3040-\\u309F]|[\\u30A0-\\u30FF]|[\\u4E00-\\u9FAF]|[\\uAC00-\\uD7AF]/;t.exports={cjkRegex:i,hangulRegex:a}},{}],25:[function(e,t,r){var a=Array.prototype.indexOf;var i=function(e,t){if(e==null){return-1}if(a&&e.indexOf===a){return e.indexOf(t)}var r=0;var i=e.length;for(;r<i;r++){if(e[r]===t){return r}}return-1};var n=function(e,t){return i(e,t)!==-1};var s=function(e,t){return e===undefined?t:e};var l=/([A-Z])/g;var o=function(e){return e.replace(l,\"-$1\").toLowerCase()};var u={\"&\":\"&amp;\",\">\":\"&gt;\",\"<\":\"&lt;\",'\"':\"&quot;\",\"'\":\"&#x27;\"};var p=/[&><\"']/g;function h(e){return u[e]}function c(e){return(\"\"+e).replace(p,h)}var m;if(typeof document!==\"undefined\"){var f=document.createElement(\"span\");if(\"textContent\"in f){m=function(e,t){e.textContent=t}}else{m=function(e,t){e.innerText=t}}}function v(e){m(e,\"\")}t.exports={contains:n,deflt:s,escape:c,hyphenate:o,indexOf:i,setTextContent:m,clearNode:v}},{}]},{},[1])(1)});\n\n})($tw.node ? $tw.fakeDocument : window.document)\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/katex/katex.min.js",
            "module-type": "library"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_AMS-Regular.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_AMS-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Caligraphic-Bold.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Caligraphic-Bold.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Caligraphic-Regular.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Caligraphic-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Fraktur-Bold.woff": {
            "text": "d09GRgABAAAAAFtcAA8AAAAAjIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAABbQAAAABwAAAAcZO5Rsk9TLzIAAAHMAAAAVwAAAGBG5WHDY21hcAAAA2AAAADjAAABmsJ3mQpjdnQgAAAKbAAAACgAAAA6AksPD2ZwZ20AAAREAAAFpwAAC5fYFNvwZ2FzcAAAWzgAAAAIAAAACAAAABBnbHlmAAALXAAAS/IAAHFwGhhu8GhlYWQAAAFYAAAAMwAAADYHZDwyaGhlYQAAAYwAAAAgAAAAJAgCBEdobXR4AAACJAAAATsAAAGI5LUOymxvY2EAAAqUAAAAxgAAAMZ//2QEbWF4cAAAAawAAAAgAAAAIAGnAnBuYW1lAABXUAAAAxoAAAeGo6WB23Bvc3QAAFpsAAAAzAAAAT4ykUR8cHJlcAAACewAAAB+AAAAipKM/Mp42mNgZGBgAGKrv3Ea8fw2XxnkmV8ARRgubq9ZAqP/v/yvyHKD6QlQHQcDE0gUAH9ODo4AeNpjYGRgYHryX5EhiuX6/5f/37DcYACKoIAkAMOPCE8AAQAAAGIA1gADAAAAAAACABwALAB3AAAArgFsAAAAAHjaY2BifMS0h4GVgYGpC0gzMPRAaMYHDIaMTEA+AwcDBDQwMLwXYHjzFsplCEhzTWFQYFB4/59Z4b8FQxTTE4b7CgwM/XHMQN2fmK4BlSgwMAIAZjYTQAB42i2QXSsDUBjH/8/zjLyzYYXYC8rLlBQ2uZHSMmMzkcyFWi3t3p0rUiTulCtfwPdwgZottq/gwp2bLTn+5NTv/HrOec6p5486ZsAlSW51eh8FfKPF8oiwTskjzsihxDFmx4jSR/Qcndc0xskEmSMREiDtpJtM/59PkUE4xEhUV+CXe/61gUFPD2JaRtzeELBOrGoJXrvDqmXQqNcI6qWrWS96zIchTwUDVkG/FdFmLwj9ucR3JWyan87Ax3/6PGX2pBG0KsL64L5EMEI6dB2ie0jR21LEjiadkyrScophzcCreexKAiZr7oP3YUkjZ7fo0is06AEKmnVOt7AjT5yv1b3LOSY1iWbNImo3mGdGTawX5dnVfnNkhrNkQRNYkguMyglGmcMy34XslbNV4JVP5h1hbw74ATA4UCQAeNpjYGBgZoBgGQZGBhCYAuQxgvksDBVAWopBACjCxaDEYM1gy2DPEM0Qx1DFsEBB8jHrY873////B6pRYFADyzkyxDIkAuUkHjM+5nj/Fyj5+P+D//f/3/t/9/+d/7f+b31gJxsuGyqQBLULB2BkY4ArYGQCEkzoCoBOZmEFMtjYOTi5uHl4+fgFBIWERUTFxCUkpaSBbpdlkJNXUFRSVlFVU9fQ1NLW0dXTNzA0MjYxNTO3YLC0YmCwtrG1s3dwdHJ2cXVz9/D08vbx9fMPCAwKDmGgLgiFs8LCidcFADwWMrgAeNqtVvlz00YUlnwkTkKOkoMW9VixcZraK5NSCAZMCJJlF9zDuVoJSivFTnof0DLD3+C/5sm0M/Q3/rR+b2WbQJJ2hmkmo/ft7qd995PJUIKMvcAPhWg9M2a2WjS2cy+gyxathtGh6O0FlCnGfxeMgtHpyH3LtskIyfBkvW+Yhhe5DpmKRHToUEaJrqDnbcqt3OuvmpOe3/G37we2tK1eIKjdDmzaDC1BVUbVMBRJSoq7tIqtwUrQGp+vMfN5OxAwohcLmmwHEXYEn00yWme0HllRGIYWmeUwlGS0g4MwdCirBO7JFWMYlPfaAeWlS2PShfkhmZFDOSVhl+gm+X1X8EmqnJ849zuULdnY90RP9HB3spYvwq2tIGpb8XYYyBCnmzsBjix2aqDZobyica/cNzJpaMawlK5EiKUbU2b/kMwO7qd8yaFxJdjIKa/zLGfsC76BNqOQKVFdG1lQ/fEpw/Pdkj0K9oR6OfiT6S1mGSZ48DgSfk/GnAgdKcPiaJKwYOTQSsoWZVxPVUyd8jot4y3DeuHa0ZfOKO1Qf2oy6we2Je2wZDs0rZJMxqduXHdoRoEoBJ3x7vLrANINaZpX21hNY+XQLK6Z0yERiEAHemnGi0QvEjSDoDk0p1q7QZLr1sNlmj6QTxx6Q7W2gtZOumnZ2J/X+2dVYsx6e0EyO4v8xS7NlrlIUbpucoYf03iQuYRMZIvtIOHgwVu3h/Sy2pIt8doQW+k5v4La550QnjRhfxO7L6fqlAQmhjEvES2PjI2+aZo6V/PKSIyMvxvQrHSFT1MoykkojlwRQf1fc3OmMWO4bi9Kzo6V6XHZuoAwLcC3+bJDiyoxWS4hzizPqSTL8k2V5Fi+pZI8y/MqGWNpqWSc5dsqKbB8RyUTLD9QokLmA4dKGjx0qKzBI4feVQZNl1/Dxvdg47u4W8BGljZsZHkBNrKUsJHlMmxkWYSNLFdgI8v3YSPLVdjIUilR06XmKKidi4THJng6HWgfxfVWUeSUyUEnXUQRN8UpmZBxVfIY+1cGSsmhtVF6zCW6WEry5qIfYAyxgx8ejczx40tKXNH2fgSe6R9Xgg47UTnvG0t/GvxX35DV5JK5CI8uw38YfLK9KOy46tAVVTlXc2j9v6gowg7oV5ESY6koKqLJzYtQ3un1mrKJbg8w1jEW0dHrprm4AP1VTJklNAj+NYUmvPJBryKFqPVw17UXx6KS3kE53AmWoIj7fXMreJoRWWE9zaxkz4cuz8ACpqnUbNlA93mvtlLEcygd9hkv6krKenEXxxkvtoAjnkGvvhPDJAxm2UAOJTQ04BeE1oL7TlAi02mXQ4Mj9nkUVP7YrbiRPSpqI/Bsp1PuhS6k/DrHQGAnvzKIgawhNDf0NhXQPEI0ZJOVcbZqOmTswCCixm5QETV8G9niwaZgW4YhHytidefo1zdN1EkVPMiM5DK+ObDAG6Ym4s/zqy4OU7mhpKhw1BoYzLWwklTMBTTgrdF2++j25svsEzm3FVXLJ17qKrpW7kExFwusPc5BWipUAdUbVdgwulxcEqVeQZOk19UxNDDDX6MUm/9X9bH5PF9qEiPkSL7tcGCjz8EY+t9g/205CMDAj5HLTbi8mDYnvu7ow/kKXUYvfnzK/h3MXHNhnq4A31V0FaLFUfMRV9HAp2wYp08UlyO1AD9VfcwZgM8ATAafq76pd9oAemeLOT7ANnMY7DCHwS5zGOwx5zbAF8xh8CVzGATMYRAyxwO4xxwG95nD4CvmMHjAnAbA18xh8A1zGETMYRAzxwXYZw6DDnMYdJnD4EDR9VGYD3lBG0DfanQL6DtdT1hsYvG9ohsj9g+80OwfNWL2Txox9WdFtRH1F15o6q8aMfU3jZj6UNHNEfURLzT1d42Y+odGTH2snk7kMsMfT26ZCgeUXW4/GX5TnH8AK3FNYwB42mPw3sFwIihiIyNjX+QGxp0cDBwMyQUbGdicNkkwMmiBGJu5ORg5ICxRNjCL3WkXMwMDIwMnkM3htIvBAcJmZnDZqMLYERixwaEjYiNzistGNRBvF0cDAyOLQ0dySARISSQQbOblYOTR2sH4v3UDS+9GJqA+1hQXAHdZJMsAAHjaY2DAAEVACARMS/4/ZFrHeOP/o//6TKJA/jogfz3jfRgfACWTD2EAAAAWABYAFgAWAHwA5gIQAjQCbgKqAxYDVAOQA7QD3gQCBGQEwAU0BcoGNAa6B8wIJAi6CU4JpAoWClYLCAviDP4Npg5aDzgQIhEgEiAS2hOgFRwWNhgAGUIaBhucHIgeAh7IH6AgaiGWI0gkOCVgJgwmQiaEJqYnICeiJ/YoaijgKX4qPirGKygrgixELIotbC3sLkYu6i9ML9AwcDDYMUYxzDKIMyYzrjQ4NDg0cjS0NS41pDYONow3CjfqOII4ljiqOLgAAHjatL0JmBzZVSYa996IG/uWEZGR+xK5Z1bWkktl7ZVVUqlKpZJKaq2ltSX1ot7UarW63bR7t93YHmxsY2wwxpjVBryOt5mBj+U9mMfAe4OBYZlveMY2BsMAA7xvZh7zxu5650ZmlqTGZvsYS+7KyoyIjLjnnP/8/7nnXnGYa3Ec9yvY4wgnctLnKI84PNlo22270rYLrffd12ph75t/1kKf5jD3yO5/5f4af5qLcGnu0c9bIkYc2jz0KfXomb4Fl/EPcQjh8xzGLt5KHvqUPnzfe937tW95fF/n4LsRvpd9wm3t7Ox8IZXwvYBQr+F0ptstP+q5ooFFz0QdTNg7UZcWgvJ3xHIFGSPkR5GsFIxaIlmtJlMV/Fg5kxD8rCz8u/9N4BGi6Ae++TuxfLZVKHLwLAr6FPd1/AXO5LLcjc8TjAlmzyLDvUU5QvA5uK3wBrlzMCacj9idq3d+6t396bc7bWenbyIumXBskXImMgXqNpyW71ETFSrlbqc33Z72O+HjURMH3TK86VmmouuabYlUeaDqKyJSNU0TJRt/wZr9jv3oxPV0XBJw0hfFeOTBKwhNzb8RLDi2+1dkHf8r7jz3CPcC92d9fwVRcRtxwgENI/kmklAeEUkYPmaPEyjHCdc4GQZeRjc4qsBPyl3lRJE/x/E8PKAkkXPwWG5oKfZsdmjBwj/kdP/bnN5vfdszJY5giVwdOMKlvQuJbBCTAvfsG25cv3zp7D1HtmZ71XIuY5vceeG8CgOKKkG5EHjMQ6gX9aPtVm96GXUyiL0hgpdUyoOf5cGQ96a7g6FvDQ4wwXv8aBZNdzuVciUQg0Xkt8KrzCNa6sC1qefCIexE5MIHywiOgz8Fyk4nK7ncfsEStnmplE/6dj7La5qqe7M72wewNNbtTp19S0SYjG8ks4v9Sy8YdivZLboHppslMhmkurMUCeYJ7/63RKICee1yLV4sxwySVJZe++Yb74kuRgtnFso6wpTmLB1dQhhVxfvBvSTLUN0NGRGCpHSxcLKNeVc3Tu2PJDcm4zULrbcvjE1dyMeDgp100vcttXN4cqUZJBGJx+BqqPdXicZkpTWVIqZYOvbaR7afdWjh7OmeSwgfSSchDsEQR9FnuQ+FceJA0DK/5kK39gNMo4PA9FwTgwlg5I7GIwUUsWRF0/D7LLuo0EevIHrvI3CdV3cPoHP4K1yeo5+JIDTZQL1WGoWjF45s1PdcZqbKOBtZsM0SQtsqqkSXXLljZLJxgpXuVCqneaTsH8ZfIrLsxg781KELf/FYNpGSRJHoE+nV6YtvNf/l4/tPDe79od01dAD/ARfAdzrsO51OO8r+sO8bGb67jKZDh+iEFn0IPI+gYup4LZZ0yrWTKiKzfs0xHW88PYZ/W0FIcnvveeDVH7x2T7NlYknCnlt67NL3fte5x2cLkcH3VtEvIg9/lpvlKv1ib3pirF7IpW0dwlhniMlGcQcONNEWYJiHGSBU4HnhLuAGwG+ZJ8LtdNueAW64jFpZxO514KJUhBGCISt0p7vgqV2dJ4Ywaxv6QUWU9FTCJRkIdLwvgkXZOmBikZBkwxMN+YAoZXjEH0J/6WGIsowuSRWFikrUNmihrRLpNBrXZUUqq0hAOBLVqEGneHW2JBbntGn2XDO7nyBr+BQX48b6NXAhbkNXMVrnOIK4k4A/GBF8lY3ADhyMDrvlgsvT2MDSeQC3gm0iiKxC0IWHzNvo5+IIPcbz0ic+GYujL3yBFyR0AW+LH/qQrDjotX+vyD/6I4i9HIfLPb27wn0TcC3HWX09oWIOvpZ7KECQHXqD7DAwKvUGcR6OJwziOOqWn845qqA4WYqRMNXikYaMnIBl3KKLkRQvxGsZTScqLs7NRZAxZ1PT18kC0kJbTnN/TlaQA9CU6UNIgOlOh08ICQceEV5KnBTmKLBePsdQfVrU0HPoOSKIf64n2P2H13lw96+5v+AegMObhz6VB/xU2dvn4II2Sx7W7UufY4O3vfNZJ8IiDB6O5bmg/GB5rlyfLo/FgmCyEITXrO1u4jL+DU7jzL4mIm6DDUmVDQmKtAG/sgiJMNbI+johRBO817rx+DVkoP8dIIT/xisI/RrzV8zVd/8r9tB/4+LcONdm0bkxSNLqKN5dLrxFSGjo9PA9xG3vfK5cHMfs23qt2xF1F8r64KEGgHAIydNDg6CSi+orjbVY+VStlstvPaIhrB9cXFB4L1+bLOQ7zZamEu0h9BeSFq2tnWhNHplJmuqlDdHPqBc2F0pEjpyYGt+Jx3OFTClizj4Q2onDRfSnXJOb7DfHEGFxBv9B5BrLw7EwA50dUA3CpWOeaxlckzQH2ZiB2B4QzSPII36+u4C6PZYCmCMtos4A7ivlS+LXW4gKFFORP3oUodci6E1WTKIEy5G4NjMGjoG+IvHBgY13PcIDXGDsOD5VeYJFwQjedCJZKimCKJrmACvG4J7a6M+Ahx3pq0UVY24coghDjm6CBWJwCLAsfANuH54BWMp5lk8JmMNjbnKTme/mHe/vfP7+pbkgjDqWtWDwu+UJhiyMLoUGAgZFmTWKQDtcA4nMWoUuOwK1m+XSIVEReFl+Zl005teNaI1sHMKCKvAJlIkAruvow5XPJ04tnEqcQ9ulqYDwAEg6XZNQu5NI1WvkwAYWgGxgAY1NUYSi7YOJ0Fuyu8tYRV/n1rgH+2oA8Yt6iBfYc2bgOTMUjCTwnHB1xBTgaXk+ZA8R9rTJ2wfwHOHJpb3jgGH1HcTtX52fnZpwIxLl1tCaCGbttUJMh0EIIZOBfHvkp/DcjC3AMPgZFMLGgCR0Owx9Wd7vMoM3UPc9J27lohOuVh/nTT6P148agXQ4qwf2egIYI5HEtUuW9F1X4tnjh6qKqq4cfHgiWawtXtT+z6XlRjpK5BTRSQK1JKRNu+mpstMUMeZh1OYmYokL32HwJZcgRRGyB8oL7XnTK4NB9d0F3EV/yZW5HjfVHy8C0qJNFfLSRibK8BZ45g5z5UNDrEUu2upMFQJnjAfEgGiEZ/JcAlgoui2gywUIQI89M3tG5sx5sLfY7YRDA3/SqN2FdPvwZbAIEhG6psgneUnKGHMIy+DhP/uJT/o8IsjuviH7h+Def2BRitLd1/67XZTBw7MZw3nYIEQRPLnibfTSX/7yfzgYI9hZ+rEGz89YjzH7O7urQDm+ws0x+0cRR1oYCxyzf4LZnyNgYIEAB8Q4REWwvyCE9C/CM/vfPkDgeIG/tHccHth/ulMqpBKGBvafQ3Oh/QNmdpuFNqSeNApTg9cOQ+G2ycf5QiUYmZ1Z/U96PSHC/9ZvYt38yEcQPDY1egvPL07+i0e1yv3HsEB4FuGSZC0v7Dx64BeqCGTQMsZjYwjzROGLa3Vw2cX2oYefNXEdop8djVVdyj22s3Z4gLeTgLcF/AvcFLjqqb4pQ4hHXQibVcAVMmTnBTgOQEa4KqKhUhpxckoHpJqMFMm3OdR/3aH66w/1vu2hqX/4VVmeKMAhPIOhwQnf7lAGaLnXHUrBrmEwD85gqbA8PIQH6OPR1duHEkJPD69IyfZO+L++h7j+0nRnYrxcTCdNnZtCUxITBK2hhcUQtvccvbdnfoiHYaJiyNCaJuOIHTbIAcNkhf5I7ClIEDVF96x0MrrY3taQvn9Nya42N5fHbi3OXk1lTm4/83asFNXjy/W+gtSlYmN8FUz6CyImq2B7QRQEarQOv09UBami4kz35MHlsamV3vLRy5/e94CMXiMza2mgI9I7ZzKLNRqJDnjH7jzeRn/AJbgTn4c4wdxInVrsF5aULWaTCLqtqIfvx0bvs4yN0ZN770Ok7Hyutw5sxWfEvZf3Bgy4AHHQYUnCma4UxPJsCqO/EccO/cDzhia2xjCuvOM3CP65L8joGXyJxuTOg7/735IIK0r3Z1FJIkzLQaZt7v5PnMG/CvlsFbgg5OCtubzGM1E9TFEE3+SZVDk/wKv9+/ad3H+yNRH38wKjECw/DShEqMXuVG6MSoDeCoVB+IsfADIPbZVl7H2RiQ/SGtCLCbTHOVBdQr37Yjkzd1o35qPZJpInT373jc5EMveohSFyr8ToWPd+cCcsRSYqmY5R8HUaW+9tCNrBORflqpnJQgr/Cs7Ggmo6u9qVpMCKbZY1ujB5fHZsrTY2OSkiiNy1/ZbdGG8rSMtOxau5shJppHOSbS1+84eWW4ZdXcgpVnSqMbkVMWA00ruLuAS5sM4tco/1jWnEEyBdvAQJnYU/i768ACyAx4SHzM9zQGFujHIiqHuOizBClvnbx/Ac/L2XHcpg0RprdFqNxbGFWiUeDSgMcwliogBD2G2HcmMJKM4oL5Qre6wtJAulUPJm0Ii3wae49F/+vYekc4/VxjVIB0FwWBIdX5oYHzf5wI2XbujyC+967Uvd3lJ0otIoimi5nBd+/5d/S6SKoEiTndl91BIETQcHw2q1smzHVqbTVrwtvvuew4sHlqJ2qkaTT/RyLNczr5nd/a/cL6N/x6mcz10YsGZvREmtkA3djUMh04ZIuXrnR4xDjd6FxHl6+BlmCPL5UrEYkqVQxzLEAEiIjIpN8MtskMiONzOpQMj40640nouhd8aDfCKWzb32wclSoNqJ1OBeZ3ZXud9Cv8pZXJvb+Ewe4fVBmcRmpYwnw7sGlcRZLC798D34lVF+9u6I8/dBH3oOpDALWXzITMOIGAVBe5pR1RHTBrtNoNvCNTwCwOyZ1NiUaDUtktexwphYJFHRvBY1sCw3ZIJIRVaIxNvoVwuxoo3LklywBfza9yGUnhiPxupdySBUnM3KpozNSdWkmmJR4AHwjFHuo3gCFIAGSiHoZ5kegLu/yrHq2elh9Yvg7W6hO2CgcIf53hJhuuj2S7iChL751yAxARyBbYiv//UUyRGTl3iK37b3ajDG1d3/B/0E/tfcJLfAfbovB1mZ8reBMcoPRxL5r/MN9a5Pvdd9Wvg7z50K/Qozh7l0+yAWfnGIOlao4r6FYw2KfvOz3bZtcpNoMpQZLKCyyDURaNLOXhoKE5PLXppoL/5C/knucMpfL0/GxFLJjZS2rr01iQMrNXUhGufzwZwplWZSKbW5+MFmPlNp5DJ1/I5iMpqUkOtJyeRkduWSFJmrx9zCoWgrTggf9Y1e0tWTddfTW5vNpW/+WKIcxFPVYph30rtfIfP4E9zL3Ep/6SZQl+duPbTUFQi6cq9CYFQ2ozolIL4RK5iSG0z1E+46nPoEK4nirfPntjbLxYjN3LcEd8+ebgJ3TLSXhyvlZTSSgpW9ytoe+MNbnd7r3Po2cQcqd7tY1+t2lnA3xLFlFJZGPEjxwHWziGVw0kVC8BQlarF060m11iykRLdwQNXQg89nb2LteMfSmz0iZ9sqCar7DFlGdFwnRM4VdGNn63Kkqr41B+9VdL9wI6ZEIuMtdYtldFQas8dkhVI1lpQwSqUJ37gcwbEjMLiHDqEjh9VGOs7LOUnEq9vx8++Iyp0jMq4WFSmanvCpkstX8qIoIj6RFWSJ2kHZi9lLc10ZRa8mkoa4bzvhJC84GEmRupKrR6Wdp25Wql5SSQLtxjgZK/9Jv6JXiNlqR8LcOws2+2X8Me4W9yr3I9x9/ctvedPjBNGnXSyi9yJJBGpK+E2gzVTg6Q2OIoGi6xwSgexf50RJEKXrHCRyiVwfVOsJEc4B+w4DxcBbH/zAO97+0guPPrx/tV4NcuWczETGqOLCtFI7REsTtVnWpqGNRgmlEJiQkJdRmG6mBynnWxo+LBt0mdgOjwgNH/7SZnWMUISbCDL8OCMCAz4H+b3DNBp8BXw5FfduqMW+Cf+OtmBphuErjp1UCEK/AaL92SPxiHD8lFWplhPtrSNdLTi64YKdFLlqPZur2TKP1XEDNJOZn7S1YgHyVvLsBEYeBmpfytQqhqzp+sQLy+2zKQFjiX/mBo/+37gh6rlYJlvPQBZH9Y9INTNa0bAlTN6rXHl1rZzRTZkqkhzFH0tEum1PoUQBhvgQRuaZfrDuCZ0eEXkxERdxXTUMUAG+fMDPxjRDvCm/sORWRKGQMWJmoeBoom7UekkN/ICSWMaxatVMxLHSljHR7Y5LCFN88o8vn0F2orqac5MVJGde+4kf8IHqeGWjsB9J9ajIA9+RfYj1jd0v49/BP8Zd5qb77SSQiXFThxjHmycPru3j8UZI2sC/yE2GDDcB+Ay0deH88WO9brXMAhyBCQf6mUVumI16Q9v1OneyaeDXvVCC7rkGSC4MrC7qM27XGgY4HNhm3gPOwArB6D+XZVsgfvrtMUWO5aogsCyNEDu2dWzzZr6a1dFzmFfUschxZTL3n+6d03FdMM4UZmXLu/l4lJVeUCStez4PphLU2FJKjttygC8rNb0y7xpuJ1GYkkRRimdL0Zi5Mh41KNaqb3rb8cMe5WcQ74s0pbax9PzBK5Z/7h5FmopkJUtbg2zB708oWKAKL0ZEasuT3KDG8YfkJfzT3APcYn/u9Pah1TlVEgl3Efgd3mxNYrzOwSsQkAPYxJdGJUCP27rvSq87Vl8KBBZcnQFSesEECivhven2XRU28Y74Go78MhpULe7kccuIYeLrwmyAnuxgov2Hn/348WUBaZpsrE9e/dia9eenmlhp8vaNWx7FVuH0K61sejLj+KYkT14w9PPlFJEbSdPEYnVqQdH0uiHzSq6myrxYrIwbzsKL9+Rs8QHk/egHD8/uaALVssWZi4kZ5L6y/5IfObUtmedWNUxSDZnGLM9U5NUjmmvnRSnWTLpRjUjpoJ4FjZ33dYVobnE8FjGpFcvkYhLRClEcsHHe3P1D/HuQo57iHuzHjm8fhuz7MIyxaWAY3831TqkIzjtI+4mhD/OECUr+5mjEDcbDvt2HNqspqQ8+cPpUu1WthhZhgsLfm1jy6N+mzMvIZz9a3h4MtU0MGpNWxnEhJNniQK8M6vus8sZmO0hhz6KDOh0zIegZtNrZbJvxh19NyhsHtPa1+uHvuzftzumowAvG3OKYXldPvNPDVLdNXdA9HZ4km1vGiqrWsjAWQPFoxMJ4foHmmqI5b0YsOSaogkIdahSLs9MqlhW1GbcyIu7pNzbOHPKTDyClQhOF/ephP7l+rxTsbClEKRd8MULbDYqssZgrYl5VFdnBgtSqsrk6yTDj6zOOVq0orTSVC7IiWEQihKixeMKH7C844D7lJyGt2WGM2LvX8e9CrnqVO9M/uQGJ6eLJY4ena5CZHrn/LOEEAnkKBBUv3OBA9gqMWoiYY3kKQTaDrAXpi9474mhAON78yne84dqD+1cX5sbH6nWJlcwrZeAFQxnDplVZCETvDI+h1fYqA95ejfR2UgunXRhbmRjEUNQbYBV8LAbmKIHtVQ8H+avT26s5ukCPeIkcWDZ0P26pyHCatfmJCtG3GlZDwX7lfiPy5k4hWXIJlXQ+1pq+2FypnFxOwKAbsZIJcLwzoxcn7V7KReKq4fYWxvI8gi8GvBJnK11Dn57aOJgONjcoxkrByWnvF0WGL7ikYc3SHGdmvTY2UcmvWHLlVMubS4tGPOh0RGneza7LMMSyfmJqNqoXkjwWtbSqKOfriBi8lXKjkEcmVlWzOZlvUlIItFJUxfX9mUR0ZivXMujSml+y4ClzOhiJxSPZwp8EVvgM98F+ZB9C5J6jG4SVd2cVmXDDWAwYV4FwQyzcBCwwHBSEMOKsIdVIDsrBf9+R4TRy7lschDiBR8LVwSFAwvU3PHXj+tV7gbWUKQvj6bDgC+b1RkA4KgeHyBgWBAeQu4wyg4DOwgs2/8ZsHdYhwGvE6BBKJ27PHULMTocl1RFUDAuKoTdg/X64L2e8Vk/xJy/69Mpsy5EEqZNPTR0eT/RjT59bPV4Qo4cvUJ9qM0smpC4B9Nq8pqHa0xG67SvzEG3t+pwryzmTN/W8quFIsl46mIptPaSk7rl/cuxcEMNXDiuFrOuS+YMRRArZbjQW8WtHEn68mifSUvVDO492VL0+hSUslROUVSaRIGSWjc0FlDqqI7/o/rGWMcqxqE1FUVVJOk0St+o6lVM6cpIbs2+4lIssa3jn8MbkGB/GM919Bf8V5Lzv4c71z0wiJohE4e1vef4Cz9MzEAHAO+E9kAs3OBH4p8j4JxBR/jpAtcAD4yTkCbiQIHKh2Sy89d3vfOWlxx+778rpk/tWxuqpJCvnlUah2xnh7RKGAB3FKtjLy6C9SgZELMiAsIrktpZCq/mt28bGeymURXyvnRmW/IdF/5C33CFI9lBiHFf2QAKJcSzNzgtIcWcmNohMEaDWeN00JT7fFymbYHuL4KY1obOmF4mYEnywKOleilYb+oWorms5DAoAH92OKWavmk4joN9C2hDVIGFRPrcYi7U3o7yQVklUOHFiMq/wWsTNI8xjlFgrmZYkFIOD5ZSglc6cnSUydr1ab7wBI4qwUNUBIus8vPQQ/wgSEK1KxZhoKtmeXAfgJI22hpCathZbczcvipEI5ltthVSDAjIzAin487kjj1xwpbqOJLlV1PRynG4fqStYkmKIFwWSXI2AUA9CTZ7b/Tp+HP8kV+LOcVf6xtpYIQoYtMO4Gh4K8/SeBwwrkTqTGGHB12C1/b/jc5uHTKycPtltT7A6od9wpu8WHmC7gWgcGSnMoqRcGUK1n8GhacF7utNsqp+9O2o6ACcZ+swE/PdftOZSUnltyydSaUXBGPPIurShG/bWoeLapOxjSZaFmbog2e01W+HttKn6TiWTIIoI+LtvRzUVZV4nmqqqlfKDD80vqqkUfqmGpHiSR03IiSLSDhYggzruohYIkqw89s0P84o11TOomMuYklQO9tun9teKVFbXZ0SI0bG6bMY3Vib0cj6YTB6sijYkUbz7P3afxNfwR7kK9zi31T8IaMFN5BwioG1EgQCxwYQwBDQU4O/1cNqMxRuFv9cHFXfWZKVzW5cunDpx+NC+lVS8mBdZO8f0Hg+fbrtiCJJAUUY0MygzSTYtTA8ml2/3btye+R3lV6b7yr29KscAdF9HT3++Vo8WU6mjheSqg5B49Vykro3Fizbv5JOJpIBszeIn0CtWqHVUp2QZkYioWn6zf0jPdBJ1hwqyrAVuzJBRY3Nh0pIQXy9WcilJsiMUwi03g9/tR8xINwbQo5LxJJCfqKoTFPFKVMdugu5/SmWh6pSy2fzEbD/dKtSqrfyEhtVI18m2DFehNuiAZkxfmxGK7UyqnSgXgWlo+TFKgyUYaXf3j0kZ/P8Z7m3o0X4yBmm7VwdV8uqbXljiRf7wISzITyCJG3Vd7ecUwuaJAA55YM0yJDaZkwXuhoo4SeZAiQ8ntsIgiB3iZFk6x0mSwWq/9BxHqU1HNa1/6rXsvWsZ4bWi/yzXYvfVPwDyUQGxfINTeKyA1/39V/tWF2IFtDTinnv26VuPPXL2zD1HN9enO5Pjhbwb4Z5Bz2i3p3fvzAmD2VxaGEzsISBoYlhyG1FBSOCtnuiyMpEYzeLoYLa/1QtV0h2KCmQqSqGwIrfn1hODWoQfRaFv+4wUAJjACT/n+UhKVAWUDJYvvRi5NBXNYRvJjGAlnzq6fM7WPaxcvZj2KmXNdiN6jiD0o25VSUTjSDCsmJQvgnbJHpsMnIwGenUy0xRUQpDoFtPVnJOIRpK+Xg90kcdpdMr1D+zTga9h2lp4XNWUySDp0EL/yixRca053dpSfTWr3URIm+nXCons9LIk35uUiuUpF8kaAarYowqmW0eRqlu+qhj+fCS/70JCVxHcF5Yt7NbdYjQwFVH2jXpeFVbQo+5VxxRSNG5HK2ojE+b9zO7X8Dcg7z+MxL794CXIqXlgvOJsD/QtGTaFTnKQCanIkAjM/QAQewJp4QZL98P6EqXWXleDvTdL+Y87zwjPi/2Tvq/fAjwUOSqC2yMu1Bff5szbJzHfjNx/9eKFE/e0p+rVVCIeCyQ2hXXnBGKIieA/7l6u6nbCdovbnhYMUZWyXIWX+N5tcBwpftbOBJdrg08HI32BE/jA5NUolgQ/IxHUnX6XOTUZy78SEFdScC7XWeqtzD5wIQ0cL++pSQNZcnNaNrxE4ECikOuOAog217jyvvlSVXCllEMJ+j7iJoiEM7XmETkST1mTc5UkFTGZm0UNXifklkQEEyUL4plUTVcLGR45SiGCtMjpSQmYi2JEwV0SK6loKSXz2e3Clh1dVLpqzpaw3si41BkLfSa5+2X+i+AzX0T7+5kPvfNVUKkfe/LGY1OCoPzcPaAsyebPbOyfdzWK1gegtA1gQWWJ3tCAaBLIXDc4wopnkNMUrAiMMagKVq9zKq+oLMUhhQcbynJoavEcJ4rwSlGcQ4NJx+HU9tFve1lFoArLmJgKGDBKpYOL08HF6be4+OC6f8ed/gMuidATd1+WAWA/i7hPffIHf+C97/mut73y0oVzR48sLzYb6VTEgvH7os6qbwGrebLuSyqOcu44qtxRL5oaNsENPW3EaNnhDOYwvJxAoxm/7O3JpBA576rKT+DXZ2/2DSNoHf0Mm2kG7u67vife0d7ZYrM/AMLAIibAaXvd4TTHkC+Qz+Q3ooiflY8eMhXPtY18XAcPtsezdtQRSSwtY5M0OsmcTrMpSiTBmlc23yM3KrkcoTzErCRZM/GoY0ULTdVILR+qj2t2Km5aup7O6najsWDwMlWWsVwu6ZLo9bZvVaWrDaoeXxeUww1R2jxcKTimalk5V1K1JEbILq74wKzVrmhkiEhZ2wdBn0bVKhJi5ThCiiIrUUOy8eWxlF4tfuZm5MiGKUUUOaYCJkVaaUlBoi+gGD3z8Zenk1hJClY5ZpfeccttX1MayZCsA6e2FwFcaVMVU4d+8keXijKWTSvlRDIZN66VykDMiCzQEug3d6was1TNKE/sR9YpVVqQ0KIsLsV0gfdyHZmXgXtQUbbHLdG52Ej9UCp8h5WzHp2YevAjZRoruwhBwIpiK1ATg/6zxO5Xyf+FP8K9n/udvn8Q8fR9Lz3y8GyRCvx7kMiRzQeQuD5gLlMcAuaIQMABoeQhl3OQ3FllBmN9r9NDZ1kcwk0UDZGFW/4ff6INJ/bbe+fwFNRiWA2ig2oQ/RanhmdBzNjveudzz57d2VhfWui0KvmwGjTo4RtFwesIKwVZ8HrPHhaj/TsKQqFP++FJHr0t70F2+q43VCATyB54dKE8bGMeseZCdBSmYW9kqEf/OpiNB75xdWl9zqC2lp2m1EtV6xR5vNDDfHoSYNdcW71oF+WjbcepF3dOLdhUUyXDEDQ3IbgLgakT0bdtKgu5JELW6klNtcumWqrorE4e0ayooauJWLvOplgtolaEBx4AdZLaiMl2piy8tO47+xZ//1o/gPNiTq6X0DQjmkykgf0QUgSH07OTRUlT5U6vLSNjKdaoZ9ZTmhfTo6BNDCwHCRU3Ts/ljxWSNlUVUPtEUupjopWccFBJA/KAkKBZ2UJGpE65p3gds7P4yI62sS7wuZhi56so9EENfPAJ/DvcE6xufn0F89ypY0AjxmqsF3uTIzwTk4D1oLEBLXl+JBLDSu2jD108X5xoMnEYziMwfjcy0Whu4k51MqqYL+O/bfgM9l5XLx8ViUb1gaG+KUygzjJC30MEgU0IUlM7dH7x0uWIJJotSXv0/OZ8pjG2crbkufkSryhjY9ZWRDQijcAQ5c5M3kYSnZawbHcqAlL9XkQpvHQx1S4pWqM4uZhuV2eKb5ySpFYL/zbIE4w12RAID3Y/caZeqwbHt3TlVCkryV5K1LJEUXs9PhIYZiRV6taTjgix0fBlNr+XL0iAG6UjCwamtlPpWIgUE1TDWnfzzW9aTukqQKdh4tn5UMvnd/PkE/hT3PPcx9BaPztdwkT66Pe+9508JT/58tNEoI8+dOUeHlTN5jnED1Fhji3a4CTId5QIhLJAFYkgXgfs44nIDyJVvmPunRDn0EDZD1XMP/UKBj+an//HXcG/6x76s3/fyTz/xLe6wIAIpl98AXE/9iMvfOzFjz1184H7jm13O81GkOOeR8+rozl/f9jEAZRvNO+9iPYabZh3Tb+u+Oxm0GhaINTOeyVKcGF2PdcLEafLOp+GhY/ynYl8mFRR604HBy7QGSyugN/KnXFhFAs2fMOvpSeWZx9r88BmIPgX+56MRW/hUL0+2zyQQlhd3b/WSTqeppUFK6JTAUnyTD6Q+XI2KsursVohFu+f0FCusq7rfNSc9MsTiRy4itTLpDOJmBTVWCuc1R1DfxlNYrHakjUqLxW9jAQcltUhMc/jSKnd1H1t7OF9+LGaH1/oes2NQIfPaqXoimcaii356aNxywv2ISxOZVKS2t1vYh7JIs8n/KgjKYVOY8yLR71jkZwu1bTFDYUnTrQmikg78w6HRgIvxwuyeiyTNGSMO/03Ji9NlL/5W4mooKSmlk1XlzV7KQk8WZJ1AFtiCoagwMBjv6oX7dfeY1VcbohZHyfvA8x6G3esf+TVHTZT8RAovloFI9KqAyHhN8cRm/ATWJkT2CASSCgvBAQ0UBBGGBZWqt/88tO3FuZYC2uTdWn9XThm4GE3/TIKGdYg89wJboOZiP9l8CaqpJpvWLlEuSqi4lbKF8/0FWV5ZvnCYavo1wNfBs7h//MjnoSTMZ7kFU/HApWdsq6QXE3kE+kYkWOGSlz0z4CCmMvufo38JmDg93Gf5v5HP/v2Zppg6ac+/N4VWeDx8UOY0OfBkvzmE48fJcL6AMFmOZZhRekGJwERBfPymOKw0wIIGStxC5gwCSA8MVoNGQpKB4+KL/+oC/h3XQDA73XnQjzgsNyHwnIfkKjwCuj1VwiXJnof/MBb3vyGpx5+6PzZzYONWiEf92VWXAGguLsLJ8SWeXQH6R95zjLrtQ1dEzQia8zBQwdr9cDVTFSeuN3yIQ6dGIl7mbg8LKpnyJ4Aadw5az2YwBPR4HAMqrodzrZ2QppVPoqBiESMJJGCvCGSzvHLgqQ+vi8GN3PxtGkue7IgaiqQeg1Rw1xriKauyzBSVMrnDCTwhucrYwl88lSxbAKn12sbMzxRE3EN/x4W+OkYL0WLiiRJ15oKL9qO4mHViC9cnJjiC0mTpz6fKGoif9Qax6fNuGX0ICgQUrXTT6bkhCpL0n/HKkaCrvq+KLlBLm3Y4+1jKtoXS6nGOYfUItUpzYD0ggQx5QMzD4UGxqomLhwM0smCI+lEUVqtfturdcxyXi3wRJvtzWr4B4FvTWIhLQmKdE3FVJccpEjR6V/6yIECiZu6JBlJIVH2NbM9ofrojANyVV9cpSrhkx0IIttsjA+w7J7dr5C34Y9zV7nH+g8vzmORVyUmVzeBpwu8yFIim7MBZwKnZB42IGJIBuQFQczxMgfpkpN4VtgbrRsdlmYQd/nS6ZOHDu5fne5OTQS5WNS1uavoarhqMxh2X7f3+hTCynNrNCcXlvHu7EodKkk07GwYlO5HRTvxrobVoYOhFzuLGw3HhSfxEnqblk+cWM0fPhVxN+svfLQy9swPmLg89+LWFY0Xt+7vxMcidkHmFUmvdg4FXix+9pwXdXLZYEaVkqXPPnvw1aQ7XmrM1i7dh5KtWvWQTrEg0Ixrj0vI0TcPlCuVzfiW6L33KTd6dP3xhaJLCuMGFcWCIypKpTjuyFpzQqKGvdUMilvL52+2a5lCsGBYjjvsIfkqCfAnuJvc/f0rBmDvvYcgZdTKSYKF+XA+DSNxg6PhRDgYhs3gMW48DHqCeHJdYkxFYB2vohiWa21mhxuPnTy+utLrTDaDrKZwN9FNOWyU77GaadiXM4HukEcmuqPhYVjtv7vrhKHCMmrvgQQzUaF8p8zyXR+yWHB3UQt/YGMGUUSXZvVgojHnzdtWZynizJrdsYxgRGhtTiGQeOau2rIkjp9aCwQ7qpVmVUzOHzfPir6j1mdj4uQGMJSHjma6STOhxGSEjmGcoh6yPnGO6sWnbuGXm7zFi/M9osh8esaN++25hOUnpnQcdURgNCBxqUq7+zTEBykYPakhqTI5WpckP2b4ZrU7oZ9YknnLTJpOKqFalPAI7UMpMZe16OEnRRRxmb0iu/+RPBhy5lq//MC+zlRZIBusC/Qma/K9OVykxRnc1jNPb25UM2yFTgl8lTl2Z4CFe8tehzNYLCjC/uxheRvG9XWzLSZ2b2ftgbgFRldeDGejwzqLPySMw5gY4DS8IA/Snyd2pICilUUi1nTeKm/KebK/ofLpMsWRh9DSpgrZcLyHlEMXBFHViFdFNDkrz84Z6qmLOd/KuArGIkg7UV4+QSSgCGzqHkmCK5uCIPOBIseUCrguPsg/jNOZRYwiuRbhVcwniI58JObAefDDxkSDFsEA9+Q8/WqX5yUJm7m8IpRa929nokvLiOB4SjKjhqF+oP7AC4MSDOZjk6AGCdIhLQuOk13tPfyBtLasGZrA88qgTzi++4fk3wKePcR9gPtw34Y7xfcCXLz7rVtrPGTDYXW6A0Ej8piVfikvMnSDhIkgeATEoufGAMmADoeNJocGRkz+E06zua2dvv/Iw29+5Y3PPvyBRz5w/9XzZ7vtHNDiMAB70fTIVCmUwbfbIfdmI7rD9Mv+dCp/q8xMWdmvt9d7d1cZI8ypA9wcro8gofZYRoVxfDuUfZd5FRkujYZj39VFRipdZNOgAjHHgo3+bLrXWHphfP4gm0qb9qczymw8GLPXg1aSN01vWiRB7TDQZcQLi6AbqxVZFmjqyKt2WboV8BePBImxgyWF/kwKvkcikOD22YpXjMfGfEN0MsWMhFBVmJtBYmq1PHekkMfXKAIW7iTLgVRwIq6cMbdzB8aDyUbETPZ6EI0qpRW77OFIYfJLK6n6mCJavud0TFHJZQoN4O4Al6U0FSL1qgVJ3zSDB3XkPqwdq9p1l8ff/GImZ59wGmbKDSqGs2BhVTfiPPazJTUK2HH/YaUxhvi4GcvLYthnm9j9Kv97+Ke5F7nPcr+NaD/4/E8/dwZIqvJvrj1ARO3dSBXX9mGG0d+JNHQQIdb5wkTyeY4JCsw4GjwTS52KjFhtWJMV7TqnibLGOpxUWWS1YV1W9eucTmWdeRcvD5olZH7UnhuWiiG5shVytgAu+b/k8vbw8jv91K/9yqc+8f3vf+XlZ54+eXxrc2V5brY1VSvng5rBii69Qals6GYASVF3WClzb69UAHce5/f8DdMB5A26g0N3bN/VfuHe0Zoz7LIZrOW+o/QM3yTcWdgOAc+/Y77l7u48GgxDSqgMcRFuw4ve0fCFw3Pwj2cisRoVH1ly5UJ3PR9hEySRyxHiRqiskI9ozrQS0W0lJh4YbzlivBuzdStmTSxOlL2xfeCThYm+Yx9szu9b9DNbNjLNZKDrhrpel3VdzScaXmN2brHVeWbREHniLaPjhi4q1aKBlbwkx/KCXt9ZVXJOXhU8jRWd7ck2RCHhZaJIQnvutR/WQO1H0La8bx+VCsmzeSqblTx15OW0hb8/kijNC/SsxSdLWMAYAtg6PqNo0eMbzWSQ1sh1UWcLFSXsK5qWNFmAi9mo3gJPIenamCFM9d964glHmiTUcJ1UzouYfizSiwqiJMT9WLLk9Nzi/Ixj3WM7otXIEywXda3bOn/M05MFStRcDIu+7pfunU/ryQQRIvMFNqcGPMVPEJGnqRzO/8hltVxChJhqmSAH8EDe/Ph9M2FvZ273/yb78E9yb+au9IFkCfTBew6CEMxiLJM0XIXfvHoYUyBAAr3JCbxwkwO9SeSwPEgYKxU5iYjSZbZMGHz6Muv1HGL3Sy8++x23bly5t7jvWr1ZU2iiUQp3Cxj0JIcJ+M5K4Z39ReEas0IAuVrshM1E7e5ttR2WXpYHSnqwjcP01EC1s0YzP5ycGQ/7P9tspTnz6ILHcnJIrUieCDR3wM2WsSj09+dBzUnnDpRismp5k0G1hoVSTTINOZUvRazjdjsjRHNZsVTcR7KF2XzSyzugU+TIwpGIcKlbMkRtxmmuRAhvxzTLiZvoTEOt511snqIHk4dsJJpy9jv5naNGSslMaTsaZGWnDXkbSZsHbSodq0ZlIjvxSlXIajCuyczC3LLBigDJFGjG+8cmdDnj8FSOzC8aSOqWepLZNQpxSsViXAU0kepRIVKM8/bFx3UiGmLSufiihjF1hYHWCHbr5Drwpe+FzJz63kMHAXokIBQcYZUT/PKLWET85jUkDJGzBaqCtVHe4Bin4gad0+E2Ezw/mpoNLQzC6TxHaYSGk7r/kJPsO0/a6VvvftdbX33+jRfO1aulsXGZxhvIHVTtb3dML6O7svMIwEb4dXv6TLyLSA+7BO+aPBvAzrAsc0cqH00STPeyeNA0Y4fXDHEOfQN3RLPe8wzSPZA15WBcJaRdLgW8UKkenkh70wc0Wbb3zZv+8aojW8hYbE6UXSexohqplUWIeIFOyVTLZ02TGGtHbrS2PUsTcPTwWkeGKBSyWxhHeHNadJ57x8T41Ll4YMEYuatzD+9/2ImsS4FYq4joL1BFeuG4KsdrloicJNECSZGI0C4nfFnJOPKsosj2/qbKV93y4j1l5UK34jqul1/VPSWemCsyHOVTKTtayHoxW1amZpYquXhWt2drCYHIMp9qWJE3n1rIv3rLdp8ra+l4P4+w3qyvPIZSD21suoBrY1LoT7vf2H0U38A/zl3iNvvrCbakDolcf9AHJYggXnk2hSSyUgjHiQIn3rHmONxAQEdbZ88c297cWF6c7kyUyxLrMuuBDcGmw8UqEPgAuaOJ1aEH3F75sKeLQmZWGbUesw9vbyUQTs7iLzYQlmXJ3tiPlQNdM+0m1ZSQRRoVktflxtrJR5dnO1pzO/fgfccvQ6pI56KBLLiBUxKQ6dL5mqZ1daM5NzHezWeKp0pFEwk8KuxHqsJPLEdpucrzOu+RBLJkPnESK3P9rU5TYUu1NHPypXccXbUFWYrmDtazls/aQfISjrlr+1bHujemT0V8SDc8GcRpcfcF7qv4a5zD9nphW1CgTQPhDQ2hdWDY+Obt/UrOM41ztFRos3XFkUC0mXO3PRiKgt1mr76K306EFzEhO+cpdS4dwP+H9o0/ochRyQMw/HC2sfsc90X8VS7GdfstPxIudoYv2jBYARW+7Mlw55GTo0WUiNvGnG1KAhfDsXCZZLiFBURguF+THf7SAv5rvx+/RPjemSxhvZb+GzoCfhlT/DMSirGM9I0PAFVXEPHZ8yL0S3gDf4kzOfoZkbD9iQLeC8odrs2zHFEpoxJ67W9QApURyqmaj/4af/g/IRUj/W/YDhj4t+BGj+5+BW+i3+Oa3AbbLSaiiITb6C/Pg+BOxKLyYMuajQOIFdg6vc5QWA/aGNthqxJeHrQdhTUz0HPMucoVZ4goWRwevoy64+H+QIXgqGMePafVVyO5LFuEiYhBUNuP8QcPVG0TnT+PhfPiD9uQoy3Is6mYEg9Ul0VI8+VbT/O0OCNaOtFhmImy+MhWR1sGrazhmemObVIsY9qbxviCiTqCV79cquhOKiJptqDUtfPOcSKEWuvU7pfR3+B/yc1z93DS57b3VwiebDgsAPxBoy3rnPfDks00Y22DPbrEgWoZNRV0Bp2c8BfBY4VruFmWdH1vqGDedHw+ShysKXwCjkIHraqs4IjXL7Imi/tOLvtmv4U1EGbgPEgkhILH0oRUoL42Bp5krdUlg3fwiW5aUyG/EjfZuC4XpdSEApkLy0rCpNHDJ9Y7At+uxyS5NYYvf+3I5KMZpEKykGRXeO1HFoogW1Qs0SjdPOsEWksjgb4cxsrp3T9GH0X/kRvnon2Hsf5yIaXyA3OzmgrgyaCOaeJC5XUU14eR8sTBOoNhcvi3l61avmJ7FUHQajWAa4F1OJAGaXWn+O7NjNLdB8lMoGPoR6eJrEdQNDGB5LxJ4BpjzTjmS7jsem7+gCVV9jkLc/nMIcI2ktnd3f0a2sXPcPu5RN+HEdrYv9osFRKeOLjV/hLzTLDdIBtFfXc0a83uDrN76wwXFTHq7GbDBtvoIO11b6/2i62cEYQ3/7gLKr1E7djsfZZwdpVHhG2DcDCiKnnRQSbBVq5YkwhtCPa7zsSMXA2SBp7NZRHOP6oTuSPk5GdveppTXKa4PctnNydP2lhrTGmCkBEj4vx2uRmx3LjNY/XYO1fLgn4jwgPjkMAnj+3+EfoY+l2uzq1wpS8UY4qAhaEU+9xQxn9uqMs/m8uMHjqLQqf0mNexzBsyucxe3WsCD3aHCR9z0MnltgYrWeGtWw/uuxgY3ZObKWTED/PISqlA8WREj10T+HovqyGi4ffbkGvZwlmIOLCslNdNHT0/ExyOKrje77qqQQTFabFVZRoEAJ3qZxtp1Rmv37eiEEUWsGyKa2OOFE+IUSIpIvO9wm6AbuFPcn3u+b7JvL7FevA3lxaAJB/6VIVtJQAJj94U0WAJX1gpvMI2USECf3m0vU71zmMIT57k2BKc07cPF/gdtu3K4XDDjfnZZqNWTiUsU5Uh1/bDDTfKlZFLt8K9Db0hl4aXQQe8hm3SAFqvgVhhgnlLdzCjwFJkFEgyMhfKVE77GropKfYRYkFm41stSVZ0UYzwqDVl56JR6hKtPa8S1E14CRATc3gWrC67qVY9j5GieWPvf9eYhMVL6ypfcJyVJ+dePl9FRga5a23TWJhQSxal6Rku1PP27iROA14vcZe5J1nueeTiyWO1gGKuy2YkN3MZzPbUwtxNggbFPLavxtUrV568+mRrMpVguccH3cDg+I6l2+3WqA0qjBVvuE8FI3fBsJc05HidVs8ZJ4XKCNuZemYLTDq9BTTdWWR1bWc0g9sNwN3YZT+lHwAA5zVgNIvj3STBos43vaTI1xpULKA4BJZ58pSlEZVML3f6vG1h5OLt97PyGTwE0XhgEo4Hn5oq4pEoTVQyDhFdjH4e5erakq9vg9ZU6VLi4HIT03wyYQCaulR2gHXtf16Pzt+/z9KsM/sBVj0b8FfW8Cz6dbZnFbJXtrplzYiYFkkrYnf+pKBKFN7H0mv5SNKy2/spehkO82gqxM2d3Sn0P8F3dyDnNuRwf77p9iDDhf21Aw/yesMt8Rjj8vaU/pBUjzII/J+18wwGkobl1VCXhaXR7iUL66pypmqrbHcqKi4bAKjpM75XX9URmwsTnJXLkQgvyNmA1gXCO61cNsO686gfX+qydRduRsY60IjvRUq5TKc9BYQKxDLJn3GeKGJjyVK8OLisnpQzs794WRbdfccVFYYympRnP9M7dEjHsi8apnqtl7fkXLI0wfYfyQRK7d98z/XTgsmzPQZ2v47W8Sc4nVuAXDoVk8NcusQqLABOoes4LbaAYUg6R3MjgL7lCms06k4POcWoSemguQjWTqnbIDNTH0bZHFi/fCKGkRlXXSzyCc1xkG051Qk97eR5UXJ5fL82pbmuL6ODSe81UVVA/SmxxUgkq7oERdc+WpUMUZIUpOrxgurq0fzK4etG1Ax5I979i90u91/wT3Ea14VnCAwJsWfoheYczlX3husyfG+YX0BWs77FkTXhNRCumzWxoCadeMkJbKX/Ks/LFcGQES/4ODWJMicxn8PKsZhGKSJuzHEwfrVIM0rU8QIr4Sj/+T5MKKAk6IkDF3/wcSPZRKkNpCHaasTS/R9/g5xO8pKCQw4TwLh/Cu75JHeDW+jPnj56WOK5jcXuFEHhil2Ov3bXHoeXb+9xeOXe/fv6S8VCPsu2eECs9j4o1cNDuR6bqrpjqr0NEcpm79k8F1squtc4xp68W6iApVldYRwxttQarnr3K8GglJ9mOYlnSTh0eeQPQlqR5WLUZrFtxK8ggU6aeJ8/NqbH3k1Rs4GjiSksq5MPFjO5yQg7qlqV8lIOSaybUVCwobPNIGuXJaRbBDDblnVRhlyVEBHE/YcR662kbBVnfIz6FpKtOQifxZTt4vUY0hJG9GWB5ANZdSNiZs6NJQpa/oFtCZJXnJ744UU2aQJ8pMz2yMm8SQLF4QSVqgaXZF8RRxJW5USIBfft/imawT/JNQALqg5gwaCcvQiDQLI4XI7JJoIHs3xZwhbhGqyZ5T4FsU0ReEqQqtqz01FG2QpJSuGBDN1Imm9Bpt078s5X/1U8J7J4RahU0IopVQKpE59qVX7oqft1w+QFJaLdiyIeuxdr9yvkzej3ue9mczrf9Z1veeX5CztnTq7Md0pJU8Q2t3HzxmNbrSYd0KZCjjEIxDYwpZ442MEgJLujpadsBWG40CCEtdDowdDqzJBhNgDrhpDnDstJDLZYj7g5CGU3Gi5o81oGCiuiLCWMsK3SYVcQg0q4tqnFNmJgm/k9c6XKtGbFMitArKILPXh6jcckBemdkESKVeSSy1NxxMcLioh53uybuTwiKWry5GnwhgyWCfGWhWIJgC6ZhC+WpJqUEjMpNqECqTDiRcGDrNnl5BTr4NmeV9Dvjss8MgSLCnElpNbArMGBzLUTqY2YEGBe1XheI1alEKGFkgqyZftZIju8puPnz5ckRxDQSSdaNVo7x5saVkxNM/TykSlq8DxfCIigUiEreOpYHuljZzp9KSIIWGc7d+hqbTyZFlQl3pxQmA2F3a/he4GT3wP+dKTB9Fw4xIA6TJoMdhgYjvQEk1swsB4M8hClwoaHDlC+idF4M+7H6oGiNz1UMphTPF4H9EnBGHbXMjCe9rhBILCyEy5gKMpmEpkZWsgKMhIR6BUiE4toktTvY79qo37fw276jILef89LK75giERTzfwMSNNYyzQ2V5b9kqVT3haOju3P5QMv1qSVJI/zK1u3EgC/RIAYpqKAyVjTSoixWB4iXzGKAxzmHtn9EujBr3Iprgc43MyZDIfDTILdETFjpLY7pPV+uN3hbSoyj0a0Hs17yvKOhXSJIO3SQ7HIwTHQUAofO1zCbE4U44SAtMWeLBAS57VF9Ns6LcV579PrVVGQFpqK0izIauJW7zTGaj0LJwiT902XTLlpE/X8I5OBgORB7tjdncIibnJbwMem+uMH1/fpKhAcoF2bJ+6ZGG9WfVdCG+GUKjBdtgkW4iLA4tEWYUwsqITQWAibShh0wjN0Fvd2DWMI4u9NiHoDSSa6oUBl/XkjMPbY3CmT3Cb29uYSwBXeJCtIkMerukDRopaTERbjhqDmpkxghZjXkRA474q259menxGZKHP7LLnelKVksvd5m/DJNFrcYsgnC5CDf10w6G8CACdlQcM9JRGN7LwMR2qYmI0JgzXrOCaF10b9XjXh8qx5jijT6hMnuzQzrdMkRNbHVc3HBwVVe/JJKRAqGwvVpkJNZvvTu02w/R9x5QGPqBZjYHthOiwnBHvNPANSxQoOrKfM98L9pMiAjbIRCicUlxGLE/SwfuECQvdCylB0PDZ92ehMaIWCZhhYdg45ivyQT3AUoW4kFuSwAMhq1H/psVez0130IJY3V/rHcSzdBSUNI0px80M3r32wL1IgrQI+QMXGB1NYmjGoYeGfOKDBULL41UFT/zJw89MQvys844Z0QG3AWpASBos7o2znvjQLWTfcyw+kWXlvsX44671EIOrZdHs5rCpMD21ZYcUHHa8VC06sjjtSRANH4/mspzg2wslOjOGg7juIKEhhu+cYcUD5SDmB0rfSUmFGMCCRYFVASkKJRlkR7gXU9H3Dzgiu0KSmImEQ6FMKSCbInn7BRmynEJNEhMxJwRP6gmQ4caDuMlKUyLot5eu8wpr3pw7MLWtyVAI5JNKwvvmnu19CX0FfgnFY7M9tb6V8YDTcQSYiN5mCn6xhtM6jwUr4200H6CHEra/N9MbHuNPotDDo8xjsMVUoD/fIG05+Ddm2d/d653CxZ7gxIjtm0CM/gUZLTFhang7XgEbRS8UeIevrUu0QL8EdCAhJooT19pqvWgVI+873Je3lGdMtVWUkP0uEiiE3TkTZxpg4kYtul7QMRsy5CpGIi366qIg8mZwSplifZFWJ5/wYJGojqwiij/lmLNGfndOlriXEBANfRoRgbdEiyDBrDdfOViNaVSKbB9tt5KiKyvyosftH6H34rdw0N9Efg8y1oUk43L6KFRRxuA/L5eGG3Ig7PN6sVZMJO9x8rcRqvWwNF3OsLpv/6XW6yyE3a3eZ/7FigYGAloXDOlK/aOMgcER05owlqweEU6ydVhOilSNHHCyaMaRci8fn4LZpLruWtxHq9QwZAvv4dy/xbJYPy3zkvROTYH7Do+STSCLEdWrnJqbg95CbyLtfwWchLjYgLjaSEBdCpzKchgpLSAMHZ1DGlvAO6m3w6WDKdBkxWtENuZTLGCWbRoVHYeejn10QxhqLNhal8SWXCBO6UBctzdi3Qiplotqgm4xY118Fy80vYg2bEV8QkxmRFOvbWXzJ9yoaL2R8CQmt59oLMWDX1BifQKm0UjnbP5CSeclVkvaHN2O5lBeV4GKPvDddqCNFFcVUbn64h94fgR4MuFnuMFfuF1ZXZnvtRibJ9kXcNFjhGV48CUc63NbGgXKJbZweztFQVlljaTqEgAnEyvZhuSZU44DgVNzT4F5rsAQ83LvfRF709tJk9DcE8SnhhfSqZVFJqRYiPFtbJBawclgHyQ3MX8O0bAEYHywWtxeeTszqxIrklYrZFXQhTdD3k22Z+uLbptVpLQW5WVTycYXn90/vXwikiiPQYE3leRKxeMmu2oYoNqPRILlqeAKVjK/EHSWh7X+2k2Vj0dv9MpnAJe4S9zSrJd+6vHNycboz2RwzVG5jHQ2o543rYS2Z/TsY5TsRblCNGz4/+4cMmGIcjMDg+eFnyIOGfUUDOjBoOOkMJjtDUsRWynrRUiUY7p4a5oVwQhS+4E+mHoUDgjiLVIQt6nqIeoWkyyYRIFsBG0/q+OGY0NxR0fHjyFiuuAhngHcbl7ZcFNmZAarIY6aYxxV/DJjEd6bQITgV6fp9FhaVOFHzNxbxEVFueKzhEFzy2sYC9XyiaHKilvQY6eQjrm54MbW0ZpNUgbft1pSYNaT0L54DWgGjIqsdi2DByh64p1gTbYtNSSa2X/j/5Cya8sxyqWGqkyS9/515Ybgft7S7H/1r9LvcQxBf96chvvxBpR4zOdIZlhXC/tVhX5bntmEkO5kwm4ruwA3hsOCOf9qATfRB0LGVQgUY4tuftEOyMWCcklCqpSU2diBygehGxSQ1UHUj7cXHASbg+UnSN4liiznISwtApFXKdpbigyK4cRSGY+cMaYxJStpUreCMgVGTUXDrTEw5GxVosxWXjMLSdwPmSAIFUAJnlglKtQ3dStuRsTHQe3zBBzCVLTEDNi1SXs0r61dFIlBAYUkSZWlmuljgDd+NuFZgEoFPUpPwfKKkh2O3sFvAHPA3Vs+ZicHYlQxW8A5XJty9dhDAM8w+bGYAj6o7eFQyLIyj2w1PYXkHxpOlnnDODfJFTOw0sJzJ2ARoLTKjbFuimRwCpUfc/7+ta/mR4yjjU9Vd1a/q92t2pnse3Tvvx87Oa1+Y7O7s2LtZe1aEh5M4TiLbihKHnJBNCAKsCBAiEiI5IKJw4JQIhMghQUhwQoq45cCRP4AzBzjbVFXP7K4lWprT9KGr6qvv+ft+nxWDtlqMxMgZ7hnUSSOdm9fLECbEGtiWWSIEQdHctSHOR5AabtudoHZVSYuWtvfbQyRagY2xIgXbZSB4dFf9vOtGku0KjlIMcaH0+D/2htJs3dx0gAckKaDWunV78WJvkUAmseTTdRp7ikE+42log3eoLO1Qj3aw3zvYG7TpPWTVLZWabgFkxLjniUWQuzpPKrkdsJMVtQwo8a0LlhRDJrjM4nXBjMs2aNJYDTyou41xFiVzL57v4Id6kVQFWSLbr/fzfa2gSU23NLc9VUAn140HG55y9x0nrB2DYWcNCXZpBo9OMdhPPENUsQi+Q/eDmgV189C1W5Fq5DVco6rt6OTavILgdLofScD42R0qm5aExLTkq5Li2KXH//bg9o1QwKW+LKJBsDemMjIBH+X+Cr/IxWyOA1zOLKBOF1vxipmjBM4Jmi/wvx9DXU4UHFQRFfnYUJCWakaQ9OEXVGFsFnXTqTcVSVFF1RdQxy/nC9XRZnand8HPc3+Dn+dKuernjkXN/3kpwF+WAtjAoc8cXqrhXf6XGi6yGJGKIJzUx1fEEpGxXidKyS0QV1G1vs5CNwQ/khwBjyPXq/QKZT3E2DxK9bAseSogHv2Ggyf/onfjYe6M3o0+s9uc0iZrf+UUhn24AZbokQyvV+alQMiqaJe4xjI6myydfAGTB9/aFMqtZ68VLeLLKoQYABWG0oGv43BQ6B0eW2JHVLSNEX4BSV8f0DADylA0mncwlWFCdIIQwVIzvzv/S3vHXIuHocIcNMwYuFUhxsiSg8qU+PP331OxFJfF8X5KxL2ocfWKKanlKWO1UzVNla3hteNiserwfa896YJfwz/lFsxXCZgPz/tKGNn8CpWVJlsME2PydBc1SBE1TOaK67lxUScbZTUFjpBIccoTZg0282kEiKSse6EgSpAQqjsFANq7xKRWGk6mjDmkZGmqYxZla70Of6jq+edsJG+PiIQTBtW/T5fpOvOzvmYktsJZTSGIMONnRIIyHAJqenyJ2hJrzbRjakOwqnrdP78Wu6/dAt98hvzjy9xyrTXwCP4uN2e6z2BrbXBOvgn3R54i8EukdImixvyUQ58lJFK2Qs5BNeaY3syOt0RND/OhaovapJK0VDVfqMwRYngwIY0EpVACQr1QRo+EvHYHOmJ6rGEMJaKxAAS8KtOPhcENZ7iwqWPn+BDcoA66iHoyiMMkLZQLCEeGd+Xx9Ctvs0YfY6OyOzvc+v6LhPkgsydd6IJ/0ijyazSOnF8ZRyyO5Cz56TJY5r1kS8KsTLHzgu0q0L4A8lPhHtFvPYcjsyr2dLLF29T2+91A6I5fTRODAYnZEW58uwSRNJyrrYEoqLJhYAn+Cu017j8HDzX/5bovCmaQimGRHpB9tkV+GtXcXxSrV5KEEFluK+vy4lgOJbk6taAQmNBzBdGvTF569FJqeTb6AJgzeLe1Cd2DxbASF+xY0/Myeus+NCPEz7NKfdF34R9y32D3Vef3dcQa7/hyVgk4nrZldaxRuKpjsyRelmtgh2pwP4t1veN01Vcv+VkemBW3wfSrdNupXynOdn2rs8c44zC4CuxEYbA2A4i6qBjTWQAVaufzrgF2d8QuKFElKCaxRYNW8G6e3BIqkxMXIYkz5azXDaNWAwJJtn4wx4gEYPONQVcDqpQqeSWtaBh65UK/Lqyn14RKIqB+FMcijvT+T9qqn3IM3rrwJvwk9xu69uf3WC52CYBhPBWrsTpLdpVzqWaQpadBl0uRD5apBni5G5drNIaUGbExWz7Hja6ynty/4vyuS/jVqs3ovOeDqYffa77hSq7gA/pt+Tcca3hmR/1gvxq1JbjdUtBW41Cywtht9okgBTtHL1h7nVksUkf0YVltzFxGyIRPsf7+Lzujs1aRCHpENpn+EOwHR9NZXHNb1boOa0qi01h/JJnGK8qznbrd3GGjOLRwvBMoRhLV745EqImOEAJDkovPU48kKbZe+fFxtVbwZCHaaXtEXm/FdVG2Cr5udMYVmThmpzNW/MqpTBV179BWknW1VF448/Hf31PJj1Kt5FDfJtKHAL2Far2br3/4xxNhzbUQKMhFR5SM+sMbVNse4LKu9agVMr1x21aI3V1yLH4Xfg9+mXuTnt/NEYsRlzwiw/MGKx7Hp9NLs684IQTPomSHl3EmPkU86nu8AeyCnL/OMgE8KdBYwdqocwnUtLnwBvnGyyQZmVAHuhltjIcGhuYzret6xQZeA+mi0M6HtlCsBg+DRN4K5Hh6S3b9nfJo7Gm3Tx80T65bmhH5FVW1Fwc4SNYI6Wk6NAfx7O15oUEEQNygiZKk7fsGilR6jSzdF/EwDpEeaiLQyobT7Sx61JeV9ZpZqX16+9SnkbUoHcQMqK4NCWB+Glfg/83dW85ARNkMxM3JyK/S3z3Qvcee5Xvd//feiL2XPWz/2XOPv4c/oyFr9g77739nch/JAAB42qVUzU7bQBAehxDRSEHQQw/00BHiAFLixMCFgKgCKCoCgSAIIXGgi7OJTRI7sjcJPELfoOpL9Al66cv01mfo5/UiSAWlQFbxfjs78823sz9E9M6aJovS3z59M9iigjVhcIay1nuDJ2jeahmcpbfWd4Mn6UMmY3CO3mY+GVywKtkfBk/TXG7B4Bkq5M4NnqVsLgazlX2D0VedJcEWzdEvgzM0Zc0aPEE7FhucpQXri8GTtGn9NDhHC5l5gwuZz5lzg6dpdfK3wTPQ89HgWZrK+bRNIfXphiLyqU0eKWJaJJeW0C9TBW2NSho5+DPtkKRY+wYYNeDpwxKgl1SEZVdjm/JPMju0CrSHGaG5apgT1ARPD1G0HfZvIr/tKV50l3i5UlkrLVecCu/I2G8H3HB9GbiyyLuBa+f/dnZWec8TAddc0ZQ9sO2B+gTUZ3RBdUgS1IGgARDtiRN5dlGPREcNMNyC7C5k0FbYxbeOYQDXpI+wDqnV27oWVa3/MeLSHVU9DFQ9jNqSl+0KV3ksZSlN9F9EDwWeIijSexLqOjpQ59A6kEJrgWiAPkSdfb2SZBeG2msFe0GnMor9MGDHdtZZqZYYqNDzA1Ry6NgrS68Q9ryjVXzG4Up4Nmikm43jIsDt0RX6a4zTjdpEntcewvE8HeMlxnzu5ysi4wiZEjVMx3o1yeYM8W3CcnuYmA7A0NOH6fHyJpcoj7lk4+Kx6AZQC2gE70izpB5d9K6uWGwyDoCbWgNrVVJH7+LZYzpEZaRe9R3z/hhDUvOHj5c9pmw8L0PVEH8fdkGX+Ca2u7oInbFGRxorXKO83hkFPVUqo8VgS3asD1uMXLHmuq10GcrrUPrYE1F88I3gxY3RaGT3hPKuxLWN27i59NS7YWI6MInUksYV8yNfeXwsYxkNZZOT+80HoifHb7adz594fpxON8KWGolIMgxd35VBjMBB0JQRK09yY3efD/sySJ33U4ci37uddkpmYlkMhd8Vl13JWovgeu2IharmPaX61XI5diO/r2I79ruJ6PJhHRV7UZn/RfjSd/UPcAp4pAAAeNptzUdOQmEAhdHzU0TE3nuMsdeniF0jiWDvvU2cOXHmCtyTLk+RvKFfcnOGV0K1n0+L/uu1siAhKSUtq05OvQaNmjRr0apNuw6dunTr0atPvwGDhgwbMWrMuAmTpkybMWvOvMhC5S9vScGyFavWrNuwacu2HUW7Ssr27Dtw6MixE6fOnLtw6cq1G7fu3Hvw6Mmzl5Dw5TskQyqkQ03IhNqQDXUhF+ozH+9vUVSM/izlo4XYxdh87FJsIXY1dq1qubwbW4ot/wIJJixhAAEAAf//AA8AAAABAAAAAMw9os8AAAAAxvkyTwAAAADRt3yT",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Fraktur-Bold.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Fraktur-Regular.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Fraktur-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Bold.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Bold.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Italic.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Italic.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Regular.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Math-BoldItalic.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Math-BoldItalic.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Math-Italic.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Math-Italic.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Math-Regular.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Math-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_SansSerif-Bold.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_SansSerif-Bold.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_SansSerif-Italic.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_SansSerif-Italic.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_SansSerif-Regular.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_SansSerif-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Script-Regular.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Script-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size1-Regular.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size1-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size2-Regular.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size2-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size3-Regular.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size3-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size4-Regular.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size4-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Typewriter-Regular.woff": {
            "text": "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",
            "title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Typewriter-Regular.woff",
            "type": "application/font-woff"
        },
        "$:/plugins/tiddlywiki/katex/latex-parser.js": {
            "text": "/*\\\ntitle: $:/plugins/tiddlywiki/katex/latex-parser.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for LaTeX. For example:\n\n```\n\t$$latex-goes-here$$\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except latex-parser \n\\rules only latex-parser \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"latex-parser\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\$\\$(?!\\$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar reEnd = /\\$\\$/mg;\n\t// Look for the end marker\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext,\n\t\tdisplayMode;\n\t// Process the text\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tdisplayMode = text.indexOf('\\n') != -1;\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tdisplayMode = false;\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\treturn [{\n\t\ttype: \"latex\",\n\t\tattributes: {\n\t\t\ttext: {\n\t\t\t\ttype: \"text\",\n\t\t\t\tvalue: text\n\t\t\t},\n\t\t\tdisplayMode: {\n\t\t\t\ttype: \"text\",\n\t\t\t\tvalue: displayMode ? \"true\" : \"false\"\n\t\t\t}\n\t\t}\n\t}];\n};\n\n})();\n",
            "title": "$:/plugins/tiddlywiki/katex/latex-parser.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/plugins/tiddlywiki/katex/readme": {
            "title": "$:/plugins/tiddlywiki/katex/readme",
            "text": "This is a TiddlyWiki plugin for mathematical typesetting based on [[KaTeX from Khan Academy|http://khan.github.io/KaTeX/]].\n\nIt is completely self-contained, and doesn't need an Internet connection in order to work. It works both in the browser and under Node.js.\n\nIt is currently based on KaTeX version 0.6.0. See https://github.com/Khan/KaTeX/releases for details of releases.\n\n[[Source code|https://github.com/Jermolene/TiddlyWiki5/blob/master/plugins/tiddlywiki/katex]]\n"
        },
        "$:/plugins/tiddlywiki/katex/styles": {
            "title": "$:/plugins/tiddlywiki/katex/styles",
            "tags": "[[$:/tags/Stylesheet]]",
            "text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n/* KaTeX styles */\n\n{{$:/plugins/tiddlywiki/katex/katex.min.css}}\n\n/* Force text-rendering  (see https://github.com/Jermolene/TiddlyWiki5/issues/2500) */\n\n.katex {\n    text-rendering: auto;\n}\n\n/* Override font URLs */\n\n@font-face {\n\tfont-family: KaTeX_AMS;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_AMS-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Caligraphic;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Caligraphic-Bold.woff'>>) format('woff');\n\tfont-weight: 700;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Caligraphic;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Caligraphic-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Fraktur;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Fraktur-Bold.woff'>>) format('woff');\n\tfont-weight: 700;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Fraktur;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Fraktur-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Main;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Bold.woff'>>) format('woff');\n\tfont-weight: 700;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Main;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Italic.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: italic;\n}\n\n@font-face {\n\tfont-family: KaTeX_Main;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Math;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Math-Italic.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: italic;\n}\n\n@font-face {\n\tfont-family: KaTeX_SansSerif;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_SansSerif-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Script;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Script-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Size1;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size1-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Size2;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size2-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Size3;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size3-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Size4;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size4-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Typewriter;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Typewriter-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n"
        },
        "$:/plugins/tiddlywiki/katex/usage": {
            "title": "$:/plugins/tiddlywiki/katex/usage",
            "text": "The usual way to include ~LaTeX is to use `$$`. For example:\n\n```\n$$\\displaystyle f(x) = \\int_{-\\infty}^\\infty\\hat f(\\xi)\\,e^{2 \\pi i \\xi x}\\,d\\xi$$\n```\n\nSingle line equations will render in inline mode. If there are newlines between the `$$` delimiters, the equations will be rendered in display mode.\n\nThe underlying widget can also be used directly, giving more flexibility:\n\n```\n<$latex text=\"f(x) = \\int_{-\\infty}^\\infty\\hat f(\\xi)\\,e^{2 \\pi i \\xi x}\\,d\\xi\" displayMode=\"true\"></$latex>\n```\n\nThe KaTeX widget is provided under the name `<$latex>` and is also available under the alias `<$katex>`. It's better to use the generic `<$latex>` name unless you are running multiple ~LaTeX plugins and wish to specifically target KaTeX.\n"
        },
        "$:/plugins/tiddlywiki/katex/wrapper.js": {
            "text": "/*\\\ntitle: $:/plugins/tiddlywiki/katex/wrapper.js\ntype: application/javascript\nmodule-type: widget\n\nWrapper for `katex.min.js` that provides a `<$latex>` widget. It is also available under the alias `<$katex>`\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar katex = require(\"$:/plugins/tiddlywiki/katex/katex.min.js\"),\n\tWidget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar KaTeXWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nKaTeXWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nKaTeXWidget.prototype.render = function(parent,nextSibling) {\n\t// Housekeeping\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Get the source text\n\tvar text = this.getAttribute(\"text\",this.parseTreeNode.text || \"\");\n\tvar displayMode = this.getAttribute(\"displayMode\",this.parseTreeNode.displayMode || \"false\") === \"true\";\n\t// Render it into a span\n\tvar span = this.document.createElement(\"span\"),\n\t\toptions = {throwOnError: false, displayMode: displayMode};\n\ttry {\n\t\tif(!this.document.isTiddlyWikiFakeDom) {\n\t\t\tkatex.render(text,span,options);\n\t\t} else {\n\t\t\tspan.innerHTML = katex.renderToString(text,options);\n\t\t}\n\t} catch(ex) {\n\t\tspan.className = \"tc-error\";\n\t\tspan.textContent = ex;\n\t}\n\t// Insert it into the DOM\n\tparent.insertBefore(span,nextSibling);\n\tthis.domNodes.push(span);\n};\n\n/*\nCompute the internal state of the widget\n*/\nKaTeXWidget.prototype.execute = function() {\n\t// Nothing to do for a katex widget\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nKaTeXWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.text) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.latex = KaTeXWidget;\nexports.katex = KaTeXWidget;\n\n})();\n\n",
            "title": "$:/plugins/tiddlywiki/katex/wrapper.js",
            "type": "application/javascript",
            "module-type": "widget"
        }
    }
}
{
    "tiddlers": {
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/bold": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/bold",
            "list-after": "$:/core/ui/EditorToolbar/bold",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/bold",
            "caption": "{{$:/language/Buttons/Bold/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Bold/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((bold))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"**\"\n\tsuffix=\"**\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-1": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-1",
            "list-after": "$:/core/ui/EditorToolbar/heading-1",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-1",
            "caption": "{{$:/language/Buttons/Heading1/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Heading1/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((heading-1))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-2": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-2",
            "list-after": "$:/core/ui/EditorToolbar/heading-2",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-2",
            "caption": "{{$:/language/Buttons/Heading2/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Heading2/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((heading-2))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"2\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-3": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-3",
            "list-after": "$:/core/ui/EditorToolbar/heading-3",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-3",
            "caption": "{{$:/language/Buttons/Heading3/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Heading3/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((heading-3))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"3\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-4": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-4",
            "list-after": "$:/core/ui/EditorToolbar/heading-4",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-4",
            "caption": "{{$:/language/Buttons/Heading4/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Heading4/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((heading-4))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"4\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-5": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-5",
            "list-after": "$:/core/ui/EditorToolbar/heading-5",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-5",
            "caption": "{{$:/language/Buttons/Heading5/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Heading5/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((heading-5))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"5\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-6": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-6",
            "list-after": "$:/core/ui/EditorToolbar/heading-6",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-6",
            "caption": "{{$:/language/Buttons/Heading6/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Heading6/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((heading-6))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"6\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/italic": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/italic",
            "list-after": "$:/core/ui/EditorToolbar/italic",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/italic",
            "caption": "{{$:/language/Buttons/Italic/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Italic/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((italic))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"*\"\n\tsuffix=\"*\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/list-bullet": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/list-bullet",
            "list-after": "$:/core/ui/EditorToolbar/list-bullet",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/list-bullet",
            "caption": "{{$:/language/Buttons/ListBullet/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/ListBullet/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((list-bullet))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"*\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/list-number": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/list-number",
            "list-after": "$:/core/ui/EditorToolbar/list-number",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/list-number",
            "caption": "{{$:/language/Buttons/ListNumber/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/ListNumber/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((list-number))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"1.\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/mono-line": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/mono-line",
            "list-after": "$:/core/ui/EditorToolbar/mono-line",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/mono-line",
            "caption": "{{$:/language/Buttons/MonoLine/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/MonoLine/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((mono-line))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"`\"\n\tsuffix=\"`\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/quote": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/quote",
            "list-after": "$:/core/ui/EditorToolbar/quote",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/quote",
            "caption": "{{$:/language/Buttons/Quote/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Quote/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((quote))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\">\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/config/markdown/dialect": {
            "title": "$:/config/markdown/dialect",
            "text": "Gruber"
        },
        "$:/language/Docs/Types/text/x-markdown": {
            "title": "$:/language/Docs/Types/text/x-markdown",
            "description": "Markdown",
            "name": "text/x-markdown",
            "group": "Text"
        },
        "$:/plugins/tiddlywiki/markdown/markdown.js": {
            "text": "// Released under MIT license\n// Copyright (c) 2009-2010 Dominic Baggott\n// Copyright (c) 2009-2010 Ash Berlin\n// Copyright (c) 2011 Christoph Dorn <christoph@christophdorn.com> (http://www.christophdorn.com)\n\n/*jshint browser:true, devel:true */\n\n(function( expose ) {\n\n/**\n *  class Markdown\n *\n *  Markdown processing in Javascript done right. We have very particular views\n *  on what constitutes 'right' which include:\n *\n *  - produces well-formed HTML (this means that em and strong nesting is\n *    important)\n *\n *  - has an intermediate representation to allow processing of parsed data (We\n *    in fact have two, both as [JsonML]: a markdown tree and an HTML tree).\n *\n *  - is easily extensible to add new dialects without having to rewrite the\n *    entire parsing mechanics\n *\n *  - has a good test suite\n *\n *  This implementation fulfills all of these (except that the test suite could\n *  do with expanding to automatically run all the fixtures from other Markdown\n *  implementations.)\n *\n *  ##### Intermediate Representation\n *\n *  *TODO* Talk about this :) Its JsonML, but document the node names we use.\n *\n *  [JsonML]: http://jsonml.org/ \"JSON Markup Language\"\n **/\nvar Markdown = expose.Markdown = function(dialect) {\n  switch (typeof dialect) {\n    case \"undefined\":\n      this.dialect = Markdown.dialects.Gruber;\n      break;\n    case \"object\":\n      this.dialect = dialect;\n      break;\n    default:\n      if ( dialect in Markdown.dialects ) {\n        this.dialect = Markdown.dialects[dialect];\n      }\n      else {\n        throw new Error(\"Unknown Markdown dialect '\" + String(dialect) + \"'\");\n      }\n      break;\n  }\n  this.em_state = [];\n  this.strong_state = [];\n  this.debug_indent = \"\";\n};\n\n/**\n *  parse( markdown, [dialect] ) -> JsonML\n *  - markdown (String): markdown string to parse\n *  - dialect (String | Dialect): the dialect to use, defaults to gruber\n *\n *  Parse `markdown` and return a markdown document as a Markdown.JsonML tree.\n **/\nexpose.parse = function( source, dialect ) {\n  // dialect will default if undefined\n  var md = new Markdown( dialect );\n  return md.toTree( source );\n};\n\n/**\n *  toHTML( markdown, [dialect]  ) -> String\n *  toHTML( md_tree ) -> String\n *  - markdown (String): markdown string to parse\n *  - md_tree (Markdown.JsonML): parsed markdown tree\n *\n *  Take markdown (either as a string or as a JsonML tree) and run it through\n *  [[toHTMLTree]] then turn it into a well-formated HTML fragment.\n **/\nexpose.toHTML = function toHTML( source , dialect , options ) {\n  var input = expose.toHTMLTree( source , dialect , options );\n\n  return expose.renderJsonML( input );\n};\n\n/**\n *  toHTMLTree( markdown, [dialect] ) -> JsonML\n *  toHTMLTree( md_tree ) -> JsonML\n *  - markdown (String): markdown string to parse\n *  - dialect (String | Dialect): the dialect to use, defaults to gruber\n *  - md_tree (Markdown.JsonML): parsed markdown tree\n *\n *  Turn markdown into HTML, represented as a JsonML tree. If a string is given\n *  to this function, it is first parsed into a markdown tree by calling\n *  [[parse]].\n **/\nexpose.toHTMLTree = function toHTMLTree( input, dialect , options ) {\n  // convert string input to an MD tree\n  if ( typeof input ===\"string\" ) input = this.parse( input, dialect );\n\n  // Now convert the MD tree to an HTML tree\n\n  // remove references from the tree\n  var attrs = extract_attr( input ),\n      refs = {};\n\n  if ( attrs && attrs.references ) {\n    refs = attrs.references;\n  }\n\n  var html = convert_tree_to_html( input, refs , options );\n  merge_text_nodes( html );\n  return html;\n};\n\n// For Spidermonkey based engines\nfunction mk_block_toSource() {\n  return \"Markdown.mk_block( \" +\n          uneval(this.toString()) +\n          \", \" +\n          uneval(this.trailing) +\n          \", \" +\n          uneval(this.lineNumber) +\n          \" )\";\n}\n\n// node\nfunction mk_block_inspect() {\n  var util = require(\"util\");\n  return \"Markdown.mk_block( \" +\n          util.inspect(this.toString()) +\n          \", \" +\n          util.inspect(this.trailing) +\n          \", \" +\n          util.inspect(this.lineNumber) +\n          \" )\";\n\n}\n\nvar mk_block = Markdown.mk_block = function(block, trail, line) {\n  // Be helpful for default case in tests.\n  if ( arguments.length == 1 ) trail = \"\\n\\n\";\n\n  var s = new String(block);\n  s.trailing = trail;\n  // To make it clear its not just a string\n  s.inspect = mk_block_inspect;\n  s.toSource = mk_block_toSource;\n\n  if ( line != undefined )\n    s.lineNumber = line;\n\n  return s;\n};\n\nfunction count_lines( str ) {\n  var n = 0, i = -1;\n  while ( ( i = str.indexOf(\"\\n\", i + 1) ) !== -1 ) n++;\n  return n;\n}\n\n// Internal - split source into rough blocks\nMarkdown.prototype.split_blocks = function splitBlocks( input, startLine ) {\n  input = input.replace(/(\\r\\n|\\n|\\r)/g, \"\\n\");\n  // [\\s\\S] matches _anything_ (newline or space)\n  // [^] is equivalent but doesn't work in IEs.\n  var re = /([\\s\\S]+?)($|\\n#|\\n(?:\\s*\\n|$)+)/g,\n      blocks = [],\n      m;\n\n  var line_no = 1;\n\n  if ( ( m = /^(\\s*\\n)/.exec(input) ) != null ) {\n    // skip (but count) leading blank lines\n    line_no += count_lines( m[0] );\n    re.lastIndex = m[0].length;\n  }\n\n  while ( ( m = re.exec(input) ) !== null ) {\n    if (m[2] == \"\\n#\") {\n      m[2] = \"\\n\";\n      re.lastIndex--;\n    }\n    blocks.push( mk_block( m[1], m[2], line_no ) );\n    line_no += count_lines( m[0] );\n  }\n\n  return blocks;\n};\n\n/**\n *  Markdown#processBlock( block, next ) -> undefined | [ JsonML, ... ]\n *  - block (String): the block to process\n *  - next (Array): the following blocks\n *\n * Process `block` and return an array of JsonML nodes representing `block`.\n *\n * It does this by asking each block level function in the dialect to process\n * the block until one can. Succesful handling is indicated by returning an\n * array (with zero or more JsonML nodes), failure by a false value.\n *\n * Blocks handlers are responsible for calling [[Markdown#processInline]]\n * themselves as appropriate.\n *\n * If the blocks were split incorrectly or adjacent blocks need collapsing you\n * can adjust `next` in place using shift/splice etc.\n *\n * If any of this default behaviour is not right for the dialect, you can\n * define a `__call__` method on the dialect that will get invoked to handle\n * the block processing.\n */\nMarkdown.prototype.processBlock = function processBlock( block, next ) {\n  var cbs = this.dialect.block,\n      ord = cbs.__order__;\n\n  if ( \"__call__\" in cbs ) {\n    return cbs.__call__.call(this, block, next);\n  }\n\n  for ( var i = 0; i < ord.length; i++ ) {\n    //D:this.debug( \"Testing\", ord[i] );\n    var res = cbs[ ord[i] ].call( this, block, next );\n    if ( res ) {\n      //D:this.debug(\"  matched\");\n      if ( !isArray(res) || ( res.length > 0 && !( isArray(res[0]) ) ) )\n        this.debug(ord[i], \"didn't return a proper array\");\n      //D:this.debug( \"\" );\n      return res;\n    }\n  }\n\n  // Uhoh! no match! Should we throw an error?\n  return [];\n};\n\nMarkdown.prototype.processInline = function processInline( block ) {\n  return this.dialect.inline.__call__.call( this, String( block ) );\n};\n\n/**\n *  Markdown#toTree( source ) -> JsonML\n *  - source (String): markdown source to parse\n *\n *  Parse `source` into a JsonML tree representing the markdown document.\n **/\n// custom_tree means set this.tree to `custom_tree` and restore old value on return\nMarkdown.prototype.toTree = function toTree( source, custom_root ) {\n  var blocks = source instanceof Array ? source : this.split_blocks( source );\n\n  // Make tree a member variable so its easier to mess with in extensions\n  var old_tree = this.tree;\n  try {\n    this.tree = custom_root || this.tree || [ \"markdown\" ];\n\n    blocks:\n    while ( blocks.length ) {\n      var b = this.processBlock( blocks.shift(), blocks );\n\n      // Reference blocks and the like won't return any content\n      if ( !b.length ) continue blocks;\n\n      this.tree.push.apply( this.tree, b );\n    }\n    return this.tree;\n  }\n  finally {\n    if ( custom_root ) {\n      this.tree = old_tree;\n    }\n  }\n};\n\n// Noop by default\nMarkdown.prototype.debug = function () {\n  var args = Array.prototype.slice.call( arguments);\n  args.unshift(this.debug_indent);\n  if ( typeof print !== \"undefined\" )\n      print.apply( print, args );\n  if ( typeof console !== \"undefined\" && typeof console.log !== \"undefined\" )\n      console.log.apply( null, args );\n}\n\nMarkdown.prototype.loop_re_over_block = function( re, block, cb ) {\n  // Dont use /g regexps with this\n  var m,\n      b = block.valueOf();\n\n  while ( b.length && (m = re.exec(b) ) != null ) {\n    b = b.substr( m[0].length );\n    cb.call(this, m);\n  }\n  return b;\n};\n\n/**\n * Markdown.dialects\n *\n * Namespace of built-in dialects.\n **/\nMarkdown.dialects = {};\n\n/**\n * Markdown.dialects.Gruber\n *\n * The default dialect that follows the rules set out by John Gruber's\n * markdown.pl as closely as possible. Well actually we follow the behaviour of\n * that script which in some places is not exactly what the syntax web page\n * says.\n **/\nMarkdown.dialects.Gruber = {\n  block: {\n    atxHeader: function atxHeader( block, next ) {\n      var m = block.match( /^(#{1,6})\\s*(.*?)\\s*#*\\s*(?:\\n|$)/ );\n\n      if ( !m ) return undefined;\n\n      var header = [ \"header\", { level: m[ 1 ].length } ];\n      Array.prototype.push.apply(header, this.processInline(m[ 2 ]));\n\n      if ( m[0].length < block.length )\n        next.unshift( mk_block( block.substr( m[0].length ), block.trailing, block.lineNumber + 2 ) );\n\n      return [ header ];\n    },\n\n    setextHeader: function setextHeader( block, next ) {\n      var m = block.match( /^(.*)\\n([-=])\\2\\2+(?:\\n|$)/ );\n\n      if ( !m ) return undefined;\n\n      var level = ( m[ 2 ] === \"=\" ) ? 1 : 2;\n      var header = [ \"header\", { level : level }, m[ 1 ] ];\n\n      if ( m[0].length < block.length )\n        next.unshift( mk_block( block.substr( m[0].length ), block.trailing, block.lineNumber + 2 ) );\n\n      return [ header ];\n    },\n\n    code: function code( block, next ) {\n      // |    Foo\n      // |bar\n      // should be a code block followed by a paragraph. Fun\n      //\n      // There might also be adjacent code block to merge.\n\n      var ret = [],\n          re = /^(?: {0,3}\\t| {4})(.*)\\n?/,\n          lines;\n\n      // 4 spaces + content\n      if ( !block.match( re ) ) return undefined;\n\n      block_search:\n      do {\n        // Now pull out the rest of the lines\n        var b = this.loop_re_over_block(\n                  re, block.valueOf(), function( m ) { ret.push( m[1] ); } );\n\n        if ( b.length ) {\n          // Case alluded to in first comment. push it back on as a new block\n          next.unshift( mk_block(b, block.trailing) );\n          break block_search;\n        }\n        else if ( next.length ) {\n          // Check the next block - it might be code too\n          if ( !next[0].match( re ) ) break block_search;\n\n          // Pull how how many blanks lines follow - minus two to account for .join\n          ret.push ( block.trailing.replace(/[^\\n]/g, \"\").substring(2) );\n\n          block = next.shift();\n        }\n        else {\n          break block_search;\n        }\n      } while ( true );\n\n      return [ [ \"code_block\", ret.join(\"\\n\") ] ];\n    },\n\n    horizRule: function horizRule( block, next ) {\n      // this needs to find any hr in the block to handle abutting blocks\n      var m = block.match( /^(?:([\\s\\S]*?)\\n)?[ \\t]*([-_*])(?:[ \\t]*\\2){2,}[ \\t]*(?:\\n([\\s\\S]*))?$/ );\n\n      if ( !m ) {\n        return undefined;\n      }\n\n      var jsonml = [ [ \"hr\" ] ];\n\n      // if there's a leading abutting block, process it\n      if ( m[ 1 ] ) {\n        jsonml.unshift.apply( jsonml, this.processBlock( m[ 1 ], [] ) );\n      }\n\n      // if there's a trailing abutting block, stick it into next\n      if ( m[ 3 ] ) {\n        next.unshift( mk_block( m[ 3 ] ) );\n      }\n\n      return jsonml;\n    },\n\n    // There are two types of lists. Tight and loose. Tight lists have no whitespace\n    // between the items (and result in text just in the <li>) and loose lists,\n    // which have an empty line between list items, resulting in (one or more)\n    // paragraphs inside the <li>.\n    //\n    // There are all sorts weird edge cases about the original markdown.pl's\n    // handling of lists:\n    //\n    // * Nested lists are supposed to be indented by four chars per level. But\n    //   if they aren't, you can get a nested list by indenting by less than\n    //   four so long as the indent doesn't match an indent of an existing list\n    //   item in the 'nest stack'.\n    //\n    // * The type of the list (bullet or number) is controlled just by the\n    //    first item at the indent. Subsequent changes are ignored unless they\n    //    are for nested lists\n    //\n    lists: (function( ) {\n      // Use a closure to hide a few variables.\n      var any_list = \"[*+-]|\\\\d+\\\\.\",\n          bullet_list = /[*+-]/,\n          number_list = /\\d+\\./,\n          // Capture leading indent as it matters for determining nested lists.\n          is_list_re = new RegExp( \"^( {0,3})(\" + any_list + \")[ \\t]+\" ),\n          indent_re = \"(?: {0,3}\\\\t| {4})\";\n\n      // TODO: Cache this regexp for certain depths.\n      // Create a regexp suitable for matching an li for a given stack depth\n      function regex_for_depth( depth ) {\n\n        return new RegExp(\n          // m[1] = indent, m[2] = list_type\n          \"(?:^(\" + indent_re + \"{0,\" + depth + \"} {0,3})(\" + any_list + \")\\\\s+)|\" +\n          // m[3] = cont\n          \"(^\" + indent_re + \"{0,\" + (depth-1) + \"}[ ]{0,4})\"\n        );\n      }\n      function expand_tab( input ) {\n        return input.replace( / {0,3}\\t/g, \"    \" );\n      }\n\n      // Add inline content `inline` to `li`. inline comes from processInline\n      // so is an array of content\n      function add(li, loose, inline, nl) {\n        if ( loose ) {\n          li.push( [ \"para\" ].concat(inline) );\n          return;\n        }\n        // Hmmm, should this be any block level element or just paras?\n        var add_to = li[li.length -1] instanceof Array && li[li.length - 1][0] == \"para\"\n                   ? li[li.length -1]\n                   : li;\n\n        // If there is already some content in this list, add the new line in\n        if ( nl && li.length > 1 ) inline.unshift(nl);\n\n        for ( var i = 0; i < inline.length; i++ ) {\n          var what = inline[i],\n              is_str = typeof what == \"string\";\n          if ( is_str && add_to.length > 1 && typeof add_to[add_to.length-1] == \"string\" ) {\n            add_to[ add_to.length-1 ] += what;\n          }\n          else {\n            add_to.push( what );\n          }\n        }\n      }\n\n      // contained means have an indent greater than the current one. On\n      // *every* line in the block\n      function get_contained_blocks( depth, blocks ) {\n\n        var re = new RegExp( \"^(\" + indent_re + \"{\" + depth + \"}.*?\\\\n?)*$\" ),\n            replace = new RegExp(\"^\" + indent_re + \"{\" + depth + \"}\", \"gm\"),\n            ret = [];\n\n        while ( blocks.length > 0 ) {\n          if ( re.exec( blocks[0] ) ) {\n            var b = blocks.shift(),\n                // Now remove that indent\n                x = b.replace( replace, \"\");\n\n            ret.push( mk_block( x, b.trailing, b.lineNumber ) );\n          }\n          else {\n            break;\n          }\n        }\n        return ret;\n      }\n\n      // passed to stack.forEach to turn list items up the stack into paras\n      function paragraphify(s, i, stack) {\n        var list = s.list;\n        var last_li = list[list.length-1];\n\n        if ( last_li[1] instanceof Array && last_li[1][0] == \"para\" ) {\n          return;\n        }\n        if ( i + 1 == stack.length ) {\n          // Last stack frame\n          // Keep the same array, but replace the contents\n          last_li.push( [\"para\"].concat( last_li.splice(1, last_li.length - 1) ) );\n        }\n        else {\n          var sublist = last_li.pop();\n          last_li.push( [\"para\"].concat( last_li.splice(1, last_li.length - 1) ), sublist );\n        }\n      }\n\n      // The matcher function\n      return function( block, next ) {\n        var m = block.match( is_list_re );\n        if ( !m ) return undefined;\n\n        function make_list( m ) {\n          var list = bullet_list.exec( m[2] )\n                   ? [\"bulletlist\"]\n                   : [\"numberlist\"];\n\n          stack.push( { list: list, indent: m[1] } );\n          return list;\n        }\n\n\n        var stack = [], // Stack of lists for nesting.\n            list = make_list( m ),\n            last_li,\n            loose = false,\n            ret = [ stack[0].list ],\n            i;\n\n        // Loop to search over block looking for inner block elements and loose lists\n        loose_search:\n        while ( true ) {\n          // Split into lines preserving new lines at end of line\n          var lines = block.split( /(?=\\n)/ );\n\n          // We have to grab all lines for a li and call processInline on them\n          // once as there are some inline things that can span lines.\n          var li_accumulate = \"\";\n\n          // Loop over the lines in this block looking for tight lists.\n          tight_search:\n          for ( var line_no = 0; line_no < lines.length; line_no++ ) {\n            var nl = \"\",\n                l = lines[line_no].replace(/^\\n/, function(n) { nl = n; return \"\"; });\n\n            // TODO: really should cache this\n            var line_re = regex_for_depth( stack.length );\n\n            m = l.match( line_re );\n            //print( \"line:\", uneval(l), \"\\nline match:\", uneval(m) );\n\n            // We have a list item\n            if ( m[1] !== undefined ) {\n              // Process the previous list item, if any\n              if ( li_accumulate.length ) {\n                add( last_li, loose, this.processInline( li_accumulate ), nl );\n                // Loose mode will have been dealt with. Reset it\n                loose = false;\n                li_accumulate = \"\";\n              }\n\n              m[1] = expand_tab( m[1] );\n              var wanted_depth = Math.floor(m[1].length/4)+1;\n              //print( \"want:\", wanted_depth, \"stack:\", stack.length);\n              if ( wanted_depth > stack.length ) {\n                // Deep enough for a nested list outright\n                //print ( \"new nested list\" );\n                list = make_list( m );\n                last_li.push( list );\n                last_li = list[1] = [ \"listitem\" ];\n              }\n              else {\n                // We aren't deep enough to be strictly a new level. This is\n                // where Md.pl goes nuts. If the indent matches a level in the\n                // stack, put it there, else put it one deeper then the\n                // wanted_depth deserves.\n                var found = false;\n                for ( i = 0; i < stack.length; i++ ) {\n                  if ( stack[ i ].indent != m[1] ) continue;\n                  list = stack[ i ].list;\n                  stack.splice( i+1, stack.length - (i+1) );\n                  found = true;\n                  break;\n                }\n\n                if (!found) {\n                  //print(\"not found. l:\", uneval(l));\n                  wanted_depth++;\n                  if ( wanted_depth <= stack.length ) {\n                    stack.splice(wanted_depth, stack.length - wanted_depth);\n                    //print(\"Desired depth now\", wanted_depth, \"stack:\", stack.length);\n                    list = stack[wanted_depth-1].list;\n                    //print(\"list:\", uneval(list) );\n                  }\n                  else {\n                    //print (\"made new stack for messy indent\");\n                    list = make_list(m);\n                    last_li.push(list);\n                  }\n                }\n\n                //print( uneval(list), \"last\", list === stack[stack.length-1].list );\n                last_li = [ \"listitem\" ];\n                list.push(last_li);\n              } // end depth of shenegains\n              nl = \"\";\n            }\n\n            // Add content\n            if ( l.length > m[0].length ) {\n              li_accumulate += nl + l.substr( m[0].length );\n            }\n          } // tight_search\n\n          if ( li_accumulate.length ) {\n            add( last_li, loose, this.processInline( li_accumulate ), nl );\n            // Loose mode will have been dealt with. Reset it\n            loose = false;\n            li_accumulate = \"\";\n          }\n\n          // Look at the next block - we might have a loose list. Or an extra\n          // paragraph for the current li\n          var contained = get_contained_blocks( stack.length, next );\n\n          // Deal with code blocks or properly nested lists\n          if ( contained.length > 0 ) {\n            // Make sure all listitems up the stack are paragraphs\n            forEach( stack, paragraphify, this);\n\n            last_li.push.apply( last_li, this.toTree( contained, [] ) );\n          }\n\n          var next_block = next[0] && next[0].valueOf() || \"\";\n\n          if ( next_block.match(is_list_re) || next_block.match( /^ / ) ) {\n            block = next.shift();\n\n            // Check for an HR following a list: features/lists/hr_abutting\n            var hr = this.dialect.block.horizRule( block, next );\n\n            if ( hr ) {\n              ret.push.apply(ret, hr);\n              break;\n            }\n\n            // Make sure all listitems up the stack are paragraphs\n            forEach( stack, paragraphify, this);\n\n            loose = true;\n            continue loose_search;\n          }\n          break;\n        } // loose_search\n\n        return ret;\n      };\n    })(),\n\n    blockquote: function blockquote( block, next ) {\n      if ( !block.match( /^>/m ) )\n        return undefined;\n\n      var jsonml = [];\n\n      // separate out the leading abutting block, if any. I.e. in this case:\n      //\n      //  a\n      //  > b\n      //\n      if ( block[ 0 ] != \">\" ) {\n        var lines = block.split( /\\n/ ),\n            prev = [],\n            line_no = block.lineNumber;\n\n        // keep shifting lines until you find a crotchet\n        while ( lines.length && lines[ 0 ][ 0 ] != \">\" ) {\n            prev.push( lines.shift() );\n            line_no++;\n        }\n\n        var abutting = mk_block( prev.join( \"\\n\" ), \"\\n\", block.lineNumber );\n        jsonml.push.apply( jsonml, this.processBlock( abutting, [] ) );\n        // reassemble new block of just block quotes!\n        block = mk_block( lines.join( \"\\n\" ), block.trailing, line_no );\n      }\n\n\n      // if the next block is also a blockquote merge it in\n      while ( next.length && next[ 0 ][ 0 ] == \">\" ) {\n        var b = next.shift();\n        block = mk_block( block + block.trailing + b, b.trailing, block.lineNumber );\n      }\n\n      // Strip off the leading \"> \" and re-process as a block.\n      var input = block.replace( /^> ?/gm, \"\" ),\n          old_tree = this.tree,\n          processedBlock = this.toTree( input, [ \"blockquote\" ] ),\n          attr = extract_attr( processedBlock );\n\n      // If any link references were found get rid of them\n      if ( attr && attr.references ) {\n        delete attr.references;\n        // And then remove the attribute object if it's empty\n        if ( isEmpty( attr ) ) {\n          processedBlock.splice( 1, 1 );\n        }\n      }\n\n      jsonml.push( processedBlock );\n      return jsonml;\n    },\n\n    referenceDefn: function referenceDefn( block, next) {\n      var re = /^\\s*\\[(.*?)\\]:\\s*(\\S+)(?:\\s+(?:(['\"])(.*?)\\3|\\((.*?)\\)))?\\n?/;\n      // interesting matches are [ , ref_id, url, , title, title ]\n\n      if ( !block.match(re) )\n        return undefined;\n\n      // make an attribute node if it doesn't exist\n      if ( !extract_attr( this.tree ) ) {\n        this.tree.splice( 1, 0, {} );\n      }\n\n      var attrs = extract_attr( this.tree );\n\n      // make a references hash if it doesn't exist\n      if ( attrs.references === undefined ) {\n        attrs.references = {};\n      }\n\n      var b = this.loop_re_over_block(re, block, function( m ) {\n\n        if ( m[2] && m[2][0] == \"<\" && m[2][m[2].length-1] == \">\" )\n          m[2] = m[2].substring( 1, m[2].length - 1 );\n\n        var ref = attrs.references[ m[1].toLowerCase() ] = {\n          href: m[2]\n        };\n\n        if ( m[4] !== undefined )\n          ref.title = m[4];\n        else if ( m[5] !== undefined )\n          ref.title = m[5];\n\n      } );\n\n      if ( b.length )\n        next.unshift( mk_block( b, block.trailing ) );\n\n      return [];\n    },\n\n    para: function para( block, next ) {\n      // everything's a para!\n      return [ [\"para\"].concat( this.processInline( block ) ) ];\n    }\n  }\n};\n\nMarkdown.dialects.Gruber.inline = {\n\n    __oneElement__: function oneElement( text, patterns_or_re, previous_nodes ) {\n      var m,\n          res,\n          lastIndex = 0;\n\n      patterns_or_re = patterns_or_re || this.dialect.inline.__patterns__;\n      var re = new RegExp( \"([\\\\s\\\\S]*?)(\" + (patterns_or_re.source || patterns_or_re) + \")\" );\n\n      m = re.exec( text );\n      if (!m) {\n        // Just boring text\n        return [ text.length, text ];\n      }\n      else if ( m[1] ) {\n        // Some un-interesting text matched. Return that first\n        return [ m[1].length, m[1] ];\n      }\n\n      var res;\n      if ( m[2] in this.dialect.inline ) {\n        res = this.dialect.inline[ m[2] ].call(\n                  this,\n                  text.substr( m.index ), m, previous_nodes || [] );\n      }\n      // Default for now to make dev easier. just slurp special and output it.\n      res = res || [ m[2].length, m[2] ];\n      return res;\n    },\n\n    __call__: function inline( text, patterns ) {\n\n      var out = [],\n          res;\n\n      function add(x) {\n        //D:self.debug(\"  adding output\", uneval(x));\n        if ( typeof x == \"string\" && typeof out[out.length-1] == \"string\" )\n          out[ out.length-1 ] += x;\n        else\n          out.push(x);\n      }\n\n      while ( text.length > 0 ) {\n        res = this.dialect.inline.__oneElement__.call(this, text, patterns, out );\n        text = text.substr( res.shift() );\n        forEach(res, add )\n      }\n\n      return out;\n    },\n\n    // These characters are intersting elsewhere, so have rules for them so that\n    // chunks of plain text blocks don't include them\n    \"]\": function () {},\n    \"}\": function () {},\n\n    __escape__ : /^\\\\[\\\\`\\*_{}\\[\\]()#\\+.!\\-]/,\n\n    \"\\\\\": function escaped( text ) {\n      // [ length of input processed, node/children to add... ]\n      // Only esacape: \\ ` * _ { } [ ] ( ) # * + - . !\n      if ( this.dialect.inline.__escape__.exec( text ) )\n        return [ 2, text.charAt( 1 ) ];\n      else\n        // Not an esacpe\n        return [ 1, \"\\\\\" ];\n    },\n\n    \"![\": function image( text ) {\n\n      // Unlike images, alt text is plain text only. no other elements are\n      // allowed in there\n\n      // ![Alt text](/path/to/img.jpg \"Optional title\")\n      //      1          2            3       4         <--- captures\n      var m = text.match( /^!\\[(.*?)\\][ \\t]*\\([ \\t]*([^\")]*?)(?:[ \\t]+([\"'])(.*?)\\3)?[ \\t]*\\)/ );\n\n      if ( m ) {\n        if ( m[2] && m[2][0] == \"<\" && m[2][m[2].length-1] == \">\" )\n          m[2] = m[2].substring( 1, m[2].length - 1 );\n\n        m[2] = this.dialect.inline.__call__.call( this, m[2], /\\\\/ )[0];\n\n        var attrs = { alt: m[1], href: m[2] || \"\" };\n        if ( m[4] !== undefined)\n          attrs.title = m[4];\n\n        return [ m[0].length, [ \"img\", attrs ] ];\n      }\n\n      // ![Alt text][id]\n      m = text.match( /^!\\[(.*?)\\][ \\t]*\\[(.*?)\\]/ );\n\n      if ( m ) {\n        // We can't check if the reference is known here as it likely wont be\n        // found till after. Check it in md tree->hmtl tree conversion\n        return [ m[0].length, [ \"img_ref\", { alt: m[1], ref: m[2].toLowerCase(), original: m[0] } ] ];\n      }\n\n      // Just consume the '!['\n      return [ 2, \"![\" ];\n    },\n\n    \"[\": function link( text ) {\n\n      var orig = String(text);\n      // Inline content is possible inside `link text`\n      var res = Markdown.DialectHelpers.inline_until_char.call( this, text.substr(1), \"]\" );\n\n      // No closing ']' found. Just consume the [\n      if ( !res ) return [ 1, \"[\" ];\n\n      var consumed = 1 + res[ 0 ],\n          children = res[ 1 ],\n          link,\n          attrs;\n\n      // At this point the first [...] has been parsed. See what follows to find\n      // out which kind of link we are (reference or direct url)\n      text = text.substr( consumed );\n\n      // [link text](/path/to/img.jpg \"Optional title\")\n      //                 1            2       3         <--- captures\n      // This will capture up to the last paren in the block. We then pull\n      // back based on if there a matching ones in the url\n      //    ([here](/url/(test))\n      // The parens have to be balanced\n      var m = text.match( /^\\s*\\([ \\t]*([^\"']*)(?:[ \\t]+([\"'])(.*?)\\2)?[ \\t]*\\)/ );\n      if ( m ) {\n        var url = m[1];\n        consumed += m[0].length;\n\n        if ( url && url[0] == \"<\" && url[url.length-1] == \">\" )\n          url = url.substring( 1, url.length - 1 );\n\n        // If there is a title we don't have to worry about parens in the url\n        if ( !m[3] ) {\n          var open_parens = 1; // One open that isn't in the capture\n          for ( var len = 0; len < url.length; len++ ) {\n            switch ( url[len] ) {\n            case \"(\":\n              open_parens++;\n              break;\n            case \")\":\n              if ( --open_parens == 0) {\n                consumed -= url.length - len;\n                url = url.substring(0, len);\n              }\n              break;\n            }\n          }\n        }\n\n        // Process escapes only\n        url = this.dialect.inline.__call__.call( this, url, /\\\\/ )[0];\n\n        attrs = { href: url || \"\" };\n        if ( m[3] !== undefined)\n          attrs.title = m[3];\n\n        link = [ \"link\", attrs ].concat( children );\n        return [ consumed, link ];\n      }\n\n      // [Alt text][id]\n      // [Alt text] [id]\n      m = text.match( /^\\s*\\[(.*?)\\]/ );\n\n      if ( m ) {\n\n        consumed += m[ 0 ].length;\n\n        // [links][] uses links as its reference\n        attrs = { ref: ( m[ 1 ] || String(children) ).toLowerCase(),  original: orig.substr( 0, consumed ) };\n\n        link = [ \"link_ref\", attrs ].concat( children );\n\n        // We can't check if the reference is known here as it likely wont be\n        // found till after. Check it in md tree->hmtl tree conversion.\n        // Store the original so that conversion can revert if the ref isn't found.\n        return [ consumed, link ];\n      }\n\n      // [id]\n      // Only if id is plain (no formatting.)\n      if ( children.length == 1 && typeof children[0] == \"string\" ) {\n\n        attrs = { ref: children[0].toLowerCase(),  original: orig.substr( 0, consumed ) };\n        link = [ \"link_ref\", attrs, children[0] ];\n        return [ consumed, link ];\n      }\n\n      // Just consume the \"[\"\n      return [ 1, \"[\" ];\n    },\n\n\n    \"<\": function autoLink( text ) {\n      var m;\n\n      if ( ( m = text.match( /^<(?:((https?|ftp|mailto):[^>]+)|(.*?@.*?\\.[a-zA-Z]+))>/ ) ) != null ) {\n        if ( m[3] ) {\n          return [ m[0].length, [ \"link\", { href: \"mailto:\" + m[3] }, m[3] ] ];\n\n        }\n        else if ( m[2] == \"mailto\" ) {\n          return [ m[0].length, [ \"link\", { href: m[1] }, m[1].substr(\"mailto:\".length ) ] ];\n        }\n        else\n          return [ m[0].length, [ \"link\", { href: m[1] }, m[1] ] ];\n      }\n\n      return [ 1, \"<\" ];\n    },\n\n    \"`\": function inlineCode( text ) {\n      // Inline code block. as many backticks as you like to start it\n      // Always skip over the opening ticks.\n      var m = text.match( /(`+)(([\\s\\S]*?)\\1)/ );\n\n      if ( m && m[2] )\n        return [ m[1].length + m[2].length, [ \"inlinecode\", m[3] ] ];\n      else {\n        // TODO: No matching end code found - warn!\n        return [ 1, \"`\" ];\n      }\n    },\n\n    \"  \\n\": function lineBreak( text ) {\n      return [ 3, [ \"linebreak\" ] ];\n    }\n\n};\n\n// Meta Helper/generator method for em and strong handling\nfunction strong_em( tag, md ) {\n\n  var state_slot = tag + \"_state\",\n      other_slot = tag == \"strong\" ? \"em_state\" : \"strong_state\";\n\n  function CloseTag(len) {\n    this.len_after = len;\n    this.name = \"close_\" + md;\n  }\n\n  return function ( text, orig_match ) {\n\n    if ( this[state_slot][0] == md ) {\n      // Most recent em is of this type\n      //D:this.debug(\"closing\", md);\n      this[state_slot].shift();\n\n      // \"Consume\" everything to go back to the recrusion in the else-block below\n      return[ text.length, new CloseTag(text.length-md.length) ];\n    }\n    else {\n      // Store a clone of the em/strong states\n      var other = this[other_slot].slice(),\n          state = this[state_slot].slice();\n\n      this[state_slot].unshift(md);\n\n      //D:this.debug_indent += \"  \";\n\n      // Recurse\n      var res = this.processInline( text.substr( md.length ) );\n      //D:this.debug_indent = this.debug_indent.substr(2);\n\n      var last = res[res.length - 1];\n\n      //D:this.debug(\"processInline from\", tag + \": \", uneval( res ) );\n\n      var check = this[state_slot].shift();\n      if ( last instanceof CloseTag ) {\n        res.pop();\n        // We matched! Huzzah.\n        var consumed = text.length - last.len_after;\n        return [ consumed, [ tag ].concat(res) ];\n      }\n      else {\n        // Restore the state of the other kind. We might have mistakenly closed it.\n        this[other_slot] = other;\n        this[state_slot] = state;\n\n        // We can't reuse the processed result as it could have wrong parsing contexts in it.\n        return [ md.length, md ];\n      }\n    }\n  }; // End returned function\n}\n\nMarkdown.dialects.Gruber.inline[\"**\"] = strong_em(\"strong\", \"**\");\nMarkdown.dialects.Gruber.inline[\"__\"] = strong_em(\"strong\", \"__\");\nMarkdown.dialects.Gruber.inline[\"*\"]  = strong_em(\"em\", \"*\");\nMarkdown.dialects.Gruber.inline[\"_\"]  = strong_em(\"em\", \"_\");\n\n\n// Build default order from insertion order.\nMarkdown.buildBlockOrder = function(d) {\n  var ord = [];\n  for ( var i in d ) {\n    if ( i == \"__order__\" || i == \"__call__\" ) continue;\n    ord.push( i );\n  }\n  d.__order__ = ord;\n};\n\n// Build patterns for inline matcher\nMarkdown.buildInlinePatterns = function(d) {\n  var patterns = [];\n\n  for ( var i in d ) {\n    // __foo__ is reserved and not a pattern\n    if ( i.match( /^__.*__$/) ) continue;\n    var l = i.replace( /([\\\\.*+?|()\\[\\]{}])/g, \"\\\\$1\" )\n             .replace( /\\n/, \"\\\\n\" );\n    patterns.push( i.length == 1 ? l : \"(?:\" + l + \")\" );\n  }\n\n  patterns = patterns.join(\"|\");\n  d.__patterns__ = patterns;\n  //print(\"patterns:\", uneval( patterns ) );\n\n  var fn = d.__call__;\n  d.__call__ = function(text, pattern) {\n    if ( pattern != undefined ) {\n      return fn.call(this, text, pattern);\n    }\n    else\n    {\n      return fn.call(this, text, patterns);\n    }\n  };\n};\n\nMarkdown.DialectHelpers = {};\nMarkdown.DialectHelpers.inline_until_char = function( text, want ) {\n  var consumed = 0,\n      nodes = [];\n\n  while ( true ) {\n    if ( text.charAt( consumed ) == want ) {\n      // Found the character we were looking for\n      consumed++;\n      return [ consumed, nodes ];\n    }\n\n    if ( consumed >= text.length ) {\n      // No closing char found. Abort.\n      return null;\n    }\n\n    var res = this.dialect.inline.__oneElement__.call(this, text.substr( consumed ) );\n    consumed += res[ 0 ];\n    // Add any returned nodes.\n    nodes.push.apply( nodes, res.slice( 1 ) );\n  }\n}\n\n// Helper function to make sub-classing a dialect easier\nMarkdown.subclassDialect = function( d ) {\n  function Block() {}\n  Block.prototype = d.block;\n  function Inline() {}\n  Inline.prototype = d.inline;\n\n  return { block: new Block(), inline: new Inline() };\n};\n\nMarkdown.buildBlockOrder ( Markdown.dialects.Gruber.block );\nMarkdown.buildInlinePatterns( Markdown.dialects.Gruber.inline );\n\nMarkdown.dialects.Maruku = Markdown.subclassDialect( Markdown.dialects.Gruber );\n\nMarkdown.dialects.Maruku.processMetaHash = function processMetaHash( meta_string ) {\n  var meta = split_meta_hash( meta_string ),\n      attr = {};\n\n  for ( var i = 0; i < meta.length; ++i ) {\n    // id: #foo\n    if ( /^#/.test( meta[ i ] ) ) {\n      attr.id = meta[ i ].substring( 1 );\n    }\n    // class: .foo\n    else if ( /^\\./.test( meta[ i ] ) ) {\n      // if class already exists, append the new one\n      if ( attr[\"class\"] ) {\n        attr[\"class\"] = attr[\"class\"] + meta[ i ].replace( /./, \" \" );\n      }\n      else {\n        attr[\"class\"] = meta[ i ].substring( 1 );\n      }\n    }\n    // attribute: foo=bar\n    else if ( /\\=/.test( meta[ i ] ) ) {\n      var s = meta[ i ].split( /\\=/ );\n      attr[ s[ 0 ] ] = s[ 1 ];\n    }\n  }\n\n  return attr;\n}\n\nfunction split_meta_hash( meta_string ) {\n  var meta = meta_string.split( \"\" ),\n      parts = [ \"\" ],\n      in_quotes = false;\n\n  while ( meta.length ) {\n    var letter = meta.shift();\n    switch ( letter ) {\n      case \" \" :\n        // if we're in a quoted section, keep it\n        if ( in_quotes ) {\n          parts[ parts.length - 1 ] += letter;\n        }\n        // otherwise make a new part\n        else {\n          parts.push( \"\" );\n        }\n        break;\n      case \"'\" :\n      case '\"' :\n        // reverse the quotes and move straight on\n        in_quotes = !in_quotes;\n        break;\n      case \"\\\\\" :\n        // shift off the next letter to be used straight away.\n        // it was escaped so we'll keep it whatever it is\n        letter = meta.shift();\n      default :\n        parts[ parts.length - 1 ] += letter;\n        break;\n    }\n  }\n\n  return parts;\n}\n\nMarkdown.dialects.Maruku.block.document_meta = function document_meta( block, next ) {\n  // we're only interested in the first block\n  if ( block.lineNumber > 1 ) return undefined;\n\n  // document_meta blocks consist of one or more lines of `Key: Value\\n`\n  if ( ! block.match( /^(?:\\w+:.*\\n)*\\w+:.*$/ ) ) return undefined;\n\n  // make an attribute node if it doesn't exist\n  if ( !extract_attr( this.tree ) ) {\n    this.tree.splice( 1, 0, {} );\n  }\n\n  var pairs = block.split( /\\n/ );\n  for ( p in pairs ) {\n    var m = pairs[ p ].match( /(\\w+):\\s*(.*)$/ ),\n        key = m[ 1 ].toLowerCase(),\n        value = m[ 2 ];\n\n    this.tree[ 1 ][ key ] = value;\n  }\n\n  // document_meta produces no content!\n  return [];\n};\n\nMarkdown.dialects.Maruku.block.block_meta = function block_meta( block, next ) {\n  // check if the last line of the block is an meta hash\n  var m = block.match( /(^|\\n) {0,3}\\{:\\s*((?:\\\\\\}|[^\\}])*)\\s*\\}$/ );\n  if ( !m ) return undefined;\n\n  // process the meta hash\n  var attr = this.dialect.processMetaHash( m[ 2 ] );\n\n  var hash;\n\n  // if we matched ^ then we need to apply meta to the previous block\n  if ( m[ 1 ] === \"\" ) {\n    var node = this.tree[ this.tree.length - 1 ];\n    hash = extract_attr( node );\n\n    // if the node is a string (rather than JsonML), bail\n    if ( typeof node === \"string\" ) return undefined;\n\n    // create the attribute hash if it doesn't exist\n    if ( !hash ) {\n      hash = {};\n      node.splice( 1, 0, hash );\n    }\n\n    // add the attributes in\n    for ( a in attr ) {\n      hash[ a ] = attr[ a ];\n    }\n\n    // return nothing so the meta hash is removed\n    return [];\n  }\n\n  // pull the meta hash off the block and process what's left\n  var b = block.replace( /\\n.*$/, \"\" ),\n      result = this.processBlock( b, [] );\n\n  // get or make the attributes hash\n  hash = extract_attr( result[ 0 ] );\n  if ( !hash ) {\n    hash = {};\n    result[ 0 ].splice( 1, 0, hash );\n  }\n\n  // attach the attributes to the block\n  for ( a in attr ) {\n    hash[ a ] = attr[ a ];\n  }\n\n  return result;\n};\n\nMarkdown.dialects.Maruku.block.definition_list = function definition_list( block, next ) {\n  // one or more terms followed by one or more definitions, in a single block\n  var tight = /^((?:[^\\s:].*\\n)+):\\s+([\\s\\S]+)$/,\n      list = [ \"dl\" ],\n      i, m;\n\n  // see if we're dealing with a tight or loose block\n  if ( ( m = block.match( tight ) ) ) {\n    // pull subsequent tight DL blocks out of `next`\n    var blocks = [ block ];\n    while ( next.length && tight.exec( next[ 0 ] ) ) {\n      blocks.push( next.shift() );\n    }\n\n    for ( var b = 0; b < blocks.length; ++b ) {\n      var m = blocks[ b ].match( tight ),\n          terms = m[ 1 ].replace( /\\n$/, \"\" ).split( /\\n/ ),\n          defns = m[ 2 ].split( /\\n:\\s+/ );\n\n      // print( uneval( m ) );\n\n      for ( i = 0; i < terms.length; ++i ) {\n        list.push( [ \"dt\", terms[ i ] ] );\n      }\n\n      for ( i = 0; i < defns.length; ++i ) {\n        // run inline processing over the definition\n        list.push( [ \"dd\" ].concat( this.processInline( defns[ i ].replace( /(\\n)\\s+/, \"$1\" ) ) ) );\n      }\n    }\n  }\n  else {\n    return undefined;\n  }\n\n  return [ list ];\n};\n\n// splits on unescaped instances of @ch. If @ch is not a character the result\n// can be unpredictable\n\nMarkdown.dialects.Maruku.block.table = function table (block, next) {\n\n    var _split_on_unescaped = function(s, ch) {\n        ch = ch || '\\\\s';\n        if (ch.match(/^[\\\\|\\[\\]{}?*.+^$]$/)) { ch = '\\\\' + ch; }\n        var res = [ ],\n            r = new RegExp('^((?:\\\\\\\\.|[^\\\\\\\\' + ch + '])*)' + ch + '(.*)'),\n            m;\n        while(m = s.match(r)) {\n            res.push(m[1]);\n            s = m[2];\n        }\n        res.push(s);\n        return res;\n    }\n\n    var leading_pipe = /^ {0,3}\\|(.+)\\n {0,3}\\|\\s*([\\-:]+[\\-| :]*)\\n((?:\\s*\\|.*(?:\\n|$))*)(?=\\n|$)/,\n        // find at least an unescaped pipe in each line\n        no_leading_pipe = /^ {0,3}(\\S(?:\\\\.|[^\\\\|])*\\|.*)\\n {0,3}([\\-:]+\\s*\\|[\\-| :]*)\\n((?:(?:\\\\.|[^\\\\|])*\\|.*(?:\\n|$))*)(?=\\n|$)/,\n        i, m;\n    if (m = block.match(leading_pipe)) {\n        // remove leading pipes in contents\n        // (header and horizontal rule already have the leading pipe left out)\n        m[3] = m[3].replace(/^\\s*\\|/gm, '');\n    } else if (! ( m = block.match(no_leading_pipe))) {\n        return undefined;\n    }\n\n    var table = [ \"table\", [ \"thead\", [ \"tr\" ] ], [ \"tbody\" ] ];\n\n    // remove trailing pipes, then split on pipes\n    // (no escaped pipes are allowed in horizontal rule)\n    m[2] = m[2].replace(/\\|\\s*$/, '').split('|');\n\n    // process alignment\n    var html_attrs = [ ];\n    forEach (m[2], function (s) {\n        if (s.match(/^\\s*-+:\\s*$/))       html_attrs.push({align: \"right\"});\n        else if (s.match(/^\\s*:-+\\s*$/))  html_attrs.push({align: \"left\"});\n        else if (s.match(/^\\s*:-+:\\s*$/)) html_attrs.push({align: \"center\"});\n        else                              html_attrs.push({});\n    });\n\n    // now for the header, avoid escaped pipes\n    m[1] = _split_on_unescaped(m[1].replace(/\\|\\s*$/, ''), '|');\n    for (i = 0; i < m[1].length; i++) {\n        table[1][1].push(['th', html_attrs[i] || {}].concat(\n            this.processInline(m[1][i].trim())));\n    }\n\n    // now for body contents\n    forEach (m[3].replace(/\\|\\s*$/mg, '').split('\\n'), function (row) {\n        var html_row = ['tr'];\n        row = _split_on_unescaped(row, '|');\n        for (i = 0; i < row.length; i++) {\n            html_row.push(['td', html_attrs[i] || {}].concat(this.processInline(row[i].trim())));\n        }\n        table[2].push(html_row);\n    }, this);\n\n    return [table];\n}\n\nMarkdown.dialects.Maruku.inline[ \"{:\" ] = function inline_meta( text, matches, out ) {\n  if ( !out.length ) {\n    return [ 2, \"{:\" ];\n  }\n\n  // get the preceeding element\n  var before = out[ out.length - 1 ];\n\n  if ( typeof before === \"string\" ) {\n    return [ 2, \"{:\" ];\n  }\n\n  // match a meta hash\n  var m = text.match( /^\\{:\\s*((?:\\\\\\}|[^\\}])*)\\s*\\}/ );\n\n  // no match, false alarm\n  if ( !m ) {\n    return [ 2, \"{:\" ];\n  }\n\n  // attach the attributes to the preceeding element\n  var meta = this.dialect.processMetaHash( m[ 1 ] ),\n      attr = extract_attr( before );\n\n  if ( !attr ) {\n    attr = {};\n    before.splice( 1, 0, attr );\n  }\n\n  for ( var k in meta ) {\n    attr[ k ] = meta[ k ];\n  }\n\n  // cut out the string and replace it with nothing\n  return [ m[ 0 ].length, \"\" ];\n};\n\nMarkdown.dialects.Maruku.inline.__escape__ = /^\\\\[\\\\`\\*_{}\\[\\]()#\\+.!\\-|:]/;\n\nMarkdown.buildBlockOrder ( Markdown.dialects.Maruku.block );\nMarkdown.buildInlinePatterns( Markdown.dialects.Maruku.inline );\n\nvar isArray = Array.isArray || function(obj) {\n  return Object.prototype.toString.call(obj) == \"[object Array]\";\n};\n\nvar forEach;\n// Don't mess with Array.prototype. Its not friendly\nif ( Array.prototype.forEach ) {\n  forEach = function( arr, cb, thisp ) {\n    return arr.forEach( cb, thisp );\n  };\n}\nelse {\n  forEach = function(arr, cb, thisp) {\n    for (var i = 0; i < arr.length; i++) {\n      cb.call(thisp || arr, arr[i], i, arr);\n    }\n  }\n}\n\nvar isEmpty = function( obj ) {\n  for ( var key in obj ) {\n    if ( hasOwnProperty.call( obj, key ) ) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction extract_attr( jsonml ) {\n  return isArray(jsonml)\n      && jsonml.length > 1\n      && typeof jsonml[ 1 ] === \"object\"\n      && !( isArray(jsonml[ 1 ]) )\n      ? jsonml[ 1 ]\n      : undefined;\n}\n\n\n\n/**\n *  renderJsonML( jsonml[, options] ) -> String\n *  - jsonml (Array): JsonML array to render to XML\n *  - options (Object): options\n *\n *  Converts the given JsonML into well-formed XML.\n *\n *  The options currently understood are:\n *\n *  - root (Boolean): wether or not the root node should be included in the\n *    output, or just its children. The default `false` is to not include the\n *    root itself.\n */\nexpose.renderJsonML = function( jsonml, options ) {\n  options = options || {};\n  // include the root element in the rendered output?\n  options.root = options.root || false;\n\n  var content = [];\n\n  if ( options.root ) {\n    content.push( render_tree( jsonml ) );\n  }\n  else {\n    jsonml.shift(); // get rid of the tag\n    if ( jsonml.length && typeof jsonml[ 0 ] === \"object\" && !( jsonml[ 0 ] instanceof Array ) ) {\n      jsonml.shift(); // get rid of the attributes\n    }\n\n    while ( jsonml.length ) {\n      content.push( render_tree( jsonml.shift() ) );\n    }\n  }\n\n  return content.join( \"\\n\\n\" );\n};\n\nfunction escapeHTML( text ) {\n  return text.replace( /&/g, \"&amp;\" )\n             .replace( /</g, \"&lt;\" )\n             .replace( />/g, \"&gt;\" )\n             .replace( /\"/g, \"&quot;\" )\n             .replace( /'/g, \"&#39;\" );\n}\n\nfunction render_tree( jsonml ) {\n  // basic case\n  if ( typeof jsonml === \"string\" ) {\n    return escapeHTML( jsonml );\n  }\n\n  var tag = jsonml.shift(),\n      attributes = {},\n      content = [];\n\n  if ( jsonml.length && typeof jsonml[ 0 ] === \"object\" && !( jsonml[ 0 ] instanceof Array ) ) {\n    attributes = jsonml.shift();\n  }\n\n  while ( jsonml.length ) {\n    content.push( render_tree( jsonml.shift() ) );\n  }\n\n  var tag_attrs = \"\";\n  for ( var a in attributes ) {\n    tag_attrs += \" \" + a + '=\"' + escapeHTML( attributes[ a ] ) + '\"';\n  }\n\n  // be careful about adding whitespace here for inline elements\n  if ( tag == \"img\" || tag == \"br\" || tag == \"hr\" ) {\n    return \"<\"+ tag + tag_attrs + \"/>\";\n  }\n  else {\n    return \"<\"+ tag + tag_attrs + \">\" + content.join( \"\" ) + \"</\" + tag + \">\";\n  }\n}\n\nfunction convert_tree_to_html( tree, references, options ) {\n  var i;\n  options = options || {};\n\n  // shallow clone\n  var jsonml = tree.slice( 0 );\n\n  if ( typeof options.preprocessTreeNode === \"function\" ) {\n      jsonml = options.preprocessTreeNode(jsonml, references);\n  }\n\n  // Clone attributes if they exist\n  var attrs = extract_attr( jsonml );\n  if ( attrs ) {\n    jsonml[ 1 ] = {};\n    for ( i in attrs ) {\n      jsonml[ 1 ][ i ] = attrs[ i ];\n    }\n    attrs = jsonml[ 1 ];\n  }\n\n  // basic case\n  if ( typeof jsonml === \"string\" ) {\n    return jsonml;\n  }\n\n  // convert this node\n  switch ( jsonml[ 0 ] ) {\n    case \"header\":\n      jsonml[ 0 ] = \"h\" + jsonml[ 1 ].level;\n      delete jsonml[ 1 ].level;\n      break;\n    case \"bulletlist\":\n      jsonml[ 0 ] = \"ul\";\n      break;\n    case \"numberlist\":\n      jsonml[ 0 ] = \"ol\";\n      break;\n    case \"listitem\":\n      jsonml[ 0 ] = \"li\";\n      break;\n    case \"para\":\n      jsonml[ 0 ] = \"p\";\n      break;\n    case \"markdown\":\n      jsonml[ 0 ] = \"html\";\n      if ( attrs ) delete attrs.references;\n      break;\n    case \"code_block\":\n      jsonml[ 0 ] = \"pre\";\n      i = attrs ? 2 : 1;\n      var code = [ \"code\" ];\n      code.push.apply( code, jsonml.splice( i, jsonml.length - i ) );\n      jsonml[ i ] = code;\n      break;\n    case \"inlinecode\":\n      jsonml[ 0 ] = \"code\";\n      break;\n    case \"img\":\n      jsonml[ 1 ].src = jsonml[ 1 ].href;\n      delete jsonml[ 1 ].href;\n      break;\n    case \"linebreak\":\n      jsonml[ 0 ] = \"br\";\n    break;\n    case \"link\":\n      jsonml[ 0 ] = \"a\";\n      break;\n    case \"link_ref\":\n      jsonml[ 0 ] = \"a\";\n\n      // grab this ref and clean up the attribute node\n      var ref = references[ attrs.ref ];\n\n      // if the reference exists, make the link\n      if ( ref ) {\n        delete attrs.ref;\n\n        // add in the href and title, if present\n        attrs.href = ref.href;\n        if ( ref.title ) {\n          attrs.title = ref.title;\n        }\n\n        // get rid of the unneeded original text\n        delete attrs.original;\n      }\n      // the reference doesn't exist, so revert to plain text\n      else {\n        return attrs.original;\n      }\n      break;\n    case \"img_ref\":\n      jsonml[ 0 ] = \"img\";\n\n      // grab this ref and clean up the attribute node\n      var ref = references[ attrs.ref ];\n\n      // if the reference exists, make the link\n      if ( ref ) {\n        delete attrs.ref;\n\n        // add in the href and title, if present\n        attrs.src = ref.href;\n        if ( ref.title ) {\n          attrs.title = ref.title;\n        }\n\n        // get rid of the unneeded original text\n        delete attrs.original;\n      }\n      // the reference doesn't exist, so revert to plain text\n      else {\n        return attrs.original;\n      }\n      break;\n  }\n\n  // convert all the children\n  i = 1;\n\n  // deal with the attribute node, if it exists\n  if ( attrs ) {\n    // if there are keys, skip over it\n    for ( var key in jsonml[ 1 ] ) {\n        i = 2;\n        break;\n    }\n    // if there aren't, remove it\n    if ( i === 1 ) {\n      jsonml.splice( i, 1 );\n    }\n  }\n\n  for ( ; i < jsonml.length; ++i ) {\n    jsonml[ i ] = convert_tree_to_html( jsonml[ i ], references, options );\n  }\n\n  return jsonml;\n}\n\n\n// merges adjacent text nodes into a single node\nfunction merge_text_nodes( jsonml ) {\n  // skip the tag name and attribute hash\n  var i = extract_attr( jsonml ) ? 2 : 1;\n\n  while ( i < jsonml.length ) {\n    // if it's a string check the next item too\n    if ( typeof jsonml[ i ] === \"string\" ) {\n      if ( i + 1 < jsonml.length && typeof jsonml[ i + 1 ] === \"string\" ) {\n        // merge the second string into the first and remove it\n        jsonml[ i ] += jsonml.splice( i + 1, 1 )[ 0 ];\n      }\n      else {\n        ++i;\n      }\n    }\n    // if it's not a string recurse\n    else {\n      merge_text_nodes( jsonml[ i ] );\n      ++i;\n    }\n  }\n}\n\n} )( (function() {\n  if ( typeof exports === \"undefined\" ) {\n    window.markdown = {};\n    return window.markdown;\n  }\n  else {\n    return exports;\n  }\n} )() );\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/markdown/markdown.js",
            "module-type": "library"
        },
        "$:/plugins/tiddlywiki/markdown/images/new-markdown-button": {
            "title": "$:/plugins/tiddlywiki/markdown/images/new-markdown-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-new-markdown-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <rect x=\"80\" y=\"96\" width=\"48\" height=\"16\" rx=\"8\"></rect>\n        <rect x=\"96\" y=\"80\" width=\"16\" height=\"48\" rx=\"8\"></rect>\n        <path d=\"M3.23876972,39.5396716 C3.23876972,35.9653274 6.13586353,33.0691646 9.7141757,33.0691646 L98.1283744,33.0691646 C101.706101,33.0691646 104.60378,35.9646626 104.60378,39.5396716 L104.60378,84.8296213 C104.60378,88.4039654 101.706687,91.3001282 98.1283744,91.3001282 L9.7141757,91.3001282 C6.13644944,91.3001282 3.23876972,88.4046302 3.23876972,84.8296213 L3.23876972,39.5396716 L3.23876972,39.5396716 Z M-2.15298617,39.5396716 L-2.15298617,84.8296213 C-2.15298617,91.3833243 3.15957363,96.6918841 9.7141757,96.6918841 L98.1283744,96.6918841 C104.684083,96.6918841 109.995536,91.382138 109.995536,84.8296213 L109.995536,39.5396716 C109.995536,32.9859686 104.682977,27.6774087 98.1283744,27.6774087 L9.7141757,27.6774087 C3.15846686,27.6774087 -2.15298617,32.9871549 -2.15298617,39.5396716 Z M14.0222815,80.5166164 L14.0222815,43.8526764 L24.8057933,43.8526764 L35.589305,57.3320661 L46.3728168,43.8526764 L57.1563286,43.8526764 L57.1563286,80.5166164 L46.3728168,80.5166164 L46.3728168,59.4887685 L35.589305,72.9681582 L24.8057933,59.4887685 L24.8057933,80.5166164 L14.0222815,80.5166164 Z M81.4192301,80.5166164 L65.2439624,62.723822 L76.0274742,62.723822 L76.0274742,43.8526764 L86.810986,43.8526764 L86.810986,62.723822 L97.5944978,62.723822 L81.4192301,80.5166164 Z\"transform=\"translate(53.921275, 62.184646) rotate(-60.000000) translate(-53.921275, -62.184646) \"></path>\n    </g>\n</svg>"
        },
        "$:/plugins/tiddlywiki/markdown/new-markdown-button": {
            "title": "$:/plugins/tiddlywiki/markdown/new-markdown-button",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/plugins/tiddlywiki/markdown/images/new-markdown-button}} {{$:/language/Buttons/NewMarkdown/Caption}}",
            "description": "{{$:/language/Buttons/NewMarkdown/Hint}}",
            "list-after": "$:/core/ui/Buttons/new-tiddler",
            "text": "<$button tooltip={{$:/language/Buttons/NewMarkdown/Hint}} aria-label={{$:/language/Buttons/NewMarkdown/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=\"text/x-markdown\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/plugins/tiddlywiki/markdown/images/new-markdown-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewMarkdown/Caption}}/></span>\n</$list>\n</$button>\n"
        },
        "$:/plugins/tiddlywiki/markdown/readme": {
            "title": "$:/plugins/tiddlywiki/markdown/readme",
            "text": "This is a TiddlyWiki plugin for parsing Markdown text, based on the [[markdown-js|https://github.com/evilstreak/markdown-js]] project from Dominic Baggott. \n\nIt is completely self-contained, and doesn't need an Internet connection in order to work. It works both in the browser and under Node.js.\n\n[[Source code|https://github.com/Jermolene/TiddlyWiki5/blob/master/plugins/tiddlywiki/markdown]]\n"
        },
        "$:/plugins/tiddlywiki/markdown/usage": {
            "title": "$:/plugins/tiddlywiki/markdown/usage",
            "text": "! Markdown Dialects\n\nBy default the markdown parser recognises the original dialect of Markdown [[as described by John Gruber|http://daringfireball.net/projects/markdown/]]. An extended dialect called \"Maruku\" is also included that provides table support and other advanced features. The syntax extensions are modelled on those of [[PHP Markdown Extra|https://michelf.ca/projects/php-markdown/extra/]].\n\nThe configuration tiddler [[$:/config/markdown/dialect]] determines which dialect is used:\n\n|!Dialect |!Description |\n|Gruber |Standard Markdown |\n|Maruku |Extended Maruku Markdown |\n\n\n! Creating ~WikiLinks\n\nCreate wiki links with the usual Markdown link syntax targeting `#` and the target tiddler title:\n\n```\n[link text](#TiddlerTitle)\n```\n\n! Images\n\nMarkdown image syntax can be used to reference images by tiddler title or an external URI. For example:\n\n```\n![alt text](/path/to/img.jpg \"Title\")\n\n![alt text](Motovun Jack.jpg \"Title\")\n```\n"
        },
        "$:/plugins/tiddlywiki/markdown/wrapper.js": {
            "text": "/*\\\ntitle: $:/plugins/tiddlywiki/markdown/wrapper.js\ntype: application/javascript\nmodule-type: parser\n\nWraps up the markdown-js parser for use in TiddlyWiki5\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar markdown = require(\"$:/plugins/tiddlywiki/markdown/markdown.js\");\n\nvar CONFIG_DIALECT_TIDDLER = \"$:/config/markdown/dialect\",\n\tDEFAULT_DIALECT = \"Gruber\";\n\nfunction transformNodes(nodes) {\n\tvar results = [];\n\tfor(var index=0; index<nodes.length; index++) {\n\t\tresults.push(transformNode(nodes[index]));\n\t}\n\treturn results;\n}\n\nfunction transformNode(node) {\n\tif($tw.utils.isArray(node)) {\n\t\tvar p = 0,\n\t\t\twidget = {type: \"element\", tag: node[p++]};\n\t\tif(!$tw.utils.isArray(node[p]) && typeof(node[p]) === \"object\") {\n\t\t\twidget.attributes = {};\n\t\t\t$tw.utils.each(node[p++],function(value,name) {\n\t\t\t\twidget.attributes[name] = {type: \"string\", value: value};\n\t\t\t});\n\t\t}\n\t\twidget.children = transformNodes(node.slice(p++));\n\t\t// Massage images into the image widget\n\t\tif(widget.tag === \"img\") {\n\t\t\twidget.type = \"image\";\n\t\t\tif(widget.attributes.alt) {\n\t\t\t\twidget.attributes.tooltip = widget.attributes.alt;\n\t\t\t\tdelete widget.attributes.alt;\n\t\t\t}\n\t\t\tif(widget.attributes.src) {\n\t\t\t\twidget.attributes.source = widget.attributes.src;\n\t\t\t\tdelete widget.attributes.src;\n\t\t\t}\n\t\t}\n\t\t// Convert internal links to proper wikilinks\n\t\tif (widget.tag === \"a\" && widget.attributes.href.value[0] === \"#\") {\n\t\t\twidget.type = \"link\";\n\t\t\twidget.attributes.to = widget.attributes.href;\n\t\t\tif (widget.attributes.to.type === \"string\") {\n\t\t\t\t//Remove '#' before conversion to wikilink\n\t\t\t\twidget.attributes.to.value = widget.attributes.to.value.substr(1);\n\t\t\t}\n\t\t\t//Children is fine\n\t\t\tdelete widget.tag;\n\t\t\tdelete widget.attributes.href;\n\t\t}\n\t\treturn widget;\n\t} else {\n\t\treturn {type: \"text\", text: node};\n\t}\n}\n\nvar MarkdownParser = function(type,text,options) {\n\tvar dialect = options.wiki.getTiddlerText(CONFIG_DIALECT_TIDDLER,DEFAULT_DIALECT),\n\t\tmarkdownTree = markdown.toHTMLTree(text,dialect),\n\t\tnode = $tw.utils.isArray(markdownTree[1]) ? markdownTree.slice(1) : markdownTree.slice(2);\n\tthis.tree = transformNodes(node);\n};\n\n/*\n\n[ 'html',\n  [ 'p', 'something' ],\n  [ 'h1',\n    'heading and ',\n    [ 'strong', 'other' ] ] ]\n\n*/\n\nexports[\"text/x-markdown\"] = MarkdownParser;\n\n})();\n\n",
            "title": "$:/plugins/tiddlywiki/markdown/wrapper.js",
            "type": "application/javascript",
            "module-type": "parser"
        }
    }
}
{
    "tiddlers": {
        "$:/plugins/tiddlywiki/mobiledragdrop/ios-drag-drop.js": {
            "text": "(function(doc) {\n\nfunction _exposeIosHtml5DragDropShim(config) {\n  log = noop; // noOp, remove this line to enable debugging\n\n  var coordinateSystemForElementFromPoint;\n\n  var DRAG_OVER_EMIT_FREQ = 50;\n\n  function main() {\n    config = config || {};\n    if (!config.hasOwnProperty(\"simulateAnchorClick\")) config.simulateAnchorClick = true;\n\n    coordinateSystemForElementFromPoint = navigator.userAgent.match(/OS [1-4](?:_\\d+)+ like Mac/) ? \"page\" : \"client\";\n\n    var div = doc.createElement('div');\n    var dragDiv = 'draggable' in div;\n    var evts = 'ondragstart' in div && 'ondrop' in div;\n\n    var needsPatch = !(dragDiv || evts) || /iPad|iPhone|iPod|Android/.test(navigator.userAgent);\n    log((needsPatch ? \"\" : \"not \") + \"patching html5 drag drop\");\n\n    if(!needsPatch) {\n      return;\n    }\n\n    if(!config.enableEnterLeave) {\n      DragDrop.prototype.synthesizeEnterLeave = noop;\n    }\n\n    if(config.holdToDrag){\n      doc.addEventListener(\"touchstart\", touchstartDelay(config.holdToDrag), {passive:false});\n    }\n    else {\n      doc.addEventListener(\"touchstart\", touchstart, {passive:false});\n    }\n  }\n\n  function DragDrop(event, el) {\n\n    this.dragData = {};\n    this.dragDataTypes = [];\n    this.dragImage = null;\n    this.dragImageTransform = null;\n    this.dragImageWebKitTransform = null;\n    this.customDragImage = null;\n    this.customDragImageX = null;\n    this.customDragImageY = null;\n    this.el = el || event.target;\n    this.dragOverTimer = null;\n    this.lastMoveEvent = null;\n\n    log(\"dragstart\");\n\n    if (this.dispatchDragStart()) {\n      this.createDragImage();\n      this.listen();\n    }\n  }\n\n  DragDrop.prototype = {\n    listen: function() {\n      var move = onEvt(doc, \"touchmove\", this.move, this);\n      var end = onEvt(doc, \"touchend\", ontouchend, this);\n      var cancel = onEvt(doc, \"touchcancel\", cleanup, this);\n\n      function ontouchend(event) {\n        this.dragend(event, event.target);\n        cleanup.call(this);\n      }\n      function cleanup() {\n        log(\"cleanup\");\n        this.dragDataTypes = [];\n        if (this.dragImage !== null) {\n          this.dragImage.parentNode.removeChild(this.dragImage);\n          this.dragImage = null;\n          this.dragImageTransform = null;\n          this.dragImageWebKitTransform = null;\n        }\n        this.customDragImage = null;\n        this.customDragImageX = null;\n        this.customDragImageY = null;\n        this.el = this.dragData = null;\n        return [move, end, cancel].forEach(function(handler) {\n          return handler.off();\n        });\n      }\n    },\n    move: function(event) {\n      event.preventDefault();\n      var pageXs = [], pageYs = [];\n      [].forEach.call(event.changedTouches, function(touch) {\n        pageXs.push(touch.pageX);\n        pageYs.push(touch.pageY);\n      });\n\n      var x = average(pageXs) - (this.customDragImageX || parseInt(this.dragImage.offsetWidth, 10) / 2);\n      var y = average(pageYs) - (this.customDragImageY || parseInt(this.dragImage.offsetHeight, 10) / 2);\n      this.translateDragImage(x, y);\n\n      this.synthesizeEnterLeave(event);\n      this.synthesizeOver(event);\n    },\n    // We use translate instead of top/left because of sub-pixel rendering and for the hope of better performance\n    // http://www.paulirish.com/2012/why-moving-elements-with-translate-is-better-than-posabs-topleft/\n    translateDragImage: function(x, y) {\n      var translate = \"translate(\" + x + \"px,\" + y + \"px) \";\n\n      if (this.dragImageWebKitTransform !== null) {\n        this.dragImage.style[\"-webkit-transform\"] = translate + this.dragImageWebKitTransform;\n      }\n      if (this.dragImageTransform !== null) {\n        this.dragImage.style.transform = translate + this.dragImageTransform;\n      }\n    },\n    synthesizeEnterLeave: function(event) {\n      var target = elementFromTouchEvent(this.el,event)\n      if (target != this.lastEnter) {\n        if (this.lastEnter) {\n          this.dispatchLeave(event);\n        }\n        this.lastEnter = target;\n        if (this.lastEnter) {\n          this.dispatchEnter(event);\n        }\n      }\n    },\n    synthesizeOver: function(event) {\n      this.lastMoveEvent = event;\n      if(this.lastEnter && !this.dragOverTimer) {\n        this.dragOverTimer = setInterval(this.dispatchOver.bind(this), DRAG_OVER_EMIT_FREQ);\n      }\n    },\n    clearDragOverTimer: function() {\n      if(this.dragOverTimer) {\n        clearInterval(this.dragOverTimer);\n        this.dragOverTimer = null;\n      }\n    },\n    dragend: function(event) {\n\n      // we'll dispatch drop if there's a target, then dragEnd.\n      // drop comes first http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#drag-and-drop-processing-model\n      log(\"dragend\");\n\n      if (this.lastEnter) {\n        this.dispatchLeave(event);\n      }\n\n      var target = elementFromTouchEvent(this.el,event)\n      if (target) {\n        log(\"found drop target \" + target.tagName);\n        this.dispatchDrop(target, event);\n      } else {\n        log(\"no drop target\");\n      }\n\n      var dragendEvt = doc.createEvent(\"Event\");\n      dragendEvt.initEvent(\"dragend\", true, true);\n      this.el.dispatchEvent(dragendEvt);\n      this.clearDragOverTimer();\n    },\n    dispatchDrop: function(target, event) {\n      var dropEvt = doc.createEvent(\"Event\");\n      dropEvt.initEvent(\"drop\", true, true);\n\n      var touch = event.changedTouches[0];\n      var x = touch[coordinateSystemForElementFromPoint + 'X'];\n      var y = touch[coordinateSystemForElementFromPoint + 'Y'];\n\n      var targetOffset = getOffset(target);\n\n      dropEvt.offsetX = x - targetOffset.x;\n      dropEvt.offsetY = y - targetOffset.y;\n\n      dropEvt.dataTransfer = {\n        types: this.dragDataTypes,\n        getData: function(type) {\n          return this.dragData[type];\n        }.bind(this),\n        dropEffect: \"move\"\n      };\n      dropEvt.preventDefault = function() {\n        // https://www.w3.org/Bugs/Public/show_bug.cgi?id=14638 - if we don't cancel it, we'll snap back\n      }.bind(this);\n\n      once(doc, \"drop\", function() {\n        log(\"drop event not canceled\");\n      },this);\n\n      target.dispatchEvent(dropEvt);\n    },\n    dispatchEnter: function(event) {\n\n      var enterEvt = doc.createEvent(\"Event\");\n      enterEvt.initEvent(\"dragenter\", true, true);\n      enterEvt.dataTransfer = {\n        types: this.dragDataTypes,\n        getData: function(type) {\n          return this.dragData[type];\n        }.bind(this)\n      };\n\n      var touch = event.changedTouches[0];\n      enterEvt.pageX = touch.pageX;\n      enterEvt.pageY = touch.pageY;\n      enterEvt.clientX = touch.clientX;\n      enterEvt.clientY = touch.clientY;\n\n      this.lastEnter.dispatchEvent(enterEvt);\n    },\n    dispatchOver: function() {\n\n      var overEvt = doc.createEvent(\"Event\");\n      overEvt.initEvent(\"dragover\", true, true);\n      overEvt.dataTransfer = {\n        types: this.dragDataTypes,\n        getData: function(type) {\n          return this.dragData[type];\n        }.bind(this)\n      };\n\n      var touch = this.lastMoveEvent.changedTouches[0];\n      overEvt.pageX = touch.pageX;\n      overEvt.pageY = touch.pageY;\n      overEvt.clientX = touch.clientX;\n      overEvt.clientY = touch.clientY;\n\n      this.lastEnter.dispatchEvent(overEvt);\n    },\n    dispatchLeave: function(event) {\n\n      var leaveEvt = doc.createEvent(\"Event\");\n      leaveEvt.initEvent(\"dragleave\", true, true);\n      leaveEvt.dataTransfer = {\n        types: this.dragDataTypes,\n        getData: function(type) {\n          return this.dragData[type];\n        }.bind(this)\n      };\n\n      var touch = event.changedTouches[0];\n      leaveEvt.pageX = touch.pageX;\n      leaveEvt.pageY = touch.pageY;\n      leaveEvt.clientX = touch.clientX;\n      leaveEvt.clientY = touch.clientY;\n\n      this.lastEnter.dispatchEvent(leaveEvt);\n      this.lastEnter = null;\n      this.clearDragOverTimer();\n    },\n    dispatchDragStart: function() {\n      var evt = doc.createEvent(\"Event\");\n      evt.initEvent(\"dragstart\", true, true);\n      evt.dataTransfer = {\n        setData: function(type, val) {\n          this.dragData[type] = val;\n          if (this.dragDataTypes.indexOf(type) == -1) {\n            this.dragDataTypes[this.dragDataTypes.length] = type;\n          }\n          return val;\n        }.bind(this),\n        setDragImage: function(el, x, y){\n          this.customDragImage = el;\n          this.customDragImageX = x\n          this.customDragImageY = y\n        }.bind(this),\n        dropEffect: \"move\"\n      };\n      return this.el.dispatchEvent(evt);\n    },\n    createDragImage: function() {\n      if (this.customDragImage) {\n        this.dragImage = this.customDragImage.cloneNode(true);\n        duplicateStyle(this.customDragImage, this.dragImage);\n      } else {\n        this.dragImage = this.el.cloneNode(true);\n        duplicateStyle(this.el, this.dragImage);\n      }\n      this.dragImage.style.opacity = \"0.5\";\n      this.dragImage.style.position = \"absolute\";\n      this.dragImage.style.left = \"0px\";\n      this.dragImage.style.top = \"0px\";\n      this.dragImage.style.zIndex = \"999999\";\n\n      var transform = this.dragImage.style.transform;\n      if (typeof transform !== \"undefined\") {\n        this.dragImageTransform = \"\";\n        if (transform != \"none\") {\n          this.dragImageTransform = transform.replace(/translate\\(\\D*\\d+[^,]*,\\D*\\d+[^,]*\\)\\s*/g, '');\n        }\n      }\n\n      var webkitTransform = this.dragImage.style[\"-webkit-transform\"];\n      if (typeof webkitTransform !== \"undefined\") {\n        this.dragImageWebKitTransform = \"\";\n        if (webkitTransform != \"none\") {\n          this.dragImageWebKitTransform = webkitTransform.replace(/translate\\(\\D*\\d+[^,]*,\\D*\\d+[^,]*\\)\\s*/g, '');\n        }\n      }\n\n      this.translateDragImage(-9999, -9999);\n\n      doc.body.appendChild(this.dragImage);\n    }\n  };\n\n  // delayed touch start event\n  function touchstartDelay(delay) {\n    return function(evt){\n      var el = evt.target;\n\n      do {\n        if (elementIsDraggable(el)) {\n          var heldItem = function() {\n            end.off();\n            cancel.off();\n            scroll.off();\n            touchstart(evt);\n          };\n\n          var onReleasedItem = function() {\n            end.off();\n            cancel.off();\n            scroll.off();\n            clearTimeout(timer);\n          };\n\n          var timer = setTimeout(heldItem, delay);\n\n          var end = onEvt(el, 'touchend', onReleasedItem, this);\n          var cancel = onEvt(el, 'touchcancel', onReleasedItem, this);\n          var scroll = onEvt(window, 'scroll', onReleasedItem, this);\n          break;\n        }\n      } while ((el = el.parentNode) && el !== doc.body);\n    };\n  };\n\n  // event listeners\n  function touchstart(evt) {\n    var el = evt.target;\n    do {\n      if (elementIsDraggable(el)) {\n        handleTouchStartOnAnchor(evt, el);\n\n        evt.preventDefault();\n        new DragDrop(evt,el);\n        break;\n      }\n    } while((el = el.parentNode) && el !== doc.body);\n  }\n\n  function elementIsDraggable(el){\n    // if an element is not draggable either explicitly or implicitly we can exit immediately\n    if(!el.draggable) return false;\n\n    // if an element has been explicitly set to be draggable we're good to go\n    if(el.hasAttribute(\"draggable\")) return true;\n\n    // otherwise we investigate the implicit option\n    return (!config.requireExplicitDraggable);\n  }\n\n  function elementIsAnchor(el){\n    return el.tagName.toLowerCase() == \"a\";\n  }\n\n  function handleTouchStartOnAnchor(evt, el){\n    // If draggable isn't explicitly set for anchors, then simulate a click event.\n    // Otherwise plain old vanilla links will stop working.\n    // https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Touch_events#Handling_clicks\n    if (!el.hasAttribute(\"draggable\") && elementIsAnchor(el) && config.simulateAnchorClick) {\n      var clickEvt = document.createEvent(\"MouseEvents\");\n      clickEvt.initMouseEvent(\"click\", true, true, el.ownerDocument.defaultView, 1,\n        evt.screenX, evt.screenY, evt.clientX, evt.clientY,\n        evt.ctrlKey, evt.altKey, evt.shiftKey, evt.metaKey, 0, null);\n      el.dispatchEvent(clickEvt);\n      log(\"Simulating click to anchor\");\n    }\n  }\n\n  // DOM helpers\n  function elementFromTouchEvent(el,event) {\n    var touch = event.changedTouches[0];\n    var target = doc.elementFromPoint(\n      touch[coordinateSystemForElementFromPoint + \"X\"],\n      touch[coordinateSystemForElementFromPoint + \"Y\"]\n    );\n    return target;\n  }\n\n  //calculate the offset position of an element (relative to the window, not the document)\n  function getOffset(el) {\n    var rect = el.getBoundingClientRect();\n    return {\n      \"x\": rect.left,\n      \"y\": rect.top\n    };\n  }\n\n  function onEvt(el, event, handler, context) {\n    if(context) {\n      handler = handler.bind(context);\n    }\n    el.addEventListener(event, handler, {passive:false});\n    return {\n      off: function() {\n        return el.removeEventListener(event, handler, {passive:false});\n      }\n    };\n  }\n\n  function once(el, event, handler, context) {\n    if(context) {\n      handler = handler.bind(context);\n    }\n    function listener(evt) {\n      handler(evt);\n      return el.removeEventListener(event,listener);\n    }\n    return el.addEventListener(event,listener);\n  }\n\n  // duplicateStyle expects dstNode to be a clone of srcNode\n  function duplicateStyle(srcNode, dstNode) {\n    // Is this node an element?\n    if (srcNode.nodeType == 1) {\n      // Remove any potential conflict attributes\n      dstNode.removeAttribute(\"id\");\n      dstNode.removeAttribute(\"class\");\n      dstNode.removeAttribute(\"style\");\n      dstNode.removeAttribute(\"draggable\");\n\n      // Clone the style\n      var cs = window.getComputedStyle(srcNode);\n      for (var i = 0; i < cs.length; i++) {\n        var csName = cs[i];\n        dstNode.style.setProperty(csName, cs.getPropertyValue(csName), cs.getPropertyPriority(csName));\n      }\n\n      // Pointer events as none makes the drag image transparent to document.elementFromPoint()\n      dstNode.style.pointerEvents = \"none\";\n    }\n\n    // Do the same for the children\n    if (srcNode.hasChildNodes()) {\n      for (var j = 0; j < srcNode.childNodes.length; j++) {\n        duplicateStyle(srcNode.childNodes[j], dstNode.childNodes[j]);\n      }\n    }\n  }\n\n  // general helpers\n  function log(msg) {\n    console.log(msg);\n  }\n\n  function average(arr) {\n    if (arr.length === 0) return 0;\n    return arr.reduce((function(s, v) {\n      return v + s;\n    }), 0) / arr.length;\n  }\n\n  function noop() {}\n\n  main();\n\n};\n\nif (typeof module === 'object' && typeof module.exports === 'object') {\n  module.exports = _exposeIosHtml5DragDropShim;\n} else if (typeof window !== 'undefined') {\n  _exposeIosHtml5DragDropShim(window.iosDragDropShim);\n}\n})(document);",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/mobiledragdrop/ios-drag-drop.js"
        },
        "$:/plugins/tiddlywiki/mobiledragdrop/license": {
            "text": "Copyright (c) 2013 Tim Ruffles\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n",
            "type": "text/plain",
            "title": "$:/plugins/tiddlywiki/mobiledragdrop/license"
        },
        "$:/plugins/tiddlywiki/mobiledragdrop/rawmarkup": {
            "title": "$:/plugins/tiddlywiki/mobiledragdrop/rawmarkup",
            "tags": "$:/tags/RawMarkupWikified",
            "text": "`<script>\nvar iosDragDropShim = { enableEnterLeave: true, holdToDrag: 300 };`\n{{$:/plugins/tiddlywiki/mobiledragdrop/ios-drag-drop.js}}\n`</script>`\n"
        },
        "$:/plugins/tiddlywiki/mobiledragdrop/readme": {
            "title": "$:/plugins/tiddlywiki/mobiledragdrop/readme",
            "text": "This plugin provides a \"shim\" that enables HTML 5 compatible drag and drop operations on mobile browsers, including iOS and Android. The shim was created by Tim Ruffles and is published at https://github.com/timruffles/ios-html5-drag-drop-shim.\n\nAfter installing the plugin it is necessary to save the HTML file a second time before it will be fully enabled.\n"
        },
        "$:/plugins/tiddlywiki/mobiledragdrop/startup.js": {
            "text": "/*\\\ntitle: $:/plugins/tiddlywiki/mobiledragdrop/startup.js\ntype: application/javascript\nmodule-type: startup\n\nStartup initialisation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"mobiledragdrop\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\twindow.addEventListener(\"touchmove\", function() {});\n};\n\n})();\n",
            "title": "$:/plugins/tiddlywiki/mobiledragdrop/startup.js",
            "type": "application/javascript",
            "module-type": "startup"
        }
    }
}
{
    "tiddlers": {
        "$:/config/AnimationDuration": {
            "text": "600",
            "type": "text/vnd.tiddlywiki",
            "title": "$:/config/AnimationDuration",
            "tags": "$:/irreverent-mudblood/ghostwriter",
            "revision": "0",
            "modifier": "venomspinner",
            "modified": "20161031174446166",
            "creator": "venomspinner",
            "created": "20161028170329291",
            "bag": "default"
        },
        "$:/core/ui/PageTemplate/sidebar": {
            "text": "<$scrollable fallthrough=\"no\" class=\"tc-sidebar-scrollable\">\n\n<div class=\"tc-sidebar-header\">\n\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"no\" retain=\"yes\" animate=\"yes\">\n\n{{||$:/core/ui/PageTemplate/pagecontrols}}\n\n<$transclude tiddler=\"$:/core/ui/SideBarLists\" mode=\"inline\"/>\n\n</$reveal>\n\n</div>\n\n</$scrollable>",
            "type": "text/vnd.tiddlywiki",
            "title": "$:/core/ui/PageTemplate/sidebar",
            "tags": "$:/tags/PageTemplate $:/irreverent-mudblood/ghostwriter",
            "revision": "0",
            "modified": "20161031174446017",
            "created": "20161030145349771",
            "bag": "default"
        },
        "$:/core/ui/TopBar/menu": {
            "text": "<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"no\" default=\"no\">\n<$button set=\"$:/state/sidebar\" setTo=\"no\" tooltip={{$:/language/Buttons/HideSideBar/Hint}} aria-label={{$:/language/Buttons/HideSideBar/Caption}} class=\"roundbtn\">\n<span>{{$:/core/images/right-arrow}}</span>\n{{$:/irreverent-mudblood/overlay-sidebar/backgroundstyle}}\n</$button>\n</$reveal>\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"no\" default=\"no\">\n<$button set=\"$:/state/sidebar\" setTo=\"yes\" tooltip={{$:/language/Buttons/ShowSideBar/Hint}} aria-label={{$:/language/Buttons/ShowSideBar/Caption}} class=\"roundbtn\"><span>{{$:/core/images/left-arrow}}</span>\n{{$:/irreverent-mudblood/overlay-sidebar/backgroundstyle2}}\n</$button>\n</$reveal>\n",
            "type": "text/vnd.tiddlywiki",
            "title": "$:/core/ui/TopBar/menu",
            "tags": "$:/tags/TopRightBar $:/irreverent-mudblood/ghostwriter",
            "revision": "0",
            "modifier": "Dr. Rizwan Ishak",
            "modified": "20161031174446206",
            "creator": "Dr. Rizwan Ishak",
            "created": "20161002082547234",
            "bag": "default"
        },
        "$:/DefaultTiddlers": {
            "text": "[!is[system]![TableOfContents]!sort[modified]limit[3]]\n",
            "type": "text/vnd.tiddlywiki",
            "title": "$:/DefaultTiddlers",
            "modified": "20161111182143694",
            "created": "20131127215321439"
        },
        "$:/irreverent-mudblood/overlay-sidebar/backgroundstyle": {
            "created": "20161030153934135",
            "text": "<style>\n@media only screen and (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n.tc-sidebar-scrollable { \nbackground-color: #FEFEFE; \nz-index: 1000 !important;\npadding: 42px 0 28px 42px;\nborder-left: 1px solid #e1e1e1;\n}\n}\n\n@media only screen and (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n.tc-sidebar-scrollable { \nposition:fixed !important;\nbackground-color:#FEFEFE; \npadding: 42px 0 28px 42px;\nz-index: 1000 !important; \nwidth:100% !important ; \nborder-left: 1px solid #e1e1e1;\nleft:0% !important;\ntop: 0px !important;\nbottom: 0 !important;\nright: 0 !important;\nmargin: 0 0 0 -20px !important;\n}\n}\n</style>",
            "type": "text/vnd.tiddlywiki",
            "title": "$:/irreverent-mudblood/overlay-sidebar/backgroundstyle",
            "tags": "$:/OverlaySidebar $:/irreverent-mudblood/ghostwriter",
            "revision": "0",
            "modified": "20161109105829329",
            "bag": "default"
        },
        "$:/irreverent-mudblood/overlay-sidebar/backgroundstyle2": {
            "text": "<style>.tc-sidebar-scrollable { background-color: rgba(0,0,0,0.0); z-index: -1; }</style>",
            "type": "text/vnd.tiddlywiki",
            "title": "$:/irreverent-mudblood/overlay-sidebar/backgroundstyle2",
            "tags": "$:/OverlaySidebar $:/irreverent-mudblood/ghostwriter",
            "revision": "0",
            "modifier": "Dr. Rizwan Ishak",
            "modified": "20161031174446321",
            "creator": "Dr. Rizwan Ishak",
            "created": "20160829073842702",
            "bag": "default"
        },
        "$:/irreverent-mudblood/overlay-sidebar/stylesheet": {
            "created": "20161030153009897",
            "text": ".roundbtn {\nbackground-color:{{!!roundbtnbg}};\nfont-size: 25px; \nposition: relative;\ndisplay: inline-block;\nwidth: 35px;\nheight: 35px;\ncursor: pointer; \nborder: none; \nborder-radius:100px; \nbox-shadow: 0 2px 5px 0 rgba(0, 0, 0, .26);\n\n}\n\n.roundbtn span svg{\nfont-size:15px;  \nposition: absolute;  \ntop: 0;  right: 0;    \nbottom: 0;    \nleft: 0;    \noverflow: auto;    \nwidth: 50%;    \nheight: 50%;    \nmargin: auto; \nopacity: 0.8;\nfill: {{!!roundbtnspan}};\n\n}\n.roundbtn:hover span svg{\nfont-size:15px;  \nposition: absolute;  \ntop: 0;  right: 0;    \nbottom: 0;    \nleft: 0;    \noverflow: auto;    \nmargin: auto; \nopacity:1;\nfill: {{!!roundbtnspan}} !important;\n}",
            "type": "text/vnd.tiddlywiki",
            "title": "$:/irreverent-mudblood/overlay-sidebar/stylesheet",
            "tags": "$:/tags/Stylesheet $:/OverlaySidebar $:/irreverent-mudblood/ghostwriter",
            "revision": "0",
            "modified": "20161111175422374",
            "bag": "default",
            "roundbtnbg": "#ee4056",
            "roundbtnspan": "#fff"
        },
        "$:/themes/ghostwriter/stylesheet/main": {
            "text": " \n---\n/* System */\n\n .tc-control-panel table .autowidthinput input {width:auto;}\n\n.tc-sidebar-lists .tc-tab-set > .tc-tab-content .tc-image-button img { margin: 0 !important; display:inline-block } \n\n---\n/*Base*/\n\n---\n\nhtml, body {\n  height: 100%;\n }\n\nbody {\n  background: #fefefe;\n  color: #424242;\n  font-family: \"Open Sans\", arial, sans-serif  !important;\n  font-size: 15px;\n }\n\n\n\nh1, h2, h3, h4, h5, h6 {\n  margin-bottom: 33px;\n  text-transform: none; \n}\n\nh1 {\n  font-size: 26px; }\n\nh2 {\n  font-size: 24px; }\n\nh3 {\n  font-size: 20px;\n  margin-bottom: 20px; }\n\nh4 {\n  font-size: 18px;\n  margin-bottom: 18px; }\n\nh5 {\n  font-size: 16px;\n  margin-bottom: 15px; }\n\nh6 {\n  font-size: 14px;\n  margin-bottom: 12px; }\n\np {\n  line-height: 1.8;\n  margin: 0 0 30px; }\n\na {\n  text-decoration: none; !important}\n\nul, ol {\n  list-style-position: inside ;\n  line-height: 1.8 ;\n  margin: 0 0 40px;\n  padding: 0 }\n  ul ul, ul ol, ol ul, ol ol {\n    margin: 10px 0 0 20px  }\n  ul li, ol li {\n    margin: 0 0 10px }\n    ul li:last-of-type, ol li:last-of-type {\n      margin-bottom: 0 }\n\nblockquote {\n  border-left: 1px dotted #303030;\n  margin: 40px 0;\n  padding: 5px 30px; }\n  blockquote p {\n    color: #AEADAD;\n    display: block;\n    font-style: italic;\n    margin: 0;\n    width: 100%; }\n\nimg {\n  display: block;\n  margin: 40px 0;\n  width: auto ;\n  max-width: 100%}\n\npre {\n  background: #F1F0EA !important;\n  border: 1px solid #DDDBCC !important;\n  border-radius: 3px !important;\n  margin: 0 0 40px !important;\n  padding: 15px 20px !important; }\n\nhr {\n  border: none !important;\n  border-bottom: 1px dotted #303030 !important;\n  margin: 45px 0 !important; }\n\ntable {\n    margin-bottom: 40px !important;\n    width: 100% !important;\n}\ntable tbody > tr:nth-child(odd) > td,\ntable tbody > tr:nth-child(odd) > th {\n    background-color: #f7f7f3 !important;\n}\ntable th {\n    padding: 0 10px 10px !important;\n    text-align: left !important;\n}\ntable td {\n    padding: 10px !important;\n}\ntable tr {\n    border-bottom: 1px dotted #AEADAD !important;\n}\n\n::selection {\n  background: #FFF5B8 !important;\n  color: #000 !important;\n  display: block !important; }\n\n::-moz-selection {\n  background: #FFF5B8 !important;\n  color: #000 !important;\n  display: block !important; }\n\n\n.hidden {\n  text-indent: -9999px !important;\n  visibility: hidden !important;\n  display: none !important; }\n\n.clearfix:after {\n  content: \"\" !important;\n  display: table !important;\n  clear: both !important; }\n\ncode {\nbackground:transparent !important;\nborder:none !important;\n}\n\n\n\n\n---\n/*Title*/\n\n---\n.tc-titlebar h2.tc-title {\n\tfont-size: 52px;\n\tdisplay: block;\n\tfont-weight: 700;\n\tmargin: 15px 0;\n\ttext-align: center;\n\ttext-transform: uppercase;\n\tcolor: #424242;\n\tfill: #424242 !important;\n\tword-wrap: break-word;\n\tfont-family: \"Open Sans\", arial, sans-serif;\n\tmargin-block-start: 1em;\n\tmargin-block-end: 1em;\n\tline-height: 1.2;\n\tmargin-bottom: 10px;\n}\n.titleclass {\n\tfont-size: 52px;\n\tdisplay: block;\n\tfont-weight: 700;\n\tmargin: 15px 0;\n\ttext-align: center;\n\ttext-transform: uppercase;\n\tcolor: #424242;\n\tfill: #424242 !important;\n\tword-wrap: break-word;\n\tfont-family: \"Open Sans\", arial, sans-serif;\n\tmargin-block-start: 1em;\n\tmargin-block-end: 1em;\n\tline-height: 1.2;\n\tmargin-bottom: 10px;\n}\n\n.tc-tiddler-title::after {\n\tborder-bottom: 1px dotted #303030;\n\tcontent: \"\";\n\tdisplay: block;\n\tmargin: 30px auto 0;\n\twidth: 100px;\n}\n\ndiv.tc-tagged-interface h2.tc-title, div.tc-tagged-interface div.tc-subtitle, div.tc-tagged-interface div.tc-tags-wrapper {display:none;}\n\n@media only screen and (max-width: 768px) {\n.tc-titlebar h2.tc-title {font-size: 28px;font-size:{{$:/themes/ghostwriter/user/mobile!!titlesize}}; margin-top: 40px !important;}\n.tc-site-title, .tc-titlebar{font-size:2em !important;}\n.titleclass {font-size: 28px !important; margin-top: 40px !important;}\n}\n\ntc-tagged-Interface .tc-title {display:none;}\n\n\n/* Subtitle */\n\ndiv.tc-tiddler-frame .tc-subtitle {\n\tcolor: #AEADAD;\n\tfont-size: 14px;\n\tfont-weight: 600;\n\tline-height: 1;\n\tmargin: 25px auto 0;\n\ttext-align: center;\n\ttext-transform: uppercase;\n\tdisplay: block;\n\tmargin-block-start: 1em;\n\tmargin-block-end: 1em;\n\tpadding-bottom: 25px;\n}\n.tc-subtitle>a{\ndisplay:none !important;\n}\n\n<$reveal type=nomatch state=\"$:/status/UserName\" text=\"\">\n.tc-subtitle:after{\ncontent: \"BY: {{$:/status/UserName}}\";\nfont-weight:700;\n}\n</$reveal>\n\n\n/* Body */\n\ndiv.tc-tiddler-frame > .tc-tiddler-body {\n\tmargin: 0 auto;\n\tposition: relative;\n\twidth: 100%;\n\tmax-width: 810px;\n\tborder-top: 6px solid #303030;\n\tpadding-top: 50px;\n}\n@media only screen and (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\ndiv.tc-tiddler-frame > .tc-tiddler-body {\n  font-size: {{$:/themes/ghostwriter/user/mobile!!fontsize}};\n }\n}\n\n/* Tags */\n\nbutton.tc-tag-label, span.tc-tag-label {\nfont-size:14px !important;\nline-height: normal !important;\nbackground: transparent !important;\ntext-decoration: none !important;\ncolor:#666 !important;\n}\n\n/* The tags in the viewTemplate has inbuilt style. Hence the use to 'important' to overcome that*/\ndiv.tc-tiddler-frame > div.tc-reveal >div.tc-tags-wrapper >span.tc-tag-list-item> button  {\ncolor: {{!!theme_color}} !important;\n}\n\n\n.tc-edit-tags .tc-tiddlylink.tc-tiddlylink-missing:hover, .tc-edit-tags .tc-tiddlylink.tc-tiddlylink-resolves:hover, .tc-edit-tags .tc-tiddlylink.tc-tiddlylink-shadow:hover  {\n    border-bottom: none !important;\npadding: 4px 14px 4px 14px !important;\n}\n\n/* Links */\n\n.tc-body a:hover {\n  border-bottom: 1px dotted {{!!theme_color}};\n  }\n\n.tc-body a.tc-tiddlylink-missing {\n\tfont-style: normal !important;\n\tcolor: #237095 !important;\n}\na.tc-tiddlylink-missing:hover, button.tc-tiddlylink:hover, a.tc-tiddlylink:hover {\n text-decoration: none !important;\n  border-bottom: 1px dotted {{!!theme_color}} !important;\n}\na.tc-tiddlylink-external {\n\ttext-decoration: none !important;\n\tcolor: #3C2BB1 !important;\n\tbackground-color: inherit !important;\n}\na.tc-tiddlylink-external:hover {\n  border-bottom: 1px dotted {{!!theme_color}} !important;\n}\n\n.tc-tag-list-item > span > div.tc-menu-list-item > a:hover {\nborder-bottom: none !important;\npadding: 0 14px 0 14px !important;\n}\n\ntc-block-dropdown tc-search-drop-down tc-popup-handle {\nborder-bottom: none !important;\npadding:initial !important;\n}\n\ndiv.tc-menu-list-item > a:hover {\nborder-bottom:none !important;\n}\n\n\n/* Tag Drop Down */\n\n.tc-edit-tags .tc-block-dropdown{\n    position: absolute !important;\n    min-width: 220px !important;\n    background-color: #FEFEFE !important;\n    white-space: nowrap !important;\n    z-index: 1000 !important;\n    text-shadow: none !important;\n    color: #606060 !important;\n    font-family: gotham, helvetica, arial, sans-serif !important;\n    font-size: 13px ;\n    font-weight: 500 !important;\n    right: 70% !important;\n    padding: 15px 7px !important;\n    border: 3px solid rgba(217, 217, 217, .4) !important;\n    border-top: 1px solid rgba(217, 217, 217, .4) !important;\n    border-left: 1px solid rgba(217, 217, 217, .4) !important;\n    margin: 1rem !important;\n    margin-top: 4px !important;\n    text-overflow: ellipsis !important;\n    box-shadow: 0 6px 20px rgba(0, 0, 0, .04), -6px 8px 15px rgba(0, 0, 0, .04), 6px 8px 15px rgba(0, 0, 0, .04) !important;\n}\n\n---\n/* Site Header */\n\n---\n\n.site-header {\n    padding: 60px 0 0 !important;\n    overflow: auto !important;\n    text-align: center !important;\n    text-transform: uppercase !important;\n}\n.site-title-wrapper {\n    display: table !important;\n    margin: 0 auto !important;\n}\n.site-title {\n    float: left !important;\n    font-size: 14px !important;\n    font-weight: 600 !important;\n    margin: 0 !important;\n    text-transform: uppercase !important;\n}\n.site-title a {\n\tfloat: left !important;\n\tbackground: #f03838 !important;\n\tcolor: #FEFEFE !important;\n\tpadding: 8px 10px 8px !important;\n\tfont-weight: normal;\n\t-webkit-user-select: inherit;\n}\n.site-title a:hover {\n    background: #303030 !important;\n    border-bottom: none !important;\n}\n.site-logo {\n    display: block !important;\n}\n.site-logo img {\n    margin: 0 !important;\n}\n.site-nav {\n    list-style: none !important;\n    margin: 28px 0 10px !important;\n}\n\n.site-nav-item {\n    display: inline-block !important;\n    font-size: 14px !important;\n    font-weight: 700 !important;\n    margin: 0 10px !important;\n    text-transform: uppercase !important;\n    color: {{!!theme_color}} !important;\n    text-decoration: none !important;\n    padding-right: 15px !important;\n    font-family: \"Open Sans\", arial, sans-serif !important;\n    line-height: 1.8 !important;\n    text-align: center !important;\n}\n.site-nav-item:hover {\n    color: #424242 !important;\n}\n\n---\n/* Site Subtitle */\n\n---\n\n.subtitleclass {\nfont-family:{{!!sitesubtitlefont}};\ncolor:#f03838;\ntext-transform: none;\nfont-size:{{!!sitesubtitlefontsize}};\n}\n\n\n\n---\n/* Table of Contents */\n\n---\n\n\n.post-stub-title {\ndisplay: inline-block;\nmargin: 0 !important;\ntext-transform: none !important;\nfont-size: 16px !important;\n}\n\n.post-index{\nmargin: 0 auto !important;\nposition: relative !important;\nwidth: 100% !important;\nmax-width: 889px !important;\n}\n\n.post-index ol {\nlist-style: none !important;\ndisplay: block !important;\nmargin-block-start: 1em !important;\nmargin-block-end: 1em !important;\n\n}\n.post-index li li a {\nfont-weight: 900 !important;\npadding-inline-start: 5px !important;\nmargin: 0 0 0 !important;\npadding: 0 0 0 25px !important;\ntransition: all 0.2s ease-in-out !important;\n}\n\n.post-index li li a:hover{\npadding: 20px 12px !important;\n}\n\n@media only screen and (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n.post-index li li a {padding: 0 !important;}\n.post-index li li a:hover {padding: 0 !important;}\n}\n.post-stub {\ncolor: #424242 !important;\nfont-family: \"Open Sans\", arial, sans-serif !important;\nfont-size: 18px !important;\nline-height: 1.8 !important;\ndisplay: list-item !important;\ntext-align: match-parent !important;\nborder-bottom: 1px dotted #303030 !important;\nmargin: 0 !important;\nposition: relative !important;\npadding: 20px 5px !important;\n}\n\n@media only screen and (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n.post-stub {font-size: 15px !important;line-height: 1.5 !important;}\n.post-stub .tc-btn-invisible {padding: 0 25px 0 0;}\n.post-stub-date {display:none;}\n.post-stub-title {display: inline;}\n.post-stub button svg.tc-image-right-arrow {\n\theight: 1.5em;\n\twidth: 1.5em;\n\tbackground: #fea;\n\tborder-radius: 50%;\n\tpadding: 3px;}\n}\n\n.post-stub a {\n color: #424242 !important;\npadding-inline-start: 10px !important;\nmargin: 80px 40px 0 !important;\npadding: 35px 0 0 !important;\n}\n\n@media only screen and (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n.post-stub a {margin: 0 !important;}\n}\n.post-stub a:hover{\ncolor:{{!!theme_color}} !important;\noutline: 0 !important;\nborder-bottom:none !important;\n}\n\n\n---\n/*Theme Sake */\n\n---\n\n.tc-tiddler-frame {\n    padding: 0 42px 42px 42px !important;\n}\n\n@media only screen and (max-width: 768px) {\n.tc-tiddler-frame {\n padding: 0 10px 10px 10px !important;\n}\n.tc-story-river {\npadding: 20px !important;\nwidth: 100% !important;\n}\n}\n\n@media (max-width: 960px) {\n.tc-story-river {position:fixed}\n}\n\n---\n/*GENERIC*/\n\n---\n\n.tc-control-panel textarea,\n .tc-control-panel input[type=\"text\"],\n .tc-control-panel input[type=\"search\"],\n .tc-control-panel input[type=\"\"],\n .tc-control-panel input:not([type]),\n .tc-edit-field-value input[type=\"text\"],\n .tc-type-selector input[type=\"text\"] {\n     border: 1px solid #c4c4c4 !important;\n }\n\n\n .tc-block-dropdown {\n     border-radius: 4px !important;\n }\n\n\n .tc-block-dropdown a:hover {\n     background-color: #f0e68c !important;\n }\n\n\n .tc-drop-down {\n     color: #606060 !important;\n     font-family: gotham, helvetica, arial, sans-serif !important;\n     font-size: 13px;\n     font-weight: 500 !important;\n     position: relative;\n     right: 70% !important;\n     padding: 15px 7px !important;\n     border-radius: 2px !important;\n     border: 3px solid rgba(217, 217, 217, .4) !important;\n     border-top: 1px solid rgba(217, 217, 217, .4) !important;\n     border-left: 1px solid rgba(217, 217, 217, .4) !important;\n     margin: 1rem !important;\n     margin-top: 4px !important;\n     min-width: calc(100% + 100px) !important;\n     width: -moz-fit-content !important;\n     overflow: visible !important;\n     text-overflow: ellipsis !important;\n     box-shadow: 0 6px 20px rgba(0, 0, 0, .04), -6px 8px 15px rgba(0, 0, 0, .04), 6px 8px 15px rgba(0, 0, 0, .04) !important;\n }\n\n\n .tc-drop-down a:hover,\n .tc-drop-down button:hover,\n .tc-drop-down .tc-file-input-wrapper:hover button {\n     color: #444 !important;\n     background-color: #f0e68c !important;\n     text-decoration: none !important;\n }\n\n\n .tc-titlebar .tc-drop-down {\n     min-width: calc(100% + 30px) !important;\n }\n\n\n .tc-password-wrapper {\n     text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) !important;\n     background-color: #fbfcFe !important;\n     border: 1px solid rgb(225, 225, 225) !important;\n     box-shadow: 0 6px 20px rgba(0, 0, 0, .04), -6px 8px 15px rgba(0, 0, 0, .04), 6px 8px 15px rgba(0, 0, 0, .04) !important;\n     height: 300px !important;\n     width: 300px !important;\n }\n\n\n .tc-password-wrapper input {\n     width: 100% !important;\n     color: #000 !important;\n     border: 1px solid rgb(225, 225, 225) !important;\n     padding: 5px !important;\n     margin-bottom: 5px !important;\n }\n\n .tc-password-wrapper button {\n     width: 100% !important;\n     border-radius: 5px !important;\n     text-decoration: none !important;\n     color: #fff !important;\n     background-color: #26a69a !important;\n     text-align: center !important;\n     letter-spacing: .5px !important;\n     transition: .2s ease-out !important;\n     cursor: pointer !important;\n     border: none !important;\n     padding: 5px !important;\n     margin-bottom: 5px !important;\n }\n\n .tc-password-wrapper h1 {\n     color: #666 !important;\n     font-size: 13px;\n     text-transform: uppercase !important;\n     text-align: center !important;\n }\n\n hr {\n     color: #ececec;\n }\n\n .tg td {\n     font-size: 13.5px !important;\n     overflow: hidden !important;\n     padding: .3em !important;\n     word-break: normal !important;\n     border-width: 0 !important;\n }\n\n tr:nth-child(even) {\n     width: 100% !important;\n     background-color: #f6f3f6 !important;\n }\n\n\n---\n /* TIDDLER TOOLBAR */\n\n---\n<$reveal type=\"nomatch\" state=\"$:/themes/ghostwriter/transparencystate\" text=\"none\">\n\n @media only screen and (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n .tc-tiddler-view-frame .tc-tiddler-controls svg {\n     fill: transparent;\n }\n</$reveal>\n<$reveal type=\"match\" state=\"$:/themes/ghostwriter/transparencystate\" text=\"close\">\n .tc-tiddler-view-frame .tc-tiddler-controls svg.tc-image-close-button {fill: #cccccc;}\n</$reveal>\n .tc-tiddler-view-frame .tc-tiddler-controls:hover svg,\n .tc-tiddler-view-frame .tc-tiddler-controls .tc-popup svg {\n     fill: #cccccc;\n }\n}\n\n---\n /* BUTTON ANIMATION */\n\n---\n \n .tc-page-controls svg,\n .tc-tiddler-controls svg,\n .tc-topbar button svg,\n .tc-sidebar-scrollable {\n     -webkit-transition: fill 200ms ease-in-out;\n     -moz-transition: fill 200ms ease-in-out;\n     transition: fill 200ms ease-in-out;\n }\n\n---\n /** * Notification */\n\n---\n \n .tc-notification {\n     position: fixed !important;\n     top: 35px !important;\n     right: 50px !important;\n     z-index: 1300 !important;\n     width: 300px !important;\n     height: 50px !important;\n     background-color: #FABF67 !important;\n     border: none !important;\n     color: black !important;\n     text-align: center !important;\n     line-height: normal !important;\n     padding-top: 10px !important;\n }\n\n---\n /** Search **/\n\n---\n \n input[type='search'] {\n     -webkit-transition: border .1s;\n     transition: border .1s;\n     position: relative;\n     background-color: transparent;\n     border: 1px solid;\n     border-radius: 2px;\n     border-color: #e1e1e1;\n     padding: 10px 40px 9px 8px;\n     margin: 0;\n     outline: none;\n     box-sizing: border-box;\n     width: 100%;\n }\n\n input[type='search']:focus,\n input[type='search'].focus {\n     border-color: #c1c1c1;\n }\n\n\n---\n/*Sidebar*/\n\n--- \n\n.tc-sidebar-lists button {\n    color: {{!!theme_color}};\n    fill: {{!!theme_color}};\n}\n.tc-sidebar-lists .tc-tab-buttons button {\n    display: inline-block !important;\n    font-size: 14px !important;\n    font-weight: 700 !important;\n    margin: 0 10px !important;\n    text-transform: uppercase;\n    color: {{!!theme_color}} !important ;\n    text-decoration: none !important;\n    padding-right: 15px !important;\n    font-family: \"Open Sans\", arial, sans-serif !important;\n    line-height: 1.8 !important;\n    text-align: center !important;\n    padding: 0 !important;\n    background: none !important;\n    border: none !important;\n}\n.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {\n    background-color: transparent !important;\n    border-left: none !important;\n    border-top: none !important;\n    border-right: none !important;\n    color: #666 !important;\n}\n\n.tc-sidebar-lists .tc-search .tc-popup-handle {\n    width: 60%;\n}\n.tc-sidebar-lists .tc-tab-set .tc-tab-content .tc-reveal button {\n    border: none;\n    outline: none;\n    background: transparent;\n    color: #666;\n    fill: #666;\n}\n.tc-sidebar-lists .tc-tab-set .tc-tab-content .tc-reveal .tc-more-sidebar .tc-tab-set .tc-tab-buttons button.tc-tab-selected {\n    color: blue;\n    fill: blue;\n}\n.tc-sidebar-lists .tc-tab-content i.tc-muted {\n    display: none;\n}\n\n/* Search drop down of Sidebar */\n\n.tc-sidebar-lists .tc-search-drop-down a.tc-tiddlylink:hover{\npadding: 0px 10px 0px 10px;\n}\n\n\n---\n/* Media Queries */\n\n---\n\n\n\n@media only screen and (max-width: 600px) {\n  h1, h2 {\n    margin-bottom: 20px; }\n\n  p {\n    margin-bottom: 20px; }\n\n  ul, ol {\n    margin-bottom: 20px; }\n\n  img {\n    margin: 30px 0; }\n\n  blockquote {\n    margin: 30px 0; }\n\n  pre {\n    margin: 30px 0; }\n\n  hr {\n    margin: 35px 0; }\n\n  .site-header {\n    padding-top: 60px; }\n\n  .site-nav-item {\n    display: block;\n    margin: 15px 0; }\n\n}\n",
            "type": "text/vnd.tiddlywiki",
            "title": "$:/themes/ghostwriter/stylesheet/main",
            "theme_color": "#f03838",
            "tags": "$:/tags/Stylesheet $:/irreverent-mudblood/ghostwriter",
            "sitesubtitlefontsize": "16px",
            "sitesubtitlefont": "Parisienne, monospace",
            "revision": "0",
            "modifier": "Riz",
            "modified": "20161202041846264",
            "creator": "venomspinner",
            "created": "20161028105046905",
            "bag": "default"
        },
        "$:/themes/ghostwriter/Topbar": {
            "text": "<$reveal state=\"$:/themes/ghostwriter/user/topbarhide\" type=\"nomatch\" text=\"hide\">\n <header class=\"site-header\" style=\"text-align:center;\">\n            <div class=\"container\">\n                <div class=\"site-title-wrapper\">\n                        <h1 class=\"site-title\"><a href=\"#\">{{$:/SiteTitle}}</a></h1>\n                </div>\n\n                <div class=\"site-nav\">\n<$reveal state=\"$:/themes/ghostwriter/user/homehide\" type=\"nomatch\" text=\"hide\"><$button class=\"site-nav-item tc-btn-invisible\" message=\"tm-home\">HOME</$button></$reveal>\n<$reveal state=\"$:/themes/ghostwriter/user/contenthide\" type=\"nomatch\" text=\"hide\"><$button to=\"$:/TableOfContents\" class=\"site-nav-item tc-btn-invisible\">Contents</$button></$reveal>\n<$reveal state=\"$:/themes/ghostwriter/user/abouthide\" type=\"nomatch\" text=\"hide\"><$button to=\"$:/About\" class=\"site-nav-item tc-btn-invisible\">About</$button></$reveal>\n<$list filter=\"[![$:/themes/ghostwriter/topbarbtntemplate]tag[$:/themes/ghostwriter/user/topbarbutton]]\"><$transclude/></$list>\n                </div>\n            </div>\n        </header></$reveal>",
            "type": "text/vnd.tiddlywiki",
            "title": "$:/themes/ghostwriter/Topbar",
            "tags": "$:/tags/AboveStory $:/irreverent-mudblood/ghostwriter",
            "revision": "0",
            "modifier": "venomspinner",
            "modified": "20161110053524450",
            "creator": "venomspinner",
            "created": "20161028092007386",
            "bag": "default"
        },
        "$:/TableOfContents": {
            "text": "<div class=\"titleclass\"> Table of Contents </div>\n\n<div class=\"post-index\">\n<<tocghost-selective-expandable \"TableOfContents\"\"!sort[modified]\">>\n</div>",
            "title": "$:/TableOfContents",
            "tags": "$:/irreverent-mudblood/ghostwriter interface",
            "modified": "20161110070238232",
            "list": "",
            "created": "20161109082528301"
        },
        "$:/themes/ghostwriter/options": {
            "created": "20161101103541902",
            "creator": "Riz",
            "text": "!!Palette\n|Color theme|<$edit-text tiddler=\"$:/themes/ghostwriter/stylesheet/main\"  type=\"color\" tag=\"input\"  field=\"theme_color\"/><br><$edit-text tiddler=\"$:/themes/ghostwriter/stylesheet/main\"  field=\"theme_color\"/>|\n|Color of the Sidebar Show/Hide Button|<$edit-text tiddler=\"$:/irreverent-mudblood/overlay-sidebar/stylesheet\"  field=\"roundbtnbg\"  type=\"color\" tag=\"input\"/><br><$edit-text tiddler=\"$:/irreverent-mudblood/overlay-sidebar/stylesheet\"  field=\"roundbtnbg\"/>|\n\n!!Edit Toolbar\n|Transparency of Edit Toolbar Buttons |<$select tiddler='$:/themes/ghostwriter/transparencystate'><option value='all'>''All'' </option><option value='close'>All ''except close button''</option><option value='none'>None</option></$select>|\n\n!!Topbar and Pagination\n|Show/Hide Topbar | <span style=\"float:left;\"> <$reveal state=\"$:/themes/ghostwriter/user/topbarhide\" type=\"nomatch\" text=\"hide\"><$button>Hide Topbar<$action-setfield $tiddler=\"$:/themes/ghostwriter/user/topbarhide\" text=\"hide\"/></$button></$reveal><$reveal state=\"$:/themes/ghostwriter/user/topbarhide\" type=\"match\" text=\"hide\"><$button>Show Topbar<$action-setfield $tiddler=\"$:/themes/ghostwriter/user/topbarhide\" text=\"show\"/></$button></$reveal></span>|\n|Add a Top-bar Button|<$button><$action-sendmessage $message=\"tm-new-tiddler\" title=\"New Site Nav Item\" tags=\"$:/themes/ghostwriter/user/topbarbutton\" text={{$:/themes/ghostwriter/topbarbtntemplate}}/>New Top Bar Button</$button>|\n|Show / Hide Default Top-bar Button |<span style=\"float:left;\"> <$checkbox class=\"autowidthinput\" tiddler=\"$:/themes/ghostwriter/user/homehide\" field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"> Home</$checkbox>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<$checkbox class=\"autowidthinput\" tiddler=\"$:/themes/ghostwriter/user/contenthide\" field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"> Content</$checkbox>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<$checkbox class=\"autowidthinput\" tiddler=\"$:/themes/ghostwriter/user/abouthide\" field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\">&nbsp;About</$checkbox></span>|\n|Pagination|<$checkbox class=\"autowidthinput\" tiddler=\"$:/themes/ghostwriter/pagination\" tag=\"$:/tags/BelowStory\">  Display</$checkbox>|\n\n!!Mobile\n|Font Size|^<$edit-text tiddler=\"$:/themes/ghostwriter/user/mobile\" field=\"fontsize\" default=\"\" tag=\"input\"/> |\n|Title Size|^<$edit-text tiddler=\"$:/themes/ghostwriter/user/mobile\" field=\"titlesize\" default=\"28px\" tag=\"input\"/> |\n\n<$button class=\"tc-btn-big-green\" style=\"background-color:#e52d27;width:100%;font-size:14px;\">Remove Ghostwriter\n<$action-deletetiddler $filter=\"[prefix[$:/themes/ghostwriter/user/]]\"/>\n<$action-sendmessage $message=\"tm-delete-tiddler\" $param=\"$:/plugins/venomspinner/ghostwriter\"/>\n</$button>",
            "title": "$:/themes/ghostwriter/options",
            "tags": "$:/tags/ControlPanel/Appearance $:/irreverent-mudblood/ghostwriter",
            "modified": "20161202053044155",
            "caption": "Ghostwriter",
            "modifier": "Riz"
        },
        "$:/themes/ghostwriter/transparencystate": {
            "text": "close",
            "title": "$:/themes/ghostwriter/transparencystate",
            "tags": "$:/irreverent-mudblood/ghostwriter",
            "modified": "20161110021504405",
            "created": "20161109115418648"
        },
        "$:/palettes/Vanilla": {
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #FEFEFE\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: \nbutton-foreground: \nbutton-border: \ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #fefefe\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #aaaaaa\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #f4f4f4\nsidebar-tab-background: #e0e0e0\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: #e4e4e4\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #999999\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: \ntag-foreground: #f03838\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888",
            "type": "application/x-tiddler-dictionary",
            "title": "$:/palettes/Vanilla",
            "tags": "$:/tags/Palette $:/irreverent-mudblood/ghostwriter",
            "revision": "0",
            "name": "Vanilla",
            "modifier": "venomspinner",
            "modified": "20161031174446260",
            "description": "Pale and unobtrusive",
            "creator": "venomspinner",
            "created": "20161028065018599",
            "bag": "default"
        },
        "$:/themes/ghostwriter/tocghostMacro": {
            "text": "\\define tocghost-caption()\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude field=\"caption\">\n<span class=\"post-stub-title\"><$view field=\"title\"/></span>\n</$transclude>\n<$transclude field=\"caption\">\n <span class=\"post-stub-date\">/ Published <$view field=\"created\" format=\"date\" template=\"DDth MMM YYYY\"/></span>\n</$transclude>\n</$set>\n\\end\n\n\\define tocghost-body(rootTag,tag,sort:\"\")\n<ol class=\"post-list\">\n<$list filter=\"\"\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$]\"\"\">\n<li class=\"post-stub\">\n<$list filter=\"[all[current]tocghost-link[no]]\" emptyMessage=\"<$link><$view field='caption'><$view field='title'/></$view></$link>\">\n<<tocghost-caption>>\n</$list>\n<$list filter=\"\"\"[all[current]] -[[$rootTag$]]\"\"\">\n<$macrocall $name=\"tocghost-body\" rootTag=\"\"\"$rootTag$\"\"\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\"/>\n</$list>\n</li>\n</$set>\n</$list>\n</ol>\n\\end\n\n\n\\define tocghost-linked-selective-expandable-body(tag,sort:\"\",itemClassFilter)\n<$set name=\"tocghost-state\" value=<<qualify \"\"\"$:/state/tocghost/$tag$-$(currentTiddler)$\"\"\">>>\n<$set name=\"tocghost-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" value=\"tocghost-item-selected\" emptyValue=\"tocghost-item\">\n<li class=\"post-stub\">\n<$link>\n<$list filter=\"[all[current]tagging[]limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>\">\n<$reveal type=\"nomatch\" state=<<tocghost-state>> text=\"open\">\n<$button set=<<tocghost-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<tocghost-state>> text=\"open\">\n<$button set=<<tocghost-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n</$list>\n<<tocghost-caption>>\n</$link>\n<$reveal type=\"match\" state=<<tocghost-state>> text=\"open\">\n<$macrocall $name=\"tocghost-selective-expandable\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\"/>\n</$reveal>\n</li>\n</$set>\n</$set>\n\\end\n\n\\define tocghost-unlinked-selective-expandable-body(tag,sort:\"\",itemClassFilter)\n<$set name=\"tocghost-state\" value=<<qualify \"\"\"$:/state/tocghost/$tag$-$(currentTiddler)$\"\"\">>>\n<$set name=\"tocghost-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" value=\"tocghost-item-selected\" emptyValue=\"tocghost-item\">\n<li class=\"post-stub\">\n<$list filter=\"[all[current]tagging[]limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button> <$view field='caption'><$view field='title'/></$view>\">\n<$reveal type=\"nomatch\" state=<<tocghost-state>> text=\"open\">\n<$button set=<<tocghost-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n<<tocghost-caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<tocghost-state>> text=\"open\">\n<$button set=<<tocghost-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n<<tocghost-caption>>\n</$button>\n</$reveal>\n</$list>\n<$reveal type=\"match\" state=<<tocghost-state>> text=\"open\">\n<$macrocall $name=\"\"\"tocghost-selective-expandable\"\"\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\"/>\n</$reveal>\n</li>\n</$set>\n</$set>\n\\end\n\n\\define tocghost-selective-expandable-empty-message()\n<<tocghost-linked-selective-expandable-body tag:\"\"\"$(tag)$\"\"\" sort:\"\"\"$(sort)$\"\"\" itemClassFilter:\"\"\"$(itemClassFilter)$\"\"\">>\n\\end\n\n\\define tocghost-selective-expandable(tag,sort:\"\",itemClassFilter)\n<$vars tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\">\n<ol class=\"post-list\">\n<$list filter=\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$]\">\n<$list filter=\"[all[current]tocghost-link[no]]\" variable=\"ignore\" emptyMessage=<<tocghost-selective-expandable-empty-message>>>\n<<tocghost-unlinked-selective-expandable-body tag:\"\"\"$tag$\"\"\" sort:\"\"\"$sort$\"\"\" itemClassFilter:\"\"\"$itemClassFilter$\"\"\">>\n</$list>\n</$list>\n</ol>\n</$vars>\n\\end\n",
            "type": "text/vnd.tiddlywiki",
            "title": "$:/themes/ghostwriter/tocghostMacro",
            "tags": "$:/tags/Macro $:/irreverent-mudblood/ghostwriter",
            "revision": "0",
            "modified": "20161110084617042",
            "created": "20161031140339462",
            "bag": "default"
        },
        "$:/themes/ghostwriter/Acknowledgements": {
            "created": "20161109145142879",
            "text": "This is an adaptation of the ''Ghostwriter'' Blog Theme by ''Rory Gibson'' at  https://github.com/roryg/ghostwriter for the TW5 platform. All the creative and design credits belong to him. It is a heavily popular and free theme for the ghost blogging platform. \n\nThis is a ''mobile responsive'', minimalist theme. The stylesheets are seperated out so that you can tweak to your likes. Some of the classes are redundant, I will get around to them //as and when possible//. \n\nThe other person I must furnish credits to is ''Zaphod Beeblebrox ''for the tip that enabled custom backgrounds for sidebar. Later I injected z-index to the same and found that it can be made to overlay the storyriver, which I found a neater alternative to pushing the content to a side. The stylesheet for displaying tiddler controls should be credited to ''Tobias Beer''. \n\nKudos to the group, especially Jan and Josiah, for their inputs and encouragement. I have tried to include most of the suggestions that came by. Be not shy to tell me about yours\n\nFinally, the obligatory note of thanks to'' Jeremy Ruston''",
            "title": "$:/themes/ghostwriter/Acknowledgements",
            "tags": "$:/irreverent-mudblood/ghostwriter",
            "modified": "20161110105943157"
        },
        "$:/themes/ghostwriter/topbarbtntemplate": {
            "created": "20161110024930642",
            "text": "<$button class=\"site-nav-item tc-btn-invisible\">\n\n</$button>",
            "title": "$:/themes/ghostwriter/topbarbtntemplate",
            "modified": "20161110031122949",
            "tags": "$:/irreverent-mudblood/ghostwriter"
        },
        "$:/themes/ghostwriter/pagination": {
            "created": "20161202043138190",
            "creator": "Riz",
            "text": "\\define paginate(discard:3)\n<a><$button class=\"tc-btn-invisible pages\">\n<$action-listops $tiddler=\"$:/StoryList\" $field=\"list\" $filter=\"[!is[system]!is[missing]!sort[modified]rest[$discard$]limit[3]]\"/>\n<$list variable='Target' filter=\"[!is[system]!is[missing]!sort[modified]rest[$discard$]limit[3]first[]]\"><$action-navigate $to=<<Target>>/></$list></$button></a>\n\\end\n<style>\n.emm-paginate {\ncounter-reset: paginate;\ntext-align: center;\n}\n.emm-paginate a:hover {\nborder-bottom:none;\ncolor:#fff;\n\n}\n.tc-btn-invisible.pages {\n\tborder: 1px solid #c1c1c1;\n\tpadding: 4px 8px;\n}\n.tc-btn-invisible.pages:hover {\nbackground:#a1a1a1;\n}\nbutton.pages::after {\n    counter-increment: paginate;\n    content:   counter(paginate) ;\n}\n</style>\n\n<div class=\"emm-paginate\">\n<a><$button class=\"tc-btn-invisible pages\">\n<$action-listops $tiddler=\"$:/StoryList\" $field=\"list\" $filter=\"[!is[system]!is[missing]!sort[modified]limit[3]]\"/>\n<$list variable='Target' filter=\"[!is[system]!is[missing]!sort[modified]limit[3]first[]]\"><$action-navigate $to=<<Target>>/></$list></$button></a>\n<<paginate 3>>\n<<paginate 6>>\n<<paginate 9>>\n<<paginate 12>>\n</div>",
            "title": "$:/themes/ghostwriter/pagination",
            "tags": "$:/tags/BelowStory",
            "modified": "20161202050759321",
            "modifier": "Riz"
        }
    }
}
楚辞、汉赋、诗经、唐诗、宋词
中国古典文学
yes
yes
no
no
no
yes
no
yes
yes
yes
yes
yes
yes
yes
yes
yes
no
yes
no
yes
no

hide
hide
show
show
show
hide
hide


visible
visible
locked
usage
usage
readme
no
yes
no
try-out
no
contents
no
contents
contents
contents
yes
yes
$:/core/ui/ControlPanel/Theme
$:/core/ui/ControlPanel/Basics
$:/core/ui/ControlPanel/Plugins/Installed/Plugins
$:/core/ui/MoreSideBar/Plugins/Plugins
$:/core/ui/ControlPanel/EditorTypes
$:/core/ui/ControlPanel/Plugins/Add/Plugins
$:/core/ui/ControlPanel/Info
$:/core/ui/ControlPanel/Saving/General
$:/core/ui/MoreSideBar/System
目录
$:/core/ui/ControlPanel/Toolbars/ViewToolbar
close
close
close
close
close
open
yugongde

$:/core/modules/parsers/wikiparser/rules/wikilink.js
Home
{
    "tiddlers": {
        "$:/info/browser": {
            "title": "$:/info/browser",
            "text": "yes"
        },
        "$:/info/node": {
            "title": "$:/info/node",
            "text": "no"
        },
        "$:/info/url/full": {
            "title": "$:/info/url/full",
            "text": "file:///Users/apple/codework/gudianwenxue20181219.html"
        },
        "$:/info/url/host": {
            "title": "$:/info/url/host",
            "text": ""
        },
        "$:/info/url/hostname": {
            "title": "$:/info/url/hostname",
            "text": ""
        },
        "$:/info/url/protocol": {
            "title": "$:/info/url/protocol",
            "text": "file:"
        },
        "$:/info/url/port": {
            "title": "$:/info/url/port",
            "text": ""
        },
        "$:/info/url/pathname": {
            "title": "$:/info/url/pathname",
            "text": "/Users/apple/codework/gudianwenxue20181219.html"
        },
        "$:/info/url/search": {
            "title": "$:/info/url/search",
            "text": ""
        },
        "$:/info/url/origin": {
            "title": "$:/info/url/origin",
            "text": "file://"
        }
    }
}




































































loaded
Home

$:/themes/tiddlywiki/vanilla
{
    "tiddlers": {
        "$:/themes/tiddlywiki/snowwhite/base": {
            "title": "$:/themes/tiddlywiki/snowwhite/base",
            "tags": "[[$:/tags/Stylesheet]]",
            "text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n.tc-sidebar-header {\n\ttext-shadow: 0 1px 0 <<colour sidebar-foreground-shadow>>;\n}\n\n.tc-tiddler-info {\n\t<<box-shadow \"inset 1px 2px 3px rgba(0,0,0,0.1)\">>\n}\n\n@media screen {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow \"1px 1px 5px rgba(0, 0, 0, 0.3)\">>\n\t}\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow none>>\n\t}\n}\n\n.tc-page-controls button svg, .tc-tiddler-controls button svg, .tc-topbar button svg {\n\t<<transition \"fill 150ms ease-in-out\">>\n}\n\n.tc-tiddler-controls button.tc-selected,\n.tc-page-controls button.tc-selected {\n\t<<filter \"drop-shadow(0px -1px 2px rgba(0,0,0,0.25))\">>\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-edit-tags {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-tiddler-frame .tc-edit-tags input.tc-edit-texteditor {\n\t<<box-shadow \"none\">>\n\tborder: none;\n\toutline: none;\n}\n\ncanvas.tc-edit-bitmapeditor  {\n\t<<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-drop-down {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-block-dropdown {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-modal {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n}\n\n.tc-modal-footer {\n\tborder-radius: 0 0 6px 6px;\n\t<<box-shadow \"inset 0 1px 0 #fff\">>;\n}\n\n\n.tc-alert {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.6)\">>\n}\n\n.tc-notification {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n\ttext-shadow: 0 1px 0 rgba(255,255,255, 0.8);\n}\n\n.tc-sidebar-lists .tc-tab-set .tc-tab-divider {\n\tborder-top: none;\n\theight: 1px;\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.0) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.01) 0%, rgba(0,0,0,0.1) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.05) 100%\">>\n}\n\n.tc-message-box img {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n\n.tc-plugin-info {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n"
        }
    }
}
{
    "tiddlers": {
        "$:/themes/tiddlywiki/vanilla/themetweaks": {
            "title": "$:/themes/tiddlywiki/vanilla/themetweaks",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ThemeTweaks/ThemeTweaks}}",
            "text": "\\define lingo-base() $:/language/ThemeTweaks/\n\n\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n\\define backgroundimage-dropdown()\n<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"\n\t$value=<<imageTitle>>\n/>\n\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n\\end\n\n\\define backgroundimageattachment-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\" default=\"scroll\">\n<option value=\"scroll\"><<lingo Settings/BackgroundImageAttachment/Scroll>></option>\n<option value=\"fixed\"><<lingo Settings/BackgroundImageAttachment/Fixed>></option>\n</$select>\n\\end\n\n\\define backgroundimagesize-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\" default=\"scroll\">\n<option value=\"auto\"><<lingo Settings/BackgroundImageSize/Auto>></option>\n<option value=\"cover\"><<lingo Settings/BackgroundImageSize/Cover>></option>\n<option value=\"contain\"><<lingo Settings/BackgroundImageSize/Contain>></option>\n</$select>\n\\end\n\n<<lingo ThemeTweaks/Hint>>\n\n! <<lingo Options>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><<lingo Options/SidebarLayout>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><option value=\"fixed-fluid\"><<lingo Options/SidebarLayout/Fixed-Fluid>></option><option value=\"fluid-fixed\"><<lingo Options/SidebarLayout/Fluid-Fixed>></option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><<lingo Options/StickyTitles>></$link><br>//<<lingo Options/StickyTitles/Hint>>// |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><option value=\"no\">{{$:/language/No}}</option><option value=\"yes\">{{$:/language/Yes}}</option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><<lingo Options/CodeWrapping>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><option value=\"pre\">{{$:/language/No}}</option><option value=\"pre-wrap\">{{$:/language/Yes}}</option></$select> |\n\n! <<lingo Settings>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"><<lingo Settings/FontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\"><<lingo Settings/CodeFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"><<lingo Settings/BackgroundImage>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" default=\"\" tag=\"input\"/> |<<backgroundimage-dropdown>> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\"><<lingo Settings/BackgroundImageAttachment>></$link> |<<backgroundimageattachment-dropdown>> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\"><<lingo Settings/BackgroundImageSize>></$link> |<<backgroundimagesize-dropdown>> | |\n\n! <<lingo Metrics>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\"><<lingo Metrics/FontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\"><<lingo Metrics/LineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\"><<lingo Metrics/BodyFontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\"><<lingo Metrics/BodyLineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\"><<lingo Metrics/StoryLeft>></$link><br>//<<lingo Metrics/StoryLeft/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\"><<lingo Metrics/StoryTop>></$link><br>//<<lingo Metrics/StoryTop/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\"><<lingo Metrics/StoryRight>></$link><br>//<<lingo Metrics/StoryRight/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\"><<lingo Metrics/StoryWidth>></$link><br>//<<lingo Metrics/StoryWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"><<lingo Metrics/TiddlerWidth>></$link><br>//<<lingo Metrics/TiddlerWidth/Hint>>//<br> |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\"><<lingo Metrics/SidebarBreakpoint>></$link><br>//<<lingo Metrics/SidebarBreakpoint/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\"><<lingo Metrics/SidebarWidth>></$link><br>//<<lingo Metrics/SidebarWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\" default=\"\" tag=\"input\"/> |\n"
        },
        "$:/themes/tiddlywiki/vanilla/base": {
            "title": "$:/themes/tiddlywiki/vanilla/base",
            "tags": "[[$:/tags/Stylesheet]]",
            "text": "\\define custom-background-datauri()\n<$set name=\"background\" value={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}>\n<$list filter=\"[<background>is[image]]\">\n`background: url(`\n<$list filter=\"[<background>!has[_canonical_uri]]\">\n<$macrocall $name=\"datauri\" title={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}/>\n</$list>\n<$list filter=\"[<background>has[_canonical_uri]]\">\n<$view tiddler={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}} field=\"_canonical_uri\"/>\n</$list>\n`) center center;`\n`background-attachment: `{{$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment}}`;\n-webkit-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-moz-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-o-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\nbackground-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;`\n</$list>\n</$set>\n\\end\n\n\\define if-fluid-fixed(text,hiddenSidebarText)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" type=\"match\" text=\"fluid-fixed\">\n$text$\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">\n$hiddenSidebarText$\n</$reveal>\n</$reveal>\n\\end\n\n\\define if-editor-height-fixed(then,else)\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n$then$\n</$reveal>\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n$else$\n</$reveal>\n\\end\n\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\n\n/*\n** Start with the normalize CSS reset, and then belay some of its effects\n*/\n\n{{$:/themes/tiddlywiki/vanilla/reset}}\n\n*, input[type=\"search\"] {\n\tbox-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\t-webkit-box-sizing: border-box;\n}\n\nhtml button {\n\tline-height: 1.2;\n\tcolor: <<colour button-foreground>>;\n\tbackground: <<colour button-background>>;\n\tborder-color: <<colour button-border>>;\n}\n\n/*\n** Basic element styles\n*/\n\nhtml {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/fontfamily}};\n\ttext-rendering: optimizeLegibility; /* Enables kerning and ligatures etc. */\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\nhtml:-webkit-full-screen {\n\tbackground-color: <<colour page-background>>;\n}\n\nbody.tc-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/lineheight}};\n\tword-wrap: break-word;\n\t<<custom-background-datauri>>\n\tcolor: <<colour foreground>>;\n\tbackground-color: <<colour page-background>>;\n\tfill: <<colour foreground>>;\n}\n\nh1, h2, h3, h4, h5, h6 {\n\tline-height: 1.2;\n\tfont-weight: 300;\n}\n\npre {\n\tdisplay: block;\n\tpadding: 14px;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\tword-break: normal;\n\tword-wrap: break-word;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tbackground-color: <<colour pre-background>>;\n\tborder: 1px solid <<colour pre-border>>;\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\ncode {\n\tcolor: <<colour code-foreground>>;\n\tbackground-color: <<colour code-background>>;\n\tborder: 1px solid <<colour code-border>>;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\nblockquote {\n\tborder-left: 5px solid <<colour blockquote-bar>>;\n\tmargin-left: 25px;\n\tpadding-left: 10px;\n\tquotes: \"\\201C\"\"\\201D\"\"\\2018\"\"\\2019\";\n}\n\nblockquote.tc-big-quote {\n\tfont-family: Georgia, serif;\n\tposition: relative;\n\tbackground: <<colour pre-background>>;\n\tborder-left: none;\n\tmargin-left: 50px;\n\tmargin-right: 50px;\n\tpadding: 10px;\n    border-radius: 8px;\n}\n\nblockquote.tc-big-quote cite:before {\n\tcontent: \"\\2014 \\2009\";\n}\n\nblockquote.tc-big-quote:before {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: open-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n    left: -50px;\n    top: 42px;\n}\n\nblockquote.tc-big-quote:after {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: close-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n    right: -80px;\n    bottom: -20px;\n}\n\ndl dt {\n\tfont-weight: bold;\n\tmargin-top: 6px;\n}\n\ntextarea,\ninput[type=text],\ninput[type=search],\ninput[type=\"\"],\ninput:not([type]) {\n\tcolor: <<colour foreground>>;\n\tbackground: <<colour background>>;\n}\n\n.tc-muted {\n\tcolor: <<colour muted-foreground>>;\n}\n\nsvg.tc-image-button {\n\tpadding: 0px 1px 1px 0px;\n}\n\n.tc-icon-wrapper > svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\nkbd {\n\tdisplay: inline-block;\n\tpadding: 3px 5px;\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tcolor: <<colour foreground>>;\n\tvertical-align: middle;\n\tbackground-color: <<colour background>>;\n\tborder: solid 1px <<colour muted-foreground>>;\n\tborder-bottom-color: <<colour muted-foreground>>;\n\tborder-radius: 3px;\n\tbox-shadow: inset 0 -1px 0 <<colour muted-foreground>>;\n}\n\n/*\nMarkdown likes putting code elements inside pre elements\n*/\npre > code {\n\tpadding: 0;\n\tborder: none;\n\tbackground-color: inherit;\n\tcolor: inherit;\n}\n\ntable {\n\tborder: 1px solid <<colour table-border>>;\n\twidth: auto;\n\tmax-width: 100%;\n\tcaption-side: bottom;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n}\n\ntable th, table td {\n\tpadding: 0 7px 0 7px;\n\tborder-top: 1px solid <<colour table-border>>;\n\tborder-left: 1px solid <<colour table-border>>;\n}\n\ntable thead tr td, table th {\n\tbackground-color: <<colour table-header-background>>;\n\tfont-weight: bold;\n}\n\ntable tfoot tr td {\n\tbackground-color: <<colour table-footer-background>>;\n}\n\n.tc-csv-table {\n\twhite-space: nowrap;\n}\n\n.tc-tiddler-frame img,\n.tc-tiddler-frame svg,\n.tc-tiddler-frame canvas,\n.tc-tiddler-frame embed,\n.tc-tiddler-frame iframe {\n\tmax-width: 100%;\n}\n\n.tc-tiddler-body > embed,\n.tc-tiddler-body > iframe {\n\twidth: 100%;\n\theight: 600px;\n}\n\n/*\n** Links\n*/\n\nbutton.tc-tiddlylink,\na.tc-tiddlylink {\n\ttext-decoration: none;\n\tfont-weight: normal;\n\tcolor: <<colour tiddler-link-foreground>>;\n\t-webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */\n}\n\n.tc-sidebar-lists a.tc-tiddlylink {\n\tcolor: <<colour sidebar-tiddler-link-foreground>>;\n}\n\n.tc-sidebar-lists a.tc-tiddlylink:hover {\n\tcolor: <<colour sidebar-tiddler-link-foreground-hover>>;\n}\n\nbutton.tc-tiddlylink:hover,\na.tc-tiddlylink:hover {\n\ttext-decoration: underline;\n}\n\na.tc-tiddlylink-resolves {\n}\n\na.tc-tiddlylink-shadow {\n\tfont-weight: bold;\n}\n\na.tc-tiddlylink-shadow.tc-tiddlylink-resolves {\n\tfont-weight: normal;\n}\n\na.tc-tiddlylink-missing {\n\tfont-style: italic;\n}\n\na.tc-tiddlylink-external {\n\ttext-decoration: underline;\n\tcolor: <<colour external-link-foreground>>;\n\tbackground-color: <<colour external-link-background>>;\n}\n\na.tc-tiddlylink-external:visited {\n\tcolor: <<colour external-link-foreground-visited>>;\n\tbackground-color: <<colour external-link-background-visited>>;\n}\n\na.tc-tiddlylink-external:hover {\n\tcolor: <<colour external-link-foreground-hover>>;\n\tbackground-color: <<colour external-link-background-hover>>;\n}\n\n/*\n** Drag and drop styles\n*/\n\n.tc-tiddler-dragger {\n\tposition: relative;\n\tz-index: -10000;\n}\n\n.tc-tiddler-dragger-inner {\n\tposition: absolute;\n\ttop: -1000px;\n\tleft: -1000px;\n\tdisplay: inline-block;\n\tpadding: 8px 20px;\n\tfont-size: 16.9px;\n\tfont-weight: bold;\n\tline-height: 20px;\n\tcolor: <<colour dragger-foreground>>;\n\ttext-shadow: 0 1px 0 rgba(0, 0, 0, 1);\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour dragger-background>>;\n\tborder-radius: 20px;\n}\n\n.tc-tiddler-dragger-cover {\n\tposition: absolute;\n\tbackground-color: <<colour page-background>>;\n}\n\n.tc-dropzone {\n\tposition: relative;\n}\n\n.tc-dropzone.tc-dragover:before {\n\tz-index: 10000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour dropzone-background>>;\n\ttext-align: center;\n\tcontent: \"<<lingo DropMessage>>\";\n}\n\n.tc-droppable > .tc-droppable-placeholder {\n\tdisplay: none;\n}\n\n.tc-droppable.tc-dragover > .tc-droppable-placeholder {\n\tdisplay: block;\n\tborder: 2px dashed <<colour dropzone-background>>;\n}\n\n.tc-draggable {\n\tcursor: move;\n}\n\n/*\n** Plugin reload warning\n*/\n\n.tc-plugin-reload-warning {\n\tz-index: 1000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour alert-background>>;\n\ttext-align: center;\n}\n\n/*\n** Buttons\n*/\n\nbutton svg, button img, label svg, label img {\n\tvertical-align: middle;\n}\n\n.tc-btn-invisible {\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n    cursor: pointer;\n}\n\n.tc-btn-boxed {\n\tfont-size: 0.6em;\n\tpadding: 0.2em;\n\tmargin: 1px;\n\tbackground: none;\n\tborder: 1px solid <<colour tiddler-controls-foreground>>;\n\tborder-radius: 0.25em;\n}\n\nhtml body.tc-body .tc-btn-boxed svg {\n\tfont-size: 1.6666em;\n}\n\n.tc-btn-boxed:hover {\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n}\n\nhtml body.tc-body .tc-btn-boxed:hover svg {\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded {\n\tfont-size: 0.5em;\n\tline-height: 2;\n\tpadding: 0em 0.3em 0.2em 0.4em;\n\tmargin: 1px;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n\tborder-radius: 2em;\n}\n\nhtml body.tc-body .tc-btn-rounded svg {\n\tfont-size: 1.6666em;\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded:hover {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tcolor: <<colour muted-foreground>>;\n}\n\nhtml body.tc-body .tc-btn-rounded:hover svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-icon svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-text {\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.tc-btn-big-green {\n\tdisplay: inline-block;\n\tpadding: 8px;\n\tmargin: 4px 8px 4px 8px;\n\tbackground: <<colour download-background>>;\n\tcolor: <<colour download-foreground>>;\n\tfill: <<colour download-foreground>>;\n\tborder: none;\n\tfont-size: 1.2em;\n\tline-height: 1.4em;\n\ttext-decoration: none;\n}\n\n.tc-btn-big-green svg,\n.tc-btn-big-green img {\n\theight: 2em;\n\twidth: 2em;\n\tvertical-align: middle;\n\tfill: <<colour download-foreground>>;\n}\n\n.tc-sidebar-lists input {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-sidebar-lists button {\n\tcolor: <<colour sidebar-button-foreground>>;\n\tfill: <<colour sidebar-button-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini {\n\tcolor: <<colour sidebar-muted-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini:hover {\n\tcolor: <<colour sidebar-muted-foreground-hover>>;\n}\n\nbutton svg.tc-image-button, button .tc-image-button img {\n\theight: 1em;\n\twidth: 1em;\n}\n\n.tc-unfold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 100%;\n\twidth: calc(100% + 2px);\n\tmargin-left: -43px;\n\ttext-align: center;\n\tborder-top: 2px solid <<colour tiddler-info-background>>;\n\tmargin-top: 4px;\n}\n\n.tc-unfold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n\tborder-top: 2px solid <<colour tiddler-info-border>>;\n}\n\n.tc-unfold-banner svg, .tc-fold-banner svg {\n\theight: 0.75em;\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-unfold-banner:hover svg, .tc-fold-banner:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n.tc-fold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 23px;\n\ttext-align: center;\n\tmargin-left: -35px;\n\ttop: 6px;\n\tbottom: 6px;\n}\n\n.tc-fold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-unfold-banner {\n\t\tposition: static;\n\t\twidth: calc(100% + 59px);\n\t}\n\n\t.tc-fold-banner {\n\t\twidth: 16px;\n\t\tmargin-left: -16px;\n\t\tfont-size: 0.75em;\n\t}\n\n}\n\n/*\n** Tags and missing tiddlers\n*/\n\n.tc-tag-list-item {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin-right: 7px;\n}\n\n.tc-tags-wrapper {\n\tmargin: 4px 0 14px 0;\n}\n\n.tc-missing-tiddler-label {\n\tfont-style: italic;\n\tfont-weight: normal;\n\tdisplay: inline-block;\n\tfont-size: 11.844px;\n\tline-height: 14px;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n}\n\nbutton.tc-tag-label, span.tc-tag-label {\n\tdisplay: inline-block;\n\tpadding: 0.16em 0.7em;\n\tfont-size: 0.9em;\n\tfont-weight: 400;\n\tline-height: 1.2em;\n\tcolor: <<colour tag-foreground>>;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour tag-background>>;\n\tborder-radius: 1em;\n}\n\n.tc-untagged-separator {\n\twidth: 10em;\n\tleft: 0;\n\tmargin-left: 0;\n\tborder: 0;\n\theight: 1px;\n\tbackground: <<colour tab-divider>>;\n}\n\nbutton.tc-untagged-label {\n\tbackground-color: <<colour untagged-background>>;\n}\n\n.tc-tag-label svg, .tc-tag-label img {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour tag-foreground>>;\n\tvertical-align: text-bottom;\n}\n\n.tc-tag-manager-table .tc-tag-label {\n\twhite-space: normal;\n}\n\n.tc-tag-manager-tag {\n\twidth: 100%;\n}\n\n/*\n** Page layout\n*/\n\n.tc-topbar {\n\tposition: fixed;\n\tz-index: 1200;\n}\n\n.tc-topbar-left {\n\tleft: 29px;\n\ttop: 5px;\n}\n\n.tc-topbar-right {\n\ttop: 5px;\n\tright: 29px;\n}\n\n.tc-topbar button {\n\tpadding: 8px;\n}\n\n.tc-topbar svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-topbar button:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-sidebar-header {\n\tcolor: <<colour sidebar-foreground>>;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-sidebar-header .tc-title a.tc-tiddlylink-resolves {\n\tfont-weight: 300;\n}\n\n.tc-sidebar-header .tc-sidebar-lists p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-sidebar-header .tc-missing-tiddler-label {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-advanced-search input {\n\twidth: 60%;\n}\n\n.tc-search a svg {\n\twidth: 1.2em;\n\theight: 1.2em;\n\tvertical-align: middle;\n}\n\n.tc-page-controls {\n\tmargin-top: 14px;\n\tfont-size: 1.5em;\n}\n\n.tc-page-controls button {\n\tmargin-right: 0.5em;\n}\n\n.tc-page-controls a.tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-page-controls img {\n\twidth: 1em;\n}\n\n.tc-page-controls svg {\n\tfill: <<colour sidebar-controls-foreground>>;\n}\n\n.tc-page-controls button:hover svg, .tc-page-controls a:hover svg {\n\tfill: <<colour sidebar-controls-foreground-hover>>;\n}\n\n.tc-menu-list-item {\n\twhite-space: nowrap;\n}\n\n.tc-menu-list-count {\n\tfont-weight: bold;\n}\n\n.tc-menu-list-subitem {\n\tpadding-left: 7px;\n}\n\n.tc-story-river {\n\tposition: relative;\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-sidebar-header {\n\t\tpadding: 14px;\n\t\tmin-height: 32px;\n\t\tmargin-top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tpadding: 0;\n\t}\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-message-box {\n\t\tmargin: 21px -21px 21px -21px;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tposition: fixed;\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t\tbottom: 0;\n\t\tright: 0;\n\t\toverflow-y: auto;\n\t\toverflow-x: auto;\n\t\t-webkit-overflow-scrolling: touch;\n\t\tmargin: 0 0 0 -42px;\n\t\tpadding: 71px 0 28px 42px;\n\t}\n\n\thtml[dir=\"rtl\"] .tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tright: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/storywidth}};\n\t\tpadding: 42px 42px 42px 42px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-story-river {\n\t\twidth: calc(100% - {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}});\n\t}\n\n\">>\n\n}\n\n@media print {\n\n\tbody.tc-body {\n\t\tbackground-color: transparent;\n\t}\n\n\t.tc-sidebar-header, .tc-topbar {\n\t\tdisplay: none;\n\t}\n\n\t.tc-story-river {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t.tc-story-river .tc-tiddler-frame {\n\t\tmargin: 0;\n\t\tborder: none;\n\t\tpadding: 0;\n\t}\n}\n\n/*\n** Tiddler styles\n*/\n\n.tc-tiddler-frame {\n\tposition: relative;\n\tmargin-bottom: 28px;\n\tbackground-color: <<colour tiddler-background>>;\n\tborder: 1px solid <<colour tiddler-border>>;\n}\n\n{{$:/themes/tiddlywiki/vanilla/sticky}}\n\n.tc-tiddler-info {\n\tpadding: 14px 42px 14px 42px;\n\tbackground-color: <<colour tiddler-info-background>>;\n\tborder-top: 1px solid <<colour tiddler-info-border>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-border>>;\n}\n\n.tc-tiddler-info p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-tiddler-info .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour tiddler-info-tab-background>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-tab-background>>;\n}\n\n.tc-view-field-table {\n\twidth: 100%;\n}\n\n.tc-view-field-name {\n\twidth: 1%; /* Makes this column be as narrow as possible */\n\ttext-align: right;\n\tfont-style: italic;\n\tfont-weight: 200;\n}\n\n.tc-view-field-value {\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\tpadding: 14px 14px 14px 14px;\n\t}\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -14px 0 -14px;\n\t}\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\tpadding: 28px 42px 42px 42px;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth}};\n\t\tborder-radius: 2px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\">>\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -42px 0 -42px;\n\t}\n}\n\n.tc-site-title,\n.tc-titlebar {\n\tfont-weight: 300;\n\tfont-size: 2.35em;\n\tline-height: 1.2em;\n\tcolor: <<colour tiddler-title-foreground>>;\n\tmargin: 0;\n}\n\n.tc-site-title {\n\tcolor: <<colour site-title-foreground>>;\n}\n\n.tc-tiddler-title-icon {\n\tvertical-align: middle;\n}\n\n.tc-system-title-prefix {\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-titlebar h2 {\n\tfont-size: 1em;\n\tdisplay: inline;\n}\n\n.tc-titlebar img {\n\theight: 1em;\n}\n\n.tc-subtitle {\n\tfont-size: 0.9em;\n\tcolor: <<colour tiddler-subtitle-foreground>>;\n\tfont-weight: 300;\n}\n\n.tc-tiddler-missing .tc-title {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.tc-tiddler-frame .tc-tiddler-controls {\n\tfloat: right;\n}\n\n.tc-tiddler-controls .tc-drop-down {\n\tfont-size: 0.6em;\n}\n\n.tc-tiddler-controls .tc-drop-down .tc-drop-down {\n\tfont-size: 1em;\n}\n\n.tc-tiddler-controls > span > button {\n\tvertical-align: baseline;\n\tmargin-left:5px;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img,\n.tc-search button svg, .tc-search a svg {\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img {\n\theight: 0.75em;\n}\n\n.tc-search button svg, .tc-search a svg {\n    height: 1.2em;\n    width: 1.2em;\n    margin: 0 0.25em;\n}\n\n.tc-tiddler-controls button.tc-selected svg,\n.tc-page-controls button.tc-selected svg  {\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n}\n\n.tc-tiddler-controls button.tc-btn-invisible:hover svg,\n.tc-search button:hover svg, .tc-search a:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n@media print {\n\t.tc-tiddler-controls {\n\t\tdisplay: none;\n\t}\n}\n\n.tc-tiddler-help { /* Help prompts within tiddler template */\n\tcolor: <<colour muted-foreground>>;\n\tmargin-top: 14px;\n}\n\n.tc-tiddler-help a.tc-tiddlylink {\n\tcolor: <<colour very-muted-foreground>>;\n}\n\n.tc-tiddler-frame .tc-edit-texteditor {\n\twidth: 100%;\n\tmargin: 4px 0 4px 0;\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor,\n.tc-tiddler-frame textarea.tc-edit-texteditor,\n.tc-tiddler-frame iframe.tc-edit-texteditor {\n\tpadding: 3px 3px 3px 3px;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tbackground-color: <<colour tiddler-editor-background>>;\n\tline-height: 1.3em;\n\t-webkit-appearance: none;\n}\n\n.tc-tiddler-frame .tc-binary-warning {\n\twidth: 100%;\n\theight: 5em;\n\ttext-align: center;\n\tpadding: 3em 3em 6em 3em;\n\tbackground: <<colour alert-background>>;\n\tborder: 1px solid <<colour alert-border>>;\n}\n\ncanvas.tc-edit-bitmapeditor  {\n\tborder: 6px solid <<colour tiddler-editor-border-image>>;\n\tcursor: crosshair;\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tmargin-top: 6px;\n\tmargin-bottom: 6px;\n}\n\n.tc-edit-bitmapeditor-width {\n\tdisplay: block;\n}\n\n.tc-edit-bitmapeditor-height {\n\tdisplay: block;\n}\n\n.tc-tiddler-body {\n\tclear: both;\n}\n\n.tc-tiddler-frame .tc-tiddler-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/bodylineheight}};\n}\n\n.tc-titlebar, .tc-tiddler-edit-title {\n\toverflow: hidden; /* https://github.com/Jermolene/TiddlyWiki5/issues/282 */\n}\n\nhtml body.tc-body.tc-single-tiddler-window {\n\tmargin: 1em;\n\tbackground: <<colour tiddler-background>>;\n}\n\n.tc-single-tiddler-window img,\n.tc-single-tiddler-window svg,\n.tc-single-tiddler-window canvas,\n.tc-single-tiddler-window embed,\n.tc-single-tiddler-window iframe {\n\tmax-width: 100%;\n}\n\n/*\n** Editor\n*/\n\n.tc-editor-toolbar {\n\tmargin-top: 8px;\n}\n\n.tc-editor-toolbar button {\n\tvertical-align: middle;\n\tbackground-color: <<colour tiddler-controls-foreground>>;\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n\tborder-radius: 4px;\n\tpadding: 3px;\n\tmargin: 2px 0 2px 4px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-adjunct {\n\tmargin-left: 1px;\n\twidth: 1em;\n\tborder-radius: 8px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-start-group {\n\tmargin-left: 11px;\n}\n\n.tc-editor-toolbar button.tc-selected {\n\tbackground-color: <<colour primary>>;\n}\n\n.tc-editor-toolbar button svg {\n\twidth: 1.6em;\n\theight: 1.2em;\n}\n\n.tc-editor-toolbar button:hover {\n\tbackground-color: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour background>>;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more {\n\twhite-space: normal;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more button {\n\tdisplay: inline-block;\n\tpadding: 3px;\n\twidth: auto;\n}\n\n.tc-editor-toolbar .tc-search-results {\n\tpadding: 0;\n}\n\n/*\n** Adjustments for fluid-fixed mode\n*/\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n<<if-fluid-fixed text:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 0;\n\t\tposition: relative;\n\t\twidth: auto;\n\t\tleft: 0;\n\t\tmargin-left: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\tmargin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tbottom: 0;\n\t\tright: 0;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 42px);\n\t}\n\n\"\"\" hiddenSidebarText:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 3em;\n\t\tmargin-right: 0;\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 84px);\n\t}\n\n\"\"\">>\n\n}\n\n/*\n** Toolbar buttons\n*/\n\n.tc-page-controls svg.tc-image-new-button {\n  fill: <<colour toolbar-new-button>>;\n}\n\n.tc-page-controls svg.tc-image-options-button {\n  fill: <<colour toolbar-options-button>>;\n}\n\n.tc-page-controls svg.tc-image-save-button {\n  fill: <<colour toolbar-save-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-info-button {\n  fill: <<colour toolbar-info-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-edit-button {\n  fill: <<colour toolbar-edit-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-close-button {\n  fill: <<colour toolbar-close-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-delete-button {\n  fill: <<colour toolbar-delete-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-cancel-button {\n  fill: <<colour toolbar-cancel-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-done-button {\n  fill: <<colour toolbar-done-button>>;\n}\n\n/*\n** Tiddler edit mode\n*/\n\n.tc-tiddler-edit-frame em.tc-edit {\n\tcolor: <<colour muted-foreground>>;\n\tfont-style: normal;\n}\n\n.tc-edit-type-dropdown a.tc-tiddlylink-missing {\n\tfont-style: normal;\n}\n\n.tc-edit-tags {\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tpadding: 4px 8px 4px 8px;\n}\n\n.tc-edit-add-tag {\n\tdisplay: inline-block;\n}\n\n.tc-edit-add-tag .tc-add-tag-name input {\n\twidth: 50%;\n}\n\n.tc-edit-add-tag .tc-keyboard {\n\tdisplay:inline;\n}\n\n.tc-edit-tags .tc-tag-label {\n\tdisplay: inline-block;\n}\n\n.tc-edit-tags-list {\n\tmargin: 14px 0 14px 0;\n}\n\n.tc-remove-tag-button {\n\tpadding-left: 4px;\n}\n\n.tc-tiddler-preview {\n\toverflow: auto;\n}\n\n.tc-tiddler-preview-preview {\n\tfloat: right;\n\twidth: 49%;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tmargin: 4px 0 3px 3px;\n\tpadding: 3px 3px 3px 3px;\n}\n\n<<if-editor-height-fixed then:\"\"\"\n\n.tc-tiddler-preview-preview {\n\toverflow-y: scroll;\n\theight: {{$:/config/TextEditor/EditorHeight/Height}};\n}\n\n\"\"\">>\n\n.tc-tiddler-frame .tc-tiddler-preview .tc-edit-texteditor {\n\twidth: 49%;\n}\n\n.tc-tiddler-frame .tc-tiddler-preview canvas.tc-edit-bitmapeditor {\n\tmax-width: 49%;\n}\n\n.tc-edit-fields {\n\twidth: 100%;\n}\n\n\n.tc-edit-fields table, .tc-edit-fields tr, .tc-edit-fields td {\n\tborder: none;\n\tpadding: 4px;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(odd) {\n\tbackground-color: <<colour tiddler-editor-fields-odd>>;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(even) {\n\tbackground-color: <<colour tiddler-editor-fields-even>>;\n}\n\n.tc-edit-field-name {\n\ttext-align: right;\n}\n\n.tc-edit-field-value input {\n\twidth: 100%;\n}\n\n.tc-edit-field-remove {\n}\n\n.tc-edit-field-remove svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n\tvertical-align: middle;\n}\n\n.tc-edit-field-add-name {\n\tdisplay: inline-block;\n\twidth: 15%;\n}\n\n.tc-edit-field-add-value {\n\tdisplay: inline-block;\n\twidth: 40%;\n}\n\n.tc-edit-field-add-button {\n\tdisplay: inline-block;\n\twidth: 10%;\n}\n\n/*\n** Storyview Classes\n*/\n\n.tc-storyview-zoomin-tiddler {\n\tposition: absolute;\n\tdisplay: block;\n\twidth: 100%;\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-storyview-zoomin-tiddler {\n\t\twidth: calc(100% - 84px);\n\t}\n\n}\n\n/*\n** Dropdowns\n*/\n\n.tc-btn-dropdown {\n\ttext-align: left;\n}\n\n.tc-btn-dropdown svg, .tc-btn-dropdown img {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-drop-down-wrapper {\n\tposition: relative;\n}\n\n.tc-drop-down {\n\tmin-width: 380px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\ttext-shadow: none;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-drop-down {\n\tmargin-left: 14px;\n}\n\n.tc-drop-down button svg, .tc-drop-down a svg  {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down button.tc-btn-invisible:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down p {\n\tpadding: 0 14px 0 14px;\n}\n\n.tc-drop-down svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-drop-down img {\n\twidth: 1em;\n}\n\n.tc-drop-down-language-chooser img {\n\twidth: 2em;\n\tvertical-align: baseline;\n}\n\n.tc-drop-down a, .tc-drop-down button {\n\tdisplay: block;\n\tpadding: 0 14px 0 14px;\n\twidth: 100%;\n\ttext-align: left;\n\tcolor: <<colour foreground>>;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-tab-set .tc-tab-buttons button {\n\tdisplay: inline-block;\n    width: auto;\n    margin-bottom: 0px;\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n}\n\n.tc-drop-down .tc-prompt {\n\tpadding: 0 14px;\n}\n\n.tc-drop-down .tc-chooser {\n\tborder: none;\n}\n\n.tc-drop-down .tc-chooser .tc-swatches-horiz {\n\tfont-size: 0.4em;\n\tpadding-left: 1.2em;\n}\n\n.tc-drop-down .tc-file-input-wrapper {\n\twidth: 100%;\n}\n\n.tc-drop-down .tc-file-input-wrapper button {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-drop-down a:hover, .tc-drop-down button:hover, .tc-drop-down .tc-file-input-wrapper:hover button {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-tab-buttons button {\n\tbackground-color: <<colour dropdown-tab-background>>;\n}\n\n.tc-drop-down .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour dropdown-tab-background-selected>>;\n\tborder-bottom: 1px solid <<colour dropdown-tab-background-selected>>;\n}\n\n.tc-drop-down-bullet {\n\tdisplay: inline-block;\n\twidth: 0.5em;\n}\n\n.tc-drop-down .tc-tab-contents a {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-block-dropdown-wrapper {\n\tposition: relative;\n}\n\n.tc-block-dropdown {\n\tposition: absolute;\n\tmin-width: 220px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\tz-index: 1000;\n\ttext-shadow: none;\n}\n\n.tc-block-dropdown.tc-search-drop-down {\n\tmargin-left: -12px;\n}\n\n.tc-block-dropdown a {\n\tdisplay: block;\n\tpadding: 4px 14px 4px 14px;\n}\n\n.tc-block-dropdown.tc-search-drop-down a {\n\tdisplay: block;\n\tpadding: 0px 10px 0px 10px;\n}\n\n.tc-drop-down .tc-dropdown-item-plain,\n.tc-block-dropdown .tc-dropdown-item-plain {\n\tpadding: 4px 14px 4px 7px;\n}\n\n.tc-drop-down .tc-dropdown-item,\n.tc-block-dropdown .tc-dropdown-item {\n\tpadding: 4px 14px 4px 7px;\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-block-dropdown a:hover {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-search-results {\n\tpadding: 0 7px 0 7px;\n}\n\n.tc-image-chooser, .tc-colour-chooser {\n\twhite-space: normal;\n}\n\n.tc-image-chooser a,\n.tc-colour-chooser a {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\ttext-align: center;\n\tposition: relative;\n}\n\n.tc-image-chooser a {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 2px;\n\tmargin: 2px;\n\twidth: 4em;\n\theight: 4em;\n}\n\n.tc-colour-chooser a {\n\tpadding: 3px;\n\twidth: 2em;\n\theight: 2em;\n\tvertical-align: middle;\n}\n\n.tc-image-chooser a:hover,\n.tc-colour-chooser a:hover {\n\tbackground: <<colour primary>>;\n\tpadding: 0px;\n\tborder: 3px solid <<colour primary>>;\n}\n\n.tc-image-chooser a svg,\n.tc-image-chooser a img {\n\tdisplay: inline-block;\n\twidth: auto;\n\theight: auto;\n\tmax-width: 3.5em;\n\tmax-height: 3.5em;\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\tmargin: auto;\n}\n\n/*\n** Modals\n*/\n\n.tc-modal-wrapper {\n\tposition: fixed;\n\toverflow: auto;\n\toverflow-y: scroll;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 900;\n}\n\n.tc-modal-backdrop {\n\tposition: fixed;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 1000;\n\tbackground-color: <<colour modal-backdrop>>;\n}\n\n.tc-modal {\n\tz-index: 1100;\n\tbackground-color: <<colour modal-background>>;\n\tborder: 1px solid <<colour modal-border>>;\n}\n\n@media (max-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 1em;\n\t\tleft: 1em;\n\t\tright: 1em;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n@media (min-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 2em;\n\t\tleft: 25%;\n\t\twidth: 50%;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n.tc-modal-header {\n\tpadding: 9px 15px;\n\tborder-bottom: 1px solid <<colour modal-header-border>>;\n}\n\n.tc-modal-header h3 {\n\tmargin: 0;\n\tline-height: 30px;\n}\n\n.tc-modal-header img, .tc-modal-header svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-modal-body {\n\tpadding: 15px;\n}\n\n.tc-modal-footer {\n\tpadding: 14px 15px 15px;\n\tmargin-bottom: 0;\n\ttext-align: right;\n\tbackground-color: <<colour modal-footer-background>>;\n\tborder-top: 1px solid <<colour modal-footer-border>>;\n}\n\n/*\n** Notifications\n*/\n\n.tc-notification {\n\tposition: fixed;\n\ttop: 14px;\n\tright: 42px;\n\tz-index: 1300;\n\tmax-width: 280px;\n\tpadding: 0 14px 0 14px;\n\tbackground-color: <<colour notification-background>>;\n\tborder: 1px solid <<colour notification-border>>;\n}\n\n/*\n** Tabs\n*/\n\n.tc-tab-set.tc-vertical {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tab-buttons {\n\tfont-size: 0.85em;\n\tpadding-top: 1em;\n\tmargin-bottom: -2px;\n}\n\n.tc-tab-buttons.tc-vertical  {\n\tz-index: 100;\n\tdisplay: block;\n\tpadding-top: 14px;\n\tvertical-align: top;\n\ttext-align: right;\n\tmargin-bottom: inherit;\n\tmargin-right: -1px;\n\tmax-width: 33%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n}\n\n.tc-tab-buttons button.tc-tab-selected {\n\tcolor: <<colour tab-foreground-selected>>;\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-left: 1px solid <<colour tab-border-selected>>;\n\tborder-top: 1px solid <<colour tab-border-selected>>;\n\tborder-right: 1px solid <<colour tab-border-selected>>;\n}\n\n.tc-tab-buttons button {\n\tcolor: <<colour tab-foreground>>;\n\tpadding: 3px 5px 3px 5px;\n\tmargin-right: 0.3em;\n\tfont-weight: 300;\n\tborder: none;\n\tbackground: inherit;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-right: 1px solid <<colour tab-border>>;\n\tborder-top-left-radius: 2px;\n\tborder-top-right-radius: 2px;\n}\n\n.tc-tab-buttons.tc-vertical button {\n\tdisplay: block;\n\twidth: 100%;\n\tmargin-top: 3px;\n\tmargin-right: 0;\n\ttext-align: right;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tborder-right: none;\n\tborder-top-left-radius: 2px;\n\tborder-bottom-left-radius: 2px;\n}\n\n.tc-tab-buttons.tc-vertical button.tc-tab-selected {\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-right: 1px solid <<colour tab-background-selected>>;\n}\n\n.tc-tab-divider {\n\tborder-top: 1px solid <<colour tab-divider>>;\n}\n\n.tc-tab-divider.tc-vertical  {\n\tdisplay: none;\n}\n\n.tc-tab-content {\n\tmargin-top: 14px;\n}\n\n.tc-tab-content.tc-vertical  {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-top: 0;\n\tpadding-left: 14px;\n\tborder-left: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 70%;\n\tflex: 1 0 70%;\n}\n\n.tc-sidebar-lists .tc-tab-buttons {\n\tmargin-bottom: -1px;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tcolor: <<colour sidebar-tab-foreground-selected>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border-selected>>;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button {\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tcolor: <<colour sidebar-tab-foreground>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border>>;\n}\n\n.tc-sidebar-lists .tc-tab-divider {\n\tborder-top: 1px solid <<colour sidebar-tab-divider>>;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\tdisplay: block;\n\twidth: 100%;\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tborder-top: none;\n\tborder-left: none;\n\tborder-bottom: none;\n\tborder-right: 1px solid #ccc;\n\tmargin-bottom: inherit;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tborder: none;\n}\n\n/*\n** Manager\n*/\n\n.tc-manager-wrapper {\n\t\n}\n\n.tc-manager-controls {\n\t\n}\n\n.tc-manager-control {\n\tmargin: 0.5em 0;\n}\n\n.tc-manager-list {\n\twidth: 100%;\n\tborder-top: 1px solid <<colour muted-foreground>>;\n\tborder-left: 1px solid <<colour muted-foreground>>;\n\tborder-right: 1px solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item {\n\n}\n\n.tc-manager-list-item-heading {\n    display: block;\n    width: 100%;\n    text-align: left;\t\n\tborder-bottom: 1px solid <<colour muted-foreground>>;\n\tpadding: 3px;\n}\n\n.tc-manager-list-item-heading-selected {\n\tfont-weight: bold;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n\tbackground-color: <<colour foreground>>;\n}\n\n.tc-manager-list-item-heading:hover {\n\tbackground: <<colour primary>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-manager-list-item-content {\n\tdisplay: flex;\n}\n\n.tc-manager-list-item-content-sidebar {\n    flex: 1 0;\n    background: <<colour tiddler-editor-background>>;\n    border-right: 0.5em solid <<colour muted-foreground>>;\n    border-bottom: 0.5em solid <<colour muted-foreground>>;\n    white-space: nowrap;\n}\n\n.tc-manager-list-item-content-item-heading {\n\tdisplay: block;\n\twidth: 100%;\n\ttext-align: left;\n    background: <<colour muted-foreground>>;\n\ttext-transform: uppercase;\n\tfont-size: 0.6em;\n\tfont-weight: bold;\n    padding: 0.5em 0 0.5em 0;\n}\n\n.tc-manager-list-item-content-item-body {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-manager-list-item-content-item-body > pre {\n\tmargin: 0.5em 0 0.5em 0;\n\tborder: none;\n\tbackground: inherit;\n}\n\n.tc-manager-list-item-content-tiddler {\n    flex: 3 1;\n    border-left: 0.5em solid <<colour muted-foreground>>;\n    border-right: 0.5em solid <<colour muted-foreground>>;\n    border-bottom: 0.5em solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item-content-item-body > table {\n\tborder: none;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.tc-manager-list-item-content-item-body > table td {\n\tborder: none;\n}\n\n.tc-manager-icon-editor > button {\n\twidth: 100%;\n}\n\n.tc-manager-icon-editor > button > svg,\n.tc-manager-icon-editor > button > button {\n\twidth: 100%;\n\theight: auto;\n}\n\n/*\n** Alerts\n*/\n\n.tc-alerts {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tmax-width: 500px;\n\tz-index: 20000;\n}\n\n.tc-alert {\n\tposition: relative;\n\tmargin: 28px;\n\tpadding: 14px 14px 14px 14px;\n\tborder: 2px solid <<colour alert-border>>;\n\tbackground-color: <<colour alert-background>>;\n}\n\n.tc-alert-toolbar {\n\tposition: absolute;\n\ttop: 14px;\n\tright: 14px;\n}\n\n.tc-alert-toolbar svg {\n\tfill: <<colour alert-muted-foreground>>;\n}\n\n.tc-alert-subtitle {\n\tcolor: <<colour alert-muted-foreground>>;\n\tfont-weight: bold;\n}\n\n.tc-alert-highlight {\n\tcolor: <<colour alert-highlight>>;\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-static-alert {\n\t\tposition: relative;\n\t}\n\n\t.tc-static-alert-inner {\n\t\tposition: absolute;\n\t\tz-index: 100;\n\t}\n\n}\n\n.tc-static-alert-inner {\n\tpadding: 0 2px 2px 42px;\n\tcolor: <<colour static-alert-foreground>>;\n}\n\n/*\n** Control panel\n*/\n\n.tc-control-panel td {\n\tpadding: 4px;\n}\n\n.tc-control-panel table, .tc-control-panel table input, .tc-control-panel table textarea {\n\twidth: 100%;\n}\n\n.tc-plugin-info {\n\tdisplay: block;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground-colour: <<colour background>>;\n\tmargin: 0.5em 0 0.5em 0;\n\tpadding: 4px;\n}\n\n.tc-plugin-info-disabled {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n\tbackground: repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n}\n\n.tc-plugin-info-disabled:hover {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n\tbackground: repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n}\n\na.tc-tiddlylink.tc-plugin-info:hover {\n\ttext-decoration: none;\n\tbackground-color: <<colour primary>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour foreground>>;\n}\n\na.tc-tiddlylink.tc-plugin-info:hover .tc-plugin-info > .tc-plugin-info-chunk > svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-plugin-info-chunk {\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.tc-plugin-info-chunk h1 {\n\tfont-size: 1em;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk h2 {\n\tfont-size: 0.8em;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk div {\n\tfont-size: 0.7em;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info:hover > .tc-plugin-info-chunk > img, .tc-plugin-info:hover > .tc-plugin-info-chunk > svg {\n\twidth: 2em;\n\theight: 2em;\n\tfill: <<colour foreground>>;\n}\n\n.tc-plugin-info > .tc-plugin-info-chunk > img, .tc-plugin-info > .tc-plugin-info-chunk > svg {\n\twidth: 2em;\n\theight: 2em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-plugin-info.tc-small-icon > .tc-plugin-info-chunk > img, .tc-plugin-info.tc-small-icon > .tc-plugin-info-chunk > svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-plugin-info-dropdown {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tmargin-top: -8px;\n}\n\n.tc-plugin-info-dropdown-message {\n\tbackground: <<colour message-background>>;\n\tpadding: 0.5em 1em 0.5em 1em;\n\tfont-weight: bold;\n\tfont-size: 0.8em;\n}\n\n.tc-plugin-info-dropdown-body {\n\tpadding: 1em 1em 1em 1em;\n}\n\n/*\n** Message boxes\n*/\n\n.tc-message-box {\n\tborder: 1px solid <<colour message-border>>;\n\tbackground: <<colour message-background>>;\n\tpadding: 0px 21px 0px 21px;\n\tfont-size: 12px;\n\tline-height: 18px;\n\tcolor: <<colour message-foreground>>;\n}\n\n.tc-message-box svg {\n\twidth: 1em;\n\theight: 1em;\n    vertical-align: text-bottom;\n}\n\n/*\n** Pictures\n*/\n\n.tc-bordered-image {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 5px;\n\tmargin: 5px;\n}\n\n/*\n** Floats\n*/\n\n.tc-float-right {\n\tfloat: right;\n}\n\n/*\n** Chooser\n*/\n\n.tc-chooser {\n\tborder: 1px solid <<colour table-border>>;\n}\n\n.tc-chooser-item {\n\tborder: 8px;\n\tpadding: 2px 4px;\n}\n\n.tc-chooser-item a.tc-tiddlylink {\n\tdisplay: block;\n\ttext-decoration: none;\n\tcolor: <<colour tiddler-link-foreground>>;\n\tbackground-color: <<colour tiddler-link-background>>;\n}\n\n.tc-chooser-item a.tc-tiddlylink:hover {\n\ttext-decoration: none;\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n}\n\n/*\n** Palette swatches\n*/\n\n.tc-swatches-horiz {\n}\n\n.tc-swatches-horiz .tc-swatch {\n\tdisplay: inline-block;\n}\n\n.tc-swatch {\n\twidth: 2em;\n\theight: 2em;\n\tmargin: 0.4em;\n\tborder: 1px solid #888;\n}\n\n/*\n** Table of contents\n*/\n\n.tc-sidebar-lists .tc-table-of-contents {\n\twhite-space: nowrap;\n}\n\n.tc-table-of-contents button {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents svg {\n\twidth: 0.7em;\n\theight: 0.7em;\n\tvertical-align: middle;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents ol {\n\tlist-style-type: none;\n\tpadding-left: 0;\n}\n\n.tc-table-of-contents ol ol {\n\tpadding-left: 1em;\n}\n\n.tc-table-of-contents li {\n\tfont-size: 1.0em;\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li a {\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li li {\n\tfont-size: 0.95em;\n\tfont-weight: normal;\n\tline-height: 1.4;\n}\n\n.tc-table-of-contents li li a {\n\tfont-weight: normal;\n}\n\n.tc-table-of-contents li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n\tline-height: 1.5;\n}\n\n.tc-table-of-contents li li li a {\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n}\n\n.tc-tabbed-table-of-contents {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents {\n\tz-index: 100;\n\tdisplay: inline-block;\n\tpadding-left: 1em;\n\tmax-width: 50%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n\tbackground: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a,\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tdisplay: block;\n\tpadding: 0.12em 1em 0.12em 0.25em;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a {\n\tborder-top: 1px solid <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-background>>;\n\tborder-bottom: 1px solid <<colour tab-background>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a:hover {\n\ttext-decoration: none;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour background>>;\n\tmargin-right: -1px;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a:hover {\n\ttext-decoration: none;\n}\n\n.tc-tabbed-table-of-contents .tc-tabbed-table-of-contents-content {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-left: 1.5em;\n\tpadding-right: 1.5em;\n\tborder: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 50%;\n\tflex: 1 0 50%;\n}\n\n/*\n** Dirty indicator\n*/\n\nbody.tc-dirty span.tc-dirty-indicator, body.tc-dirty span.tc-dirty-indicator svg {\n\tfill: <<colour dirty-indicator>>;\n\tcolor: <<colour dirty-indicator>>;\n}\n\n/*\n** File inputs\n*/\n\n.tc-file-input-wrapper {\n\tposition: relative;\n\toverflow: hidden;\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.tc-file-input-wrapper input[type=file] {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tfont-size: 999px;\n\tmax-width: 100%;\n\tmax-height: 100%;\n\tfilter: alpha(opacity=0);\n\topacity: 0;\n\toutline: none;\n\tbackground: white;\n\tcursor: pointer;\n\tdisplay: inline-block;\n}\n\n/*\n** Thumbnail macros\n*/\n\n.tc-thumbnail-wrapper {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin: 6px;\n\tvertical-align: top;\n}\n\n.tc-thumbnail-right-wrapper {\n\tfloat:right;\n\tmargin: 0.5em 0 0.5em 0.5em;\n}\n\n.tc-thumbnail-image {\n\ttext-align: center;\n\toverflow: hidden;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-image svg,\n.tc-thumbnail-image img {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n\tmin-width: 100%;\n\tmin-height: 100%;\n\tmax-width: 100%;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image img {\n\tfilter: alpha(opacity=0.8);\n\topacity: 0.8;\n}\n\n.tc-thumbnail-background {\n\tposition: absolute;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-icon svg,\n.tc-thumbnail-icon img {\n\twidth: 3em;\n\theight: 3em;\n\t<<filter \"drop-shadow(2px 2px 4px rgba(0,0,0,0.3))\">>\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon img {\n\tfill: #fff;\n\t<<filter \"drop-shadow(3px 3px 4px rgba(0,0,0,0.6))\">>\n}\n\n.tc-thumbnail-icon {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tdisplay: -webkit-flex;\n\t-webkit-align-items: center;\n\t-webkit-justify-content: center;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.tc-thumbnail-caption {\n\tposition: absolute;\n\tbackground-color: #777;\n\tcolor: #fff;\n\ttext-align: center;\n\tbottom: 0;\n\twidth: 100%;\n\tfilter: alpha(opacity=0.9);\n\topacity: 0.9;\n\tline-height: 1.4;\n\tborder-bottom-left-radius: 3px;\n\tborder-bottom-right-radius: 3px;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-caption {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n}\n\n/*\n** Errors\n*/\n\n.tc-error {\n\tbackground: #f00;\n\tcolor: #fff;\n}"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize",
            "text": "15px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/bodylineheight": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/bodylineheight",
            "text": "22px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/fontsize": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/fontsize",
            "text": "14px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/lineheight": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/lineheight",
            "text": "20px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/storyleft": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/storyleft",
            "text": "0px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/storytop": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/storytop",
            "text": "0px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/storyright": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/storyright",
            "text": "770px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/storywidth": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/storywidth",
            "text": "770px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth",
            "text": "686px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint",
            "text": "960px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth",
            "text": "350px"
        },
        "$:/themes/tiddlywiki/vanilla/options/stickytitles": {
            "title": "$:/themes/tiddlywiki/vanilla/options/stickytitles",
            "text": "no"
        },
        "$:/themes/tiddlywiki/vanilla/options/sidebarlayout": {
            "title": "$:/themes/tiddlywiki/vanilla/options/sidebarlayout",
            "text": "fixed-fluid"
        },
        "$:/themes/tiddlywiki/vanilla/options/codewrapping": {
            "title": "$:/themes/tiddlywiki/vanilla/options/codewrapping",
            "text": "pre-wrap"
        },
        "$:/themes/tiddlywiki/vanilla/reset": {
            "title": "$:/themes/tiddlywiki/vanilla/reset",
            "type": "text/plain",
            "text": "/*! normalize.css v3.0.0 | MIT License | git.io/normalize */\n\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS text size adjust after orientation change, without disabling\n *    user zoom.\n */\n\nhtml {\n  font-family: sans-serif; /* 1 */\n  -ms-text-size-adjust: 100%; /* 2 */\n  -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/**\n * Remove default margin.\n */\n\nbody {\n  margin: 0;\n}\n\n/* HTML5 display definitions\n   ========================================================================== */\n\n/**\n * Correct `block` display not defined in IE 8/9.\n */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection,\nsummary {\n  display: block;\n}\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\n\naudio,\ncanvas,\nprogress,\nvideo {\n  display: inline-block; /* 1 */\n  vertical-align: baseline; /* 2 */\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\n\naudio:not([controls]) {\n  display: none;\n  height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9.\n * Hide the `template` element in IE, Safari, and Firefox < 22.\n */\n\n[hidden],\ntemplate {\n  display: none;\n}\n\n/* Links\n   ========================================================================== */\n\n/**\n * Remove the gray background color from active links in IE 10.\n */\n\na {\n  background: transparent;\n}\n\n/**\n * Improve readability when focused and also mouse hovered in all browsers.\n */\n\na:active,\na:hover {\n  outline: 0;\n}\n\n/* Text-level semantics\n   ========================================================================== */\n\n/**\n * Address styling not present in IE 8/9, Safari 5, and Chrome.\n */\n\nabbr[title] {\n  border-bottom: 1px dotted;\n}\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.\n */\n\nb,\nstrong {\n  font-weight: bold;\n}\n\n/**\n * Address styling not present in Safari 5 and Chrome.\n */\n\ndfn {\n  font-style: italic;\n}\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari 5, and Chrome.\n */\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\n\nmark {\n  background: #ff0;\n  color: #000;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\n\nsmall {\n  font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\n\nsup {\n  top: -0.5em;\n}\n\nsub {\n  bottom: -0.25em;\n}\n\n/* Embedded content\n   ========================================================================== */\n\n/**\n * Remove border when inside `a` element in IE 8/9.\n */\n\nimg {\n  border: 0;\n}\n\n/**\n * Correct overflow displayed oddly in IE 9.\n */\n\nsvg:not(:root) {\n  overflow: hidden;\n}\n\n/* Grouping content\n   ========================================================================== */\n\n/**\n * Address margin not present in IE 8/9 and Safari 5.\n */\n\nfigure {\n  margin: 1em 40px;\n}\n\n/**\n * Address differences between Firefox and other browsers.\n */\n\nhr {\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n  height: 0;\n}\n\n/**\n * Contain overflow in all browsers.\n */\n\npre {\n  overflow: auto;\n}\n\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n */\n\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n\n/* Forms\n   ========================================================================== */\n\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n\n/**\n * 1. Correct color not being inherited.\n *    Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  color: inherit; /* 1 */\n  font: inherit; /* 2 */\n  margin: 0; /* 3 */\n}\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10.\n */\n\nbutton {\n  overflow: visible;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8+, and Opera\n * Correct `select` style inheritance in Firefox.\n */\n\nbutton,\nselect {\n  text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n *    and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n *    `input` and others.\n */\n\nbutton,\nhtml input[type=\"button\"], /* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  -webkit-appearance: button; /* 2 */\n  cursor: pointer; /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\n\nbutton[disabled],\nhtml input[disabled] {\n  cursor: default;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  border: 0;\n  padding: 0;\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\n\ninput {\n  line-height: normal;\n}\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n  box-sizing: border-box; /* 1 */\n  padding: 0; /* 2 */\n}\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome\n *    (include `-moz` to future-proof).\n */\n\ninput[type=\"search\"] {\n  -webkit-appearance: textfield; /* 1 */\n  -moz-box-sizing: content-box;\n  -webkit-box-sizing: content-box; /* 2 */\n  box-sizing: content-box;\n}\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\n\nfieldset {\n  border: 1px solid #c0c0c0;\n  margin: 0 2px;\n  padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\n\nlegend {\n  border: 0; /* 1 */\n  padding: 0; /* 2 */\n}\n\n/**\n * Remove default vertical scrollbar in IE 8/9.\n */\n\ntextarea {\n  overflow: auto;\n}\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\n\noptgroup {\n  font-weight: bold;\n}\n\n/* Tables\n   ========================================================================== */\n\n/**\n * Remove most spacing between table cells.\n */\n\ntable {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\ntd,\nth {\n  padding: 0;\n}\n"
        },
        "$:/themes/tiddlywiki/vanilla/settings/fontfamily": {
            "title": "$:/themes/tiddlywiki/vanilla/settings/fontfamily",
            "text": "\"Helvetica Neue\", Helvetica, Arial, \"Lucida Grande\", \"DejaVu Sans\", sans-serif"
        },
        "$:/themes/tiddlywiki/vanilla/settings/codefontfamily": {
            "title": "$:/themes/tiddlywiki/vanilla/settings/codefontfamily",
            "text": "Monaco, Consolas, \"Lucida Console\", \"DejaVu Sans Mono\", monospace"
        },
        "$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment": {
            "title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment",
            "text": "fixed"
        },
        "$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize": {
            "title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize",
            "text": "auto"
        },
        "$:/themes/tiddlywiki/vanilla/sticky": {
            "title": "$:/themes/tiddlywiki/vanilla/sticky",
            "text": "<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\" type=\"match\" text=\"yes\">\n``\n.tc-tiddler-title {\n\tposition: -webkit-sticky;\n\tposition: -moz-sticky;\n\tposition: -o-sticky;\n\tposition: -ms-sticky;\n\tposition: sticky;\n\ttop: 0px;\n\tbackground: ``<<colour tiddler-background>>``;\n\tz-index: 500;\n}\n``\n</$reveal>\n"
        }
    }
}
370px
50px
770px
0px
750px
686px
fluid-fixed
no
backup
hunter.html


classic
!!《哀江南赋》

庚信

!!序

  粤以戊辰之年,建亥之月,大盗移国,金陵瓦解。余乃窜身荒谷,公私涂炭。华阳奔命,有去无归,中兴道销,穷于甲戌,三日哭于都亭,三年囚于别馆。

  天道周星,物极不反。傅燮之但悲身世,无处求生;袁安之每念王室,自然流涕。昔桓君山之志事,杜元凯之平生,并有著书,咸能自序。潘岳之文采,始述家风;陆机之辞赋,先陈世德。信年始二毛,即逢丧乱,藐是流离,至于暮齿。《燕歌》远别,悲不自胜;楚老相逢,泣将何及!畏南山之雨,忽践秦庭;让东海之滨,遂餐周粟。下亭漂泊,高桥羁旅;楚歌非取乐之方,鲁酒无忘忧之用。追为此赋,聊以记言;不无危苦之辞,惟以悲哀为主。 

  日暮途远,人间何世?将军一去,大树飘零;壮士不还,寒风萧瑟。荆璧睨柱,受连城而见欺;载书横阶,捧珠盘而不定。钟仪君子,入就南冠之囚;季孙行人,留守西河之馆。申包胥之顿地,碎之以首;蔡威公之泪尽,加之以血。钓台移柳,非玉关之可望;华亭鹤唳,岂河桥之可闻?

  孙策以天下为三分,众才一旅;项籍用江东之子弟,人惟八千;遂乃分裂山河,宰割天下。岂有百万义师,一朝卷甲;芟夷斩伐,如草木焉!江淮无涯岸之阻,亭壁无籓篱之固。头会箕敛者合从缔交;锄耰棘矜者因利乘便。将非江表王气,终于三百年乎? 

  是知并吞六合,不免轵道之炎;混一车书,无救平阳之祸。呜呼!山岳崩颓,既履危亡之运;春秋迭代,必有去故之悲。天意人事,可以凄怆伤心者矣。况复舟楫路穷,星汉非乘槎可上;风飚道阻,蓬莱无可到之期。穷者欲达其言,劳者须歌其事。陆士衡闻而抚掌,是所甘心;张平子见而陋之,固其宜矣。 

!!正文

  我之掌瘐承周,以世功而为族;经邦佐汉,用论道而当官。禀嵩、华之玉石,润河洛之波澜;居负洛而重世,邑临河而宴安。

  逮永嘉之艰虞,始中原之乏主;民枕倚于墙壁,路交横于豺虎;值五马之南奔,逢三星之东聚;彼陵江而建国,始播迁于吾祖。分南阳而赐田,裂东岳而胙土;诛茅宋玉之宅,穿径临江之府。水木交运,山川崩竭,家有直道,人多全节;训子见于纯深,事君彰于义烈。新野有生祠之妙,河南有胡书之碣。况乃少微真人,天山逸民,阶庭空谷,门巷蒲轮;移谈讲书,就简书筠。降生世德,载诞贞臣,文词高于甲观,楷模盛于漳滨;嗟有道而无凤,叹非时而有麟。既奸回之奰逆,终不悦于仁人。

  王子滨洛之岁,兰成射策之年。始含香于建礼,乃矫翼于崇贤;游洊雷之讲肆,齿明离之胄筵。既倾蠡而酌海,遂测管而窥天。方塘水白,钓渚池圆;侍戎韬于武帐,听雅曲于文絃。乃解悬而通籍,遂崇文而会武;居笠轂而掌兵,出兰池而典午。论兵于江、汉之君,拭玉于西河之主。

  于是朝野欢娱,池台钟鼓。里为冠盖,门成邹、鲁。连茂苑于海陵,跨横塘于江浦。东门则鞭石成桥,南极则铸铜为柱。橘则园植万株,竹则家封千户。西賮浮玉,南琛没羽。吴歈越吟,荆艳楚舞。草木之遇阳春,鱼龙之逢风雨。

  五十年中,江表无事。班超为定远之侯,王歙为和亲之使。马武无预于甲兵,冯唐不论于将帅。岂知山岳闇然,江湖潜沸,渔阳有闾左戍卒,离石有将兵都尉。

  天子方删诗书,定礼乐;设重云之讲,开士林之学;谈劫烬之飞灰,辨常星之夜落。地平鱼齿,城危兽角;卧刁斗于荥阳,绊龙媒于平乐;宰衡以干戈为儿戏,缙绅以清谈为庙略。乘渍水以胶船,驭奔驹以朽索。小人则将及水火,君子则方成猿鹤。敝箄不能救盐池之鹹,阿胶不能止黄河之浊。既而鲂鱼尾,四郊多垒。殿狎江鸥,宫鸣野雉;湛庐去国,艅艎失水。见被发于伊川,知百年而为戎矣。

  彼奸逆之炽盛,久游魂而放命。大则有鲸有鲵,小则为枭为獍。负其牛羊之力,凶其水草之性;非玉烛之能调,岂璿玑之可正!值天下之无为,尚有欲于羁縻。饮其琉璃之酒,赏其虎豹之皮;见胡柯于大夏,识鸟卵于条枝。豺牙宓厉,虺毒潜吹;轻九鼎而欲问,闻三川而遂窥。

  始则王子召戎,奸臣见胄。既官政而离逷,遂师言而泄漏。望廷尉之囚,反淮南之穷寇;出狄泉之苍鸟,起横江之困兽。地则石鼓鸣山,天则金精动宿;北阙龙吟,东陵麟鬬。

  尔乃桀横扇,冯陵畿甸。拥狼望于黄图,填庐山于赤县。青袍如草,白马如练。天子履端废朝,单于长围高宴。两观当戟,千门受箭;白虹贯日,苍鹰击殿;竟遭夏台之祸,终视尧城之变。官守无奔问之人,干戚非平戎之战。陶侃空争米船,顾荣虚摇羽扇。

  将军死绥,路绝长围。烽隨星落,书逐鸢飞。遂乃韩分赵裂,鼓卧旗折。失群班马,迷轮乱辙。猛士婴城,谋臣卷舌。昆阳之战象走林,常山之阵蛇奔穴。五郡则兄弟相悲,三州则父子离别。护军慷慨,忠能死节,三世为将,终于此灭。济阳忠壮,身参末将,兄弟三人,义声俱唱。主辱臣死,名存身丧;狄人归元,三军凄怆。尚书多算,守备是长,云梯可拒,地道能防;有齐将之闭壁,无燕师之卧墙。大事去矣,人之云亡!申子奋发,勇气咆勃。实总元戎,身先士卒。胄落鱼门;兵填马窟。屡犯通中,频遭刮骨。功业夭枉;身名埋没。

  或以隼翼鷃披,虎威狐假。沾渍锋镝,脂膏原野。兵弱虏强,城孤气寡。闻鹤唳而心惊,听胡笳而泪下。拒神亭而亡戟,临横江而弃马。崩于钜鹿之沙,碎于长平之瓦。

  于是桂林颠覆,长洲麋鹿。溃溃沸腾,茫茫黩。天地离阻,神人惨酷。晋、郑靡依,鲁、卫不睦,竞动天关,争回地轴。探雀而未饱,待熊蹯而讵熟?乃有车侧郭门,筋悬庙屋。鬼同曹社之谋,人有秦庭之哭。

  尔乃假刻玺于关塞,称使者之酬对。逢鄂坂之讥嫌,值耏门之征税。乘白马而不前,策青骡而转碍。吹落叶之扁舟,飘长风于上游。彼锯牙而鉤爪,又循江而习流。排青龙之战舰,鬬飞燕之船楼。张辽临于赤壁,王下于巴丘。乍风惊而射火,或箭重而回舟。未辨声于黄盖,已先沉于杜侯。落帆黄鹤之浦,藏船鹦鹉之洲。路已分于湘、汉,星犹看于斗、牛。

  若乃阴陵失路,钓台斜趣。望赤壁而沾衣,舣乌江而不渡。雷池栅浦,鹊陵焚戍。旅舍无烟,巢禽无树。谓荆、衡之杞梓,庶江、汉之可恃。淮海维扬,三千余里。过漂渚而寄食,讬庐中而渡水。届于七泽,滨于十死。嗟天保之未定,见殷憂之方始。本不达于危行,又无情于禄仕。谬掌卫于中军,滥尸丞于御史。

  信生世等于龙门,辞亲同于河、洛。奉立身之遗训,受成书之顾讬。昔四世而无,今七叶而始落。泣风雨于《梁山》,惟枯鱼之衔索。入欹斜之小径,掩蓬藋之荒扉;就汀洲之杜若,待芦苇之单衣。

  于是西楚霸王,剑及繁阳,鏖兵金匮,校战玉堂;苍鹰赤雀,铁轴牙樯。沉白马而誓众,负黄龙而渡江,海潮迎舰,江萍送王。戎车屯于石城,戈船掩于淮泗;诸侯则郑伯前驱,盟主则荀罃暮至。剖巢燻穴,奔魑走魅。埋长狄于驹门,斩蚩尤于中冀。燃腹为灯,饮头为器。直虹贯垒,长星属地。昔之虎踞龙盘,加以黄旗紫气,莫不随狐兔而窟穴,与风尘而殄瘁。

  西瞻博望,北临玄圃,月榭风台,池平树古。倚弓于玉女窗扉,繫马于凤皇楼柱;仁寿之镜徒悬,茂陵之书空聚。

  若夫立德立言,谟明寅亮;声超于繫表,道高于河上;更不遇于浮丘,遂无言于师旷。以爱子而托人,知西陵而谁望?非无北阙之兵,犹有云台之仗。

  司徒之表里经纶,狐偃之惟王实勤。横琱戈而对霸主,执金鼓而问贼臣。平吴之功,壮于杜元凯;王室是赖,深于温太真。始则地名全节,终则山称枉人。南阳校书,去之已远;上蔡逐猎,知之何晚?

  镇北之负誉矜前,风飙凛然。水神遭箭,山灵见鞭。是以蛰熊伤马,浮蛟没船。才子倂命,俱非百年。

  中宗之夷凶靖乱,大雪冤耻,去代邸而承基,迁唐郊而纂祀;反旧章于司隶,归余风于正始。沈猜则方逞其欲,藏疾则自矜于己。天下之事没焉,诸侯之心摇矣。既而齐交北绝,秦患西起。况背关而怀楚,异端委而开吴。驱绿林之散卒,拒骊山之叛徒。营军梁,蒐乘巴渝。问诸淫昏之鬼,求诸厌劾之符。荆门遭廪延之戮,夏口滥逵泉之诛。蔑因亲以教爱,忍和乐于弯弧。既无谋于肉食,非所望于《论都》。未深思于五难,先自擅于三端。登阳城而避险,卧砥柱而求安。既言多于忌刻,实志勇而刑残。但坐观于时变,本无情于急难。地惟黑子,城犹弹丸;其怨则黩,其盟则寒。岂冤禽之能塞海?非愚叟之可移山。况以沴气朝浮,妖精夜陨。赤鸟则三朝夹日,苍云则七重围轸。亡吴之岁既穷,入郢之年斯尽。

  周含郑怒,楚结秦冤。有南风之不竞,值西邻之责言。俄而梯冲乱舞,冀马云屯。俴秦车于畅轂,沓汉鼓于雷门。下陈仓而连弩,渡临晋而横船。

  虽复楚有七泽,人称三户;箭不丽于六麋,雷无惊于九虎。辞洞庭兮落木,去涔阳兮极浦。炽火兮焚旗,贞风兮害蠱。乃使玉轴扬灰,龙文折柱。下江余城,长林故营;徒思拑马之秣,未见烧牛之兵。章曼支以轂走,宫之奇以族行;河无冰而马渡,关未晓而鸡鸣。忠臣解骨,君子吞声。章华望祭之所,云梦伪游之地;荒谷缢于莫敖,冶父囚于群师。硎谷摺拉,鹰鸇批。冤霜夏零,愤泉秋沸。城崩杞妇之哭,竹染湘妃之泪。

  水毒秦泾,山高赵陉;十里五里,长亭短亭;饥随蛰燕,暗逐流萤;秦中水黑,关上泥青。于时瓦解冰泮,风飞电散,浑然千里,淄澠一乱。雪暗如沙,冰横似岸。逢赴洛之陆机,见离家之王粲,莫不闻陇水而掩泣,向关山而长叹。

  况复君在交河,妾在青波;石望夫而逾远,山望子而逾多。才人之忆代郡,公主之去清河。栩阳亭有离别之赋,临江王有愁思之歌。别有飘颻武威,羁旅金微;班超生而忘返,温序死而思归。李陵之双凫永去,苏武之一雁空飞。

  若江陵之中否,乃金陵之祸始。虽借人之外力,实萧墙之内起。拨乱之主忽焉,中兴之宗不祀。伯兮叔兮,同见戮于犹子。荆山鹊飞而玉碎,随岸蛇生而珠死。鬼火乱于平林,殇魂游于新市。

  梁故丰徙,楚实秦亡;不有所废,其何以昌?有妫之后,将育于姜。输我神器,居为让王。

  天地之大德曰生,圣人之大宝曰位;用无赖之子弟,举江东而全弃。惜天下之一家,遭东南之反气;以鹑首而赐秦,天何为而此醉?

  且夫天道回旋,生民预焉。余烈祖于西晋,始流播于东川;洎余身而七叶,又遭时而北迁。提挈老幼,关河累年。死生契阔,不可问天。况复零落将尽,灵光岿然!

  日穷于纪,岁将复始。逼迫危虑,端憂暮齿。践长乐之神皋,望宣平之贵里。渭水贯于天门,骊山回于地市。幕府大将军之爱客,丞相平津侯之待士。见钟鼎于金、张,闻絃歌于许、史。岂知灞陵夜猎,犹是故时将军;咸阳布衣,非独思归王子! 
关于编辑内容的几点说明(请点击编辑按钮看左栏内容):

!!1,不同段落之间要分行,正式显示出来的文本才不会混在一起。

!!2,一级标题的前方加一个 英文输入状态下的感叹号 ! 二级标题加两个!!,如下示范:

! 一级标题(前面的!是英文状态输入的)

!! 二级标题

!一级标题(错误示范,前面的!是中文状态输入的,无效)

!!关于创建链接

链接到内部文件:  [[显示的内容是这样的|Home]]  

也可以是这样的:[[Home]]

链接到网址:[[这样显示的|http://www.bolebook.com]]

英文状态下的[ [ , 还有]],内容中间用   |    竖线分隔开。

可以把上面的内容复制过去,然后修改  |  前后的内容。

图片链接的方法:  [img[这个地方替换为图片网址链接]]   

你可以在【工具】-【导入】这个地方导入你的图片,这样图片就会存在在文件里。

注:导入的图片请拼音命名,然后把文件名.jpg .jpeg填写到链接处。


示例(实在不会的话扫描联系我啊):

[img[yudade.jpg]]

楚辞

离骚 

九歌 东皇太一 

九歌 云中君 

九歌 湘君 

九歌 湘夫人 

九歌 大司命 

九歌 少司命 

九歌 东君 

九歌 河伯 

九歌 山鬼 

九歌 国殇 

九歌 礼魂 

天问 

九章 惜诵 

九章 涉江 

九章 哀郢 

九章 抽思 

九章 怀沙 

九章 思美人 

九章 惜往日 

九章 橘颂 

九章 悲回风 

远游 

卜居 

渔父 

九辩 

招魂 

大招 

惜誓 

招隐士 

七谏 初放 

七谏 沉江 

七谏 怨世 

七谏 怨思 

七谏 自悲 

七谏 哀命 

七谏 谬谏 

哀时命 

九怀 匡机 

九怀 通路 

九怀 危俊 

九怀 昭世 

九怀 尊嘉 

九怀 蓄英 

九怀 思忠 

九怀 陶壅 

九怀 株昭 

九叹 逢纷 

九叹 离世 

九叹 怨思 

九叹 远逝 

九叹 惜贤 

九叹 忧苦 

九叹 愍命 

九叹 思古 

九叹 远游 

九思 逢尤 

九思 怨上 

九思 疾世 

九思 悯上 

九思 遭厄 

九思 悼乱 

九思 伤时 

九思 哀岁 

九思 守志 

离骚 

帝高阳之苗裔兮,朕皇考曰伯庸。

摄提贞于孟陬兮,惟庚寅吾以降。

皇览揆余初度兮,肇锡余以嘉名:

名余曰正则兮,字余曰灵均。

纷吾既有此内美兮,又重之以修能。

扈江离与辟芷兮,纫秋兰以为佩。

汨余若将不及兮,恐年岁之不吾与。

朝搴阰之木兰兮,夕揽洲之宿莽。

日月忽其不淹兮,春与秋其代序。

惟草木之零落兮,恐美人之迟暮。

不抚壮而弃秽兮,何不改乎此度?

乘骐骥以驰骋兮,来吾道夫先路!

昔三后之纯粹兮,固众芳之所在。

杂申椒与菌桂兮,岂维纫夫蕙茝!

彼尧、舜之耿介兮,既遵道而得路。

何桀纣之昌披兮,夫唯捷径以窘步。

惟党人之偷乐兮,路幽昧以险隘。

岂余身之僤殃兮,恐皇舆之败绩!

忽奔走以先后兮,及前王之踵武。

荃不揆余之中情兮,反信谗以齌怒。

余固知謇謇之为患兮,忍而不能舍也。

指九天以为正兮,夫唯灵修之故也。

曰黄昏以为期兮,羌中道而改路!

初既与余成言兮,后悔遁而有他。

余既不难夫离别兮,伤灵修之数化。

余既滋兰之九畹兮,又树蕙之百亩。

畦留夷与揭车兮,杂杜衡与芳芷。

冀枝叶之峻茂兮,原俟时乎吾将刈。

虽萎绝其亦何伤兮,哀众芳之芜秽。

众皆竞进以贪婪兮,凭不厌乎求索。

羌内恕己以量人兮,各兴心而嫉妒。

忽驰骛以追逐兮,非余心之所急。

老冉冉其将至兮,恐修名之不立。

朝饮木兰之坠露兮,夕餐秋菊之落英。

苟余情其信姱以练要兮,长顑颔亦何伤。

掔木根以结茝兮,贯薜荔之落蕊。

矫菌桂以纫蕙兮,索胡绳之纚々。

謇吾法夫前修兮,非世俗之所服。

虽不周於今之人兮,愿依彭咸之遗则。

长太息以掩涕兮,哀民生之多艰。

余虽好修姱以鞿羁兮,謇朝谇而夕替。

既替余以蕙纕兮,又申之以揽茝。

亦余心之所善兮,虽九死其犹未悔。

怨灵修之浩荡兮,终不察夫民心。

众女嫉余之蛾眉兮,谣诼谓余以善淫。

固时俗之工巧兮,偭规矩而改错。

背绳墨以追曲兮,竞周容以为度。

忳郁邑余佗傺兮,吾独穷困乎此时也。

宁溘死以流亡兮,余不忍为此态也。

鸷鸟之不群兮,自前世而固然。

何方圜之能周兮,夫孰异道而相安?

屈心而抑志兮,忍尤而攘诟。

伏清白以死直兮,固前圣之所厚。

悔相道之不察兮,延伫乎吾将反。

回朕车以复路兮,及行迷之未远。

步余马於兰皋兮,驰椒丘且焉止息。

进不入以离尤兮,退将复修吾初服。

制芰荷以为衣兮,集芙蓉以为裳。

不吾知其亦已兮,苟余情其信芳。

高余冠之岌岌兮,长余佩之陆离。

芳与泽其杂糅兮,唯昭质其犹未亏。

忽反顾以游目兮,将往观乎四荒。

佩缤纷其繁饰兮,芳菲菲其弥章。

民生各有所乐兮,余独好修以为常。

虽体解吾犹未变兮,岂余心之可惩。

女媭之婵媛兮,申申其詈予,曰:

“鲧婞直以亡身兮,终然殀乎羽之野。

汝何博謇而好修兮,纷独有此姱节?

薋菉葹以盈室兮,判独离而不服。”

众不可户说兮,孰云察余之中情?

世并举而好朋兮,夫何茕独而不予听?

依前圣以节中兮,喟凭心而历兹。

济沅、湘以南征兮,就重华而陈词:

启《九辨》与《九歌》兮,夏康娱以自纵。

不顾难以图后兮,五子用失乎家巷。

羿淫游以佚畋兮,又好射夫封狐。

固乱流其鲜终兮,浞又贪夫厥家。

浇身被服强圉兮,纵欲而不忍。

日康娱而自忘兮,厥首用夫颠陨。

夏桀之常违兮,乃遂焉而逢殃。

后辛之菹醢兮,殷宗用而不长。

汤、禹俨而祗敬兮,周论道而莫差。

举贤才而授能兮,循绳墨而不颇。

皇天无私阿兮,览民德焉错辅。

夫维圣哲以茂行兮,苟得用此下土。

瞻前而顾后兮,相观民之计极。

夫孰非义而可用兮?孰非善而可服?

阽余身而危死兮,览余初其犹未悔。

不量凿而正枘兮,固前修以菹醢。

曾歔欷余郁邑兮,哀朕时之不当。

揽茹蕙以掩涕兮,霑余襟之浪浪。

跪敷衽以陈辞兮,耿吾既得此中正。

驷玉虬以乘鹥兮,溘埃风余上征。

朝发轫於苍梧兮,夕余至乎县圃。

欲少留此灵琐兮,日忽忽其将暮。

吾令羲和弭节兮,望崦嵫而勿迫。

路曼曼其修远兮,吾将上下而求索。

饮余马於咸池兮,总余辔乎扶桑。

折若木以拂日兮,聊逍遥以相羊。

前望舒使先驱兮,后飞廉使奔属。

鸾皇为余先戒兮,雷师告余以未具。

吾令凤鸟飞腾兮,继之以日夜。

飘风屯其相离兮,帅云霓而来御。

纷总总其离合兮,斑陆离其上下。

吾令帝阍开关兮,倚阊阖而望予。

时暧暧其将罢兮,结幽兰而延伫。

世溷浊而不分兮,好蔽美而嫉妒。

朝吾将济於白水兮,登阆风而緤马。

忽反顾以流涕兮,哀高丘之无女。

溘吾游此春宫兮,折琼枝以继佩。

及荣华之未落兮,相下女之可诒。

吾令丰隆乘云兮,求宓妃之所在。

解佩纕以结言兮,吾令蹇修以为理。

纷总总其离合兮,忽纬繣其难迁。

夕归次於穷石兮,朝濯发乎洧盘。

保厥美以骄傲兮,日康娱以淫游。

虽信美而无礼兮,来违弃而改求。

览相观於四极兮,周流乎天余乃下。

望瑶台之偃蹇兮,见有娀之佚女。

吾令鸩为媒兮,鸩告余以不好。

雄鸠之鸣逝兮,余犹恶其佻巧。

心犹豫而狐疑兮,欲自適而不可。

凤皇既受诒兮,恐高辛之先我。

欲远集而无所止兮,聊浮游以逍遥。

及少康之未家兮,留有虞之二姚。

理弱而媒拙兮,恐导言之不固。

世溷浊而嫉贤兮,好蔽美而称恶。

闺中既以邃远兮,哲王又不寤。

怀朕情而不发兮,余焉能忍而与此终古?

索琼茅以筳篿兮,命灵氛为余占之。

曰:“两美其必合兮,孰信修而慕之?

思九州之博大兮,岂惟是其有女?”

曰:“勉远逝而无狐疑兮,孰求美而释女?

何所独无芳草兮,尔何怀乎故宇?”

世幽昧以昡曜兮,孰云察余之善恶?

民好恶其不同兮,惟此党人其独异!

户服艾以盈要兮,谓幽兰其不可佩。

览察草木其犹未得兮,岂珵美之能当?

苏粪壤以充帏兮,谓申椒其不芳。

欲从灵氛之吉占兮,心犹豫而狐疑。

巫咸将夕降兮,怀椒糈而要之。

百神翳其备降兮,九疑缤其并迎。

皇剡剡其扬灵兮,告余以吉故。

曰:“勉升降以上下兮,求矩矱之所同。

汤、禹俨而求合兮,挚、咎繇而能调。

苟中情其好修兮,又何必用夫行媒?

说操筑於傅岩兮,武丁用而不疑。

吕望之鼓刀兮,遭周文而得举。

甯戚之讴歌兮,齐桓闻以该辅。

及年岁之未晏兮,时亦犹其未央。

恐鹈鴂之先鸣兮,使夫百草为之不芳。”

何琼佩之偃蹇兮,众薆然而蔽之。

惟此党人之不谅兮,恐嫉妒而折之。

时缤纷其变易兮,又何可以淹留?

兰芷变而不芳兮,荃蕙化而为茅。

何昔日之芳草兮,今直为此萧艾也?

岂其有他故兮,莫好修之害也!

余以兰为可恃兮,羌无实而容长。

委厥美以从俗兮,苟得列乎众芳。

椒专佞以慢慆兮,榝又欲充夫佩帏。

既干进而务入兮,又何芳之能祗?

固时俗之流从兮,又孰能无变化?

览椒兰其若兹兮,又况揭车与江离?

惟兹佩之可贵兮,委厥美而历兹。

芳菲菲而难亏兮,芬至今犹未沬。

和调度以自娱兮,聊浮游而求女。

及余饰之方壮兮,周流观乎上下。

灵氛既告余以吉占兮,历吉日乎吾将行。

折琼枝以为羞兮,精琼爢以为粻。

为余驾飞龙兮,杂瑶象以为车。

何离心之可同兮?吾将远逝以自疏。

邅吾道夫昆仑兮,路修远以周流。

扬云霓之晻蔼兮,鸣玉鸾之啾啾。

朝发轫於天津兮,夕余至乎西极。

凤皇翼其承旂兮,高翱翔之翼翼。

忽吾行此流沙兮,遵赤水而容与。

麾蛟龙使梁津兮,诏西皇使涉予。

路修远以多艰兮,腾众车使径待。

路不周以左转兮,指西海以为期。

 屯余车其千乘兮,齐玉轪而并驰。

驾八龙之婉婉兮,载云旗之委蛇。

抑志而弭节兮,神高驰之邈邈。

奏《九歌》而舞《韶》兮,聊假日以媮乐。

陟升皇之赫戏兮,忽临睨夫旧乡。

仆夫悲余马怀兮,蜷局顾而不行。

乱曰:已矣哉!国无人莫我知兮,又何怀乎故都!

既莫足与为美政兮,吾将从彭咸之所居!

九歌 东皇太一 

作者:屈原

吉日兮辰良,穆将愉兮上皇。

抚长剑兮玉珥,璆锵鸣兮琳琅。

瑶席兮玉瑱,盍将把兮琼芳。

蕙肴蒸兮兰藉,奠桂酒兮椒浆。

扬枹兮拊鼓,疏缓节兮安歌,陈竽瑟兮浩倡。

灵偃蹇兮姣服,芳菲菲兮满堂。

五音纷兮繁会,君欣欣兮乐康。

九歌 云中君 

作者:屈原

浴兰汤兮沐芳,华采衣兮若英。

灵连蜷兮既留,烂昭昭兮未央。

謇将憺兮寿宫,与日月兮齐光。

龙驾兮帝服,聊翱游兮周章。

灵皇皇兮既降,焱远举兮云中。

览冀州兮有馀,横四海兮焉穷。

思夫君兮太息,极劳心兮忡忡。

九歌 湘君 

作者:屈原

君不行兮夷犹,蹇谁留兮中洲?

美要眇兮宜修,沛吾乘兮桂舟。

令沅、湘兮无波,使江水兮安流。

望夫君兮未来,吹参差兮谁思?

驾飞龙兮北征,邅吾道兮洞庭。

薜荔柏兮蕙绸,荪桡兮兰旌。

望涔阳兮极浦,横大江兮扬灵。

扬灵兮未极,女婵媛兮为余太息!

横流涕兮潺湲,隐思君兮陫侧。

桂棹兮兰枻,斫冰兮积雪。

采薜荔兮水中,搴芙蓉兮木末。

心不同兮媒劳,恩不甚兮轻绝。

石濑兮浅浅,飞龙兮翩翩。

交不忠兮怨长,期不信兮告余以不閒。

朝骋骛兮江皋,夕弭节兮北渚。

鸟次兮屋上,水周兮堂下。

捐余玦兮江中,遗余佩兮澧浦。

采芳洲兮杜若,将以遗兮下女。

时不可兮再得,聊逍遥兮容与。

九歌 大司命 

作者:屈原

广开兮天门,纷吾乘兮玄云。

令飘风兮先驱,使涷雨兮洒尘。

君回翔兮以下,逾空桑兮从女。

纷总总兮九州,何寿夭兮在予!

高飞兮安翔,乘清气兮御阴阳。

吾与君兮齐速,导帝之兮九坑。

灵衣兮被被,玉佩兮陆离。

壹阴兮壹阳,众莫知兮余所为。

折疏麻兮瑶华,将以遗兮离居。

老冉冉兮既极,不浸近兮愈疏。

乘龙兮辚辚,高驰兮冲天。

结桂枝兮延伫,羌愈思兮愁人。

愁人兮奈何!原若今兮无亏。

固人命兮有当,孰离合兮可为?

九歌 少司命 

作者:屈原

秋兰兮麋芜,罗生兮堂下。

绿叶兮素枝,芳菲菲兮袭予。

夫人自有兮美子,荪何以兮愁苦?

秋兰兮青青,绿叶兮紫茎。

满堂兮美人,忽独与余兮目成。

入不言兮出不辞,乘回风兮载云旗。

悲莫悲兮生别离,乐莫乐兮新相知。

荷衣兮蕙带,儵而来兮忽而逝。

夕宿兮帝郊,君谁须兮云之际?

与女游兮九河,冲风至兮水扬波。

与女沐兮咸池,晞女发兮阳之阿。

望美人兮未来,临风怳兮浩歌。

孔盖兮翠旍,登九天兮抚彗星。

怂长剑兮拥幼艾,荪独宜兮为民正。

九歌 东君 

作者:屈原

暾将出兮东方,照吾槛兮扶桑。

抚余马兮安驱,夜皎皎兮既明。

驾龙辀兮乘雷,载云旗兮委蛇。

长太息兮将上,心低佪兮顾怀。

羌声色兮娱人,观者憺兮忘归。

縆瑟兮交鼓,箫锺兮瑶虡。

鸣篪兮吹竽,思灵保兮贤姱。

翾飞兮翠曾,展诗兮会舞。

应律兮合节,灵之来兮蔽日。

青云衣兮白霓裳,举长矢兮射天狼。

操余弧兮反沦降,援北斗兮酌桂浆。

撰余辔兮高驰翔,杳冥冥兮以东行。

九歌 河伯 

作者:屈原

与女游兮九河,冲风起兮横波。

乘水车兮荷盖,驾两龙兮骖螭。

登昆仑兮四望,心飞扬兮浩荡。

日将暮兮怅忘归,惟极浦兮寤怀。

鱼鳞屋兮龙堂,紫贝阙兮朱宫。

灵何为兮水中?乘白鼋兮逐文鱼,

与女游兮河之渚,流澌纷兮将来下。

子交手兮东行,送美人兮南浦。

波滔滔兮来迎,鱼邻邻兮媵予。

九歌 山鬼 

作者:屈原

若有人兮山之阿,被薜荔兮带女萝。

既含睇兮又宜笑,子慕予兮善窈窕。

乘赤豹兮从文狸,辛夷车兮结桂旗。

被石兰兮带杜衡,折芳馨兮遗所思。

余处幽篁兮终不见天,路险难兮独后来。

表独立兮山之上,云容容兮而在下。

杳冥冥兮羌昼晦,东风飘兮神灵雨。

留灵修兮憺忘归,岁既晏兮孰华予?

采三秀兮於山间,石磊磊兮葛蔓蔓。

怨公子兮怅忘归,君思我兮不得閒。

山中人兮芳杜若,饮石泉兮荫松柏。

君思我兮然疑作。

雷填填兮雨冥冥,猨啾啾兮又夜鸣。

风飒飒兮木萧萧,思公子兮徒离忧。

九歌 国殇 

作者:屈原

操吴戈兮披犀甲,车错毂兮短兵接。

旌蔽日兮敌若云,矢交坠兮土争先。

凌余阵兮躐余行,左骖殪兮右刃伤。

霾两轮兮絷四马,援玉枹兮击鸣鼓。

天时{封心}兮威灵怒,严杀尽兮弃原野。

出不入兮往不反,平原忽兮路超远。

带长剑兮挟秦弓,首身离兮心不惩。

诚既勇兮又以武,终刚强兮不可凌。

身既死兮神以灵,魂魄毅兮为鬼雄。

九歌 礼魂 

作者:屈原

成礼兮会鼓,传芭兮代舞。

姱女倡兮容与。

春兰兮秋菊,长无绝兮终古。

天问 

作者:屈原

曰遂古之初,谁传道之?

上下未形,何由考之?

冥昭瞢闇,谁能极之?

冯翼惟像,何以识之?

明明闇闇,惟时何为?

阴阳三合,何本何化?

圜则九重,孰营度之?

惟兹何功,孰初作之?

斡维焉系,天极焉加?

八柱何当,东南何亏?

九天之际,安放安属?

隅隈多有,谁知其数?

天何所沓?十二焉分?

日月安属?列星安陈?

出自汤谷,次于蒙汜。

自明及晦,所行几里?

夜光何德,死则又育?

厥利维何,而顾菟在腹?

女歧无合,夫焉取九子?

伯强何处?惠气安在?

何阖而晦?何开而明?

角宿未旦,曜灵安藏?

不任汩鸿,师何以尚之?

佥曰“何忧”,何不课而行之?

鸱龟曳衔,鲧何听焉?

顺欲成功,帝何刑焉?

永遏在羽山,夫何三年不施?

伯禹愎鲧,夫何以变化?

纂就前绪,遂成考功。

何续初继业,而厥谋不同?

洪泉极深,何以窴之?

地方九则,何以坟之?

河海应龙?何尽何历?

鲧何所营?禹何所成?

康回冯怒,墬何故以东南倾?

九州安错?川谷何洿?

东流不溢,孰知其故?

东西南北,其修孰多?

南北顺橢,其衍几何?

昆仑县圃,其居安在?

增城九重,其高几里?

四方之门,其谁从焉?

西北辟启,何气通焉?

日安不到?烛龙何照?

羲和之未扬,若华何光?

何所冬暖?何所夏寒?

焉有石林?何兽能言?

焉有虬龙、负熊以游?

雄虺九首,儵忽焉在?

何所不死?长人何守?

靡蓱九衢,枲华安居?

灵蛇吞象,厥大何如?

黑水、玄趾,三危安在?

延年不死,寿何所止?

鲮鱼何所?鬿堆焉处?

羿焉彃日?乌焉解羽?

禹之力献功,降省下土四方。

焉得彼嵞山女,而通之於台桑?

闵妃匹合,厥身是继。

胡为嗜不同味,而快朝饱?

启代益作后,卒然离蘻。

何启惟忧,而能拘是达?

皆归射鞠,而无害厥躬。

何后益作革,而禹播降?

启棘宾商,《九辨》、《九歌》。

何勤子屠母,而死分竟地?

帝降夷羿,革孽夏民。

胡射夫河伯,而妻彼雒嫔?

冯珧利决,封豨是射。

何献蒸肉之膏,而后帝不若?

浞娶纯狐,眩妻爰谋。

何羿之射革,而交吞揆之?

阻穷西征,岩何越焉?

化为黄熊,巫何活焉?

咸播秬黍,莆雚是营。

何由并投,而鲧疾修盈?

白蜺婴茀,胡为此堂?

安得夫良药,不能固臧?

天式从横,阳离爰死。

大鸟何鸣,夫焉丧厥体?

蓱号起雨,何以兴之?

撰体胁鹿,何以膺之?

鳌戴山抃,何以安之?

释舟陵行,何之迁之?

惟浇在户,何求于嫂?

何少康逐犬,而颠陨厥首?

女歧缝裳,而馆同爰止。

何颠易厥首,而亲以逢殆?

汤谋易旅,何以厚之?

覆舟斟寻,何道取之?

桀伐蒙山,何所得焉?

妹嬉何肆,汤何殛焉?

舜闵在家,父何以<鱼睘>?

尧不姚告,二女何亲?

厥萌在初,何所意焉?

璜台十成,谁所极焉?

登立为帝,孰道尚之?

女娲有体,孰制匠之?

舜服厥弟,终然为害。

何肆犬豕,而厥身不危败?

吴获迄古,南岳是止。

孰期去斯,得两男子?

缘鹄饰玉,后帝是飨。

何承谋夏桀,终以灭丧?

帝乃降观,下逢伊挚。

何条放致罚,而黎服大说?

简狄在台喾何宜?玄鸟致贻女何喜?

该秉季德,厥父是臧。

胡终弊于有扈,牧夫牛羊?

干协时舞,何以怀之?

平胁曼肤,何以肥之?

有扈牧竖,云何而逢?

击床先出,其命何从?

恒秉季德,焉得夫朴牛?

何往营班禄,不但还来?

昏微遵迹,有狄不宁。

何繁鸟萃棘,负子肆情?

眩弟并淫,危害厥兄。

何变化以作诈,而后嗣逢长?

成汤东巡,有莘爰极。

何乞彼小臣,而吉妃是得?

水滨之木,得彼小子。

夫何恶之,媵有莘之妇?

汤出重泉,夫何罪尤?

不胜心伐帝,夫谁使挑之?

会朝争盟,何践吾期?

苍鸟群飞,孰使萃之?

列击纣躬,叔旦不嘉。

何亲揆发,定周之命以咨嗟?

授殷天下,其位安施?

反成乃亡,其罪伊何?

争遣伐器,何以行之?

并驱击翼,何以将之?

昭后成游,南土爰底。

厥利惟何,逢彼白雉?

穆王巧挴,夫何周流?

环理天下,夫何索求?

妖夫曳衒,何号于市?

周幽谁诛?焉得夫褒姒?

天命反侧,何罚何佑?

齐桓九会,卒然身杀。

彼王纣之躬,孰使乱惑?

何恶辅弼,谗谄是服?

比干何逆,而抑沉之?

雷开何顺,而赐封之?

何圣人之一德,卒其异方:

梅伯受醢,箕子详狂?

稷维元子,帝何竺之?

投之於冰上,鸟何燠之?

何冯弓挟矢,殊能将之?

既惊帝切激,何逢长之?

伯昌号衰,秉鞭作牧。

何令彻彼岐社,命有殷国?

迁藏就岐,何能依?

殷有惑妇,何所讥?

受赐兹醢,西伯上告。

何亲就上帝罚,殷之命以不救?

师望在肆,昌何识?

鼓刀扬声,后何喜?

武发杀殷,何所悒?

载尸集战,何所急?

伯林雉经,维其何故?

何感天抑墬,夫谁畏惧?

皇天集命,惟何戒之?

受礼天下,又使至代之?

初汤臣挚,后兹承辅。

何卒官汤,尊食宗绪?

勋阖、梦生,少离散亡。

何壮武厉,能流厥严?

彭铿斟雉,帝何飨?

受寿永多,夫何久长?

中央共牧,后何怒?

蜂蛾微命,力何固?

惊女采薇,鹿何祐?

北至回水,萃何喜?

兄有噬犬,弟何欲?

易之以百两,卒无禄?

薄暮雷电,归何忧?

厥严不奉,帝何求?

伏匿穴处,爰何云?

荆勋作师,夫何长?

悟过改更,我又何言?

吴光争国,久余是胜。

何环穿自闾社丘陵,爰出子文?

吾告堵敖以不长。

何试上自予,忠名弥彰?

九章 惜诵 

作者:屈原

惜诵以致愍兮,发愤以抒情。

所作忠而言之兮,指苍天以为正。

令五帝以折中兮,戒六神与向服。

俾山川以备御兮,命咎繇使听直。

竭忠诚以事君兮,反离群而赘肬。

忘儇媚以背众兮,待明君其知之。

言与行其可迹兮,情与貌其不变。

故相臣莫若君兮,所以证之不远。

吾谊先君而后身兮,羌众人之所仇也。

专惟君而无他兮,又众兆之所雠也。

壹心而不豫兮,羌不可保也。

疾亲君而无他兮,有招祸之道也。

思君其莫我忠兮,忽忘身之贱贫。

事君而不贰兮,迷不知宠之门。

忠何罪以遇罚兮,亦非余心之所志。

行不群以巅越兮,又众兆之所咍。

纷逢尤以离谤兮,謇不可释也。

情沉抑而不达兮,又蔽而莫之白也。

心郁邑余侘傺兮,又莫察余之中情。

固烦言不可结诒兮,愿陈志而无路。

退静默而莫余知兮,进号呼又莫吾闻。

申侘傺之烦惑兮,中闷瞀之忳々。

昔余梦登天兮,魂中道而无杭。

吾使厉神占之兮,曰:“有志极而无旁。”

终危独以离异兮,曰君可思而不可恃。

故众口其铄金兮,初若是而逢殆。

惩於羹者而吹齑兮,何不变此志也?

欲释阶而登天兮,犹有曩之态也。

众骇遽以离心兮,又何以为此伴也?

同极而异路兮,又何以为此援也?

晋申生之孝子兮,父信谗而不好。

行婞直而不豫兮,鲧功用而不就。

吾闻作忠以造怨兮,忽谓之过言。

九折臂而成医兮,吾至今而知其信然。

矰弋机而在上兮,罻罗张而在下。

设张辟以娱君兮,愿侧身而无所。

欲儃佪以干傺兮,恐重患而离尤。

欲高飞而远集兮,君罔谓女何之?

欲横奔而失路兮,坚志而不忍。

背膺牉以交痛兮,心郁结而纡轸。

捣木兰以矫蕙兮,申椒以为粮。

播江离与滋菊兮,愿春日以为糗芳。

恐情质之不信兮,故重著以自明。

矫兹媚以私处兮,愿曾思而远身。

九章 涉江 

作者:屈原

余幼好此奇服兮,年既老而不衰。

带长铗之陆离兮,冠切云之崔嵬。

被明月兮珮宝璐,世溷浊而莫余知兮。

吾方高驰而不顾,驾青虬兮骖白螭。

吾与重华游兮瑶之圃,登昆仑兮食玉英。

与天地兮同寿,与日月兮齐光。

哀南夷之莫吾知兮,旦余济乎江、湘。

乘鄂渚而反顾兮,欸秋冬之绪风。

步余马兮山皋,邸余车兮方林。

乘舲船余上沅兮,齐吴榜以击汰。

船容与而不进兮,淹回水而凝滞。

朝发枉陼兮,夕宿辰阳。

苟余心其端直兮,虽僻远之何伤!

入溆浦余儃佪兮,迷不知吾所如。

深林杳以冥冥兮,乃猿狖之所居。

山峻高以蔽日兮,下幽晦以多雨。

霰雪纷其无垠兮,云霏霏而承宇。

哀吾生之无乐兮,幽独处乎山中。

吾不能变心而从俗兮,固将愁苦而终穷。

接舆髡首兮,桑扈臝行。

忠不必用兮,贤不必以。

伍子逢殃兮,比干菹醢。

与前世而皆然兮,吾又何怨乎今之人!

余将董道而不豫兮,固将重昏而终身。

乱曰:鸾鸟凤皇,日以远兮。

燕雀乌鹊,巢堂坛兮。

露申辛夷,死林薄兮。

腥臊并御,芳不得薄兮。

阴阳易位,时不当兮。

怀信侘傺,忽乎吾将行兮。

九章 哀郢 

作者:屈原

皇天之不纯命兮,何百姓之震愆?

民离散而相失兮,方仲春而东迁。

去故乡而就远兮,遵江、夏以流亡。

出国门而轸怀兮,甲之晁吾以行。

发郢都而去闾兮,怊荒忽其焉极?

楫齐扬以容与兮,哀见君而不再得。

望长楸而太息兮,涕淫淫其若霰。

过夏首而西浮兮,顾龙门而不见。

心婵媛而伤怀兮,眇不知其所蹠。

顺风波以从流兮,焉洋洋而为客。

凌阳侯之氾滥兮,忽翱翔之焉薄?

心絓结而不解兮,思蹇产而不释。

将运舟而下浮兮,上洞庭而下江。

去终古之所居兮,今逍遥而来东。

羌灵魂之欲归兮,何须臾而忘反!

背夏浦而西思兮,哀故都之日远。

登大坟以远望兮,聊以舒吾忧心。

哀州土之平乐兮,悲江介之遗风。

当陵阳之焉至兮,淼南渡之焉如?

曾不知夏之为丘兮,孰两东门之可芜?

心不怡之长久兮,忧与愁其相接。

惟郢路之遥远兮,江与夏之不可涉。

忽若去不信兮,至今九年而不复。

惨郁郁而不通兮,蹇侘傺而含慼。

外承欢之汋约兮,讠甚荏弱而难持。

忠湛湛而愿进兮,妒被离而鄣之。

尧、舜之抗行兮,了杳杳而薄天。

众谗人之嫉妒兮,被以不慈之伪名。

憎愠惀之修美兮,好夫人之忼慨。

众踥蹀而日进兮,美超远而逾迈。

乱曰:曼余目以流观兮,冀壹反之何时?

鸟飞反故乡兮,狐死必首丘。

信非吾罪而弃逐兮,何日夜而忘之?

九章 抽思 

作者:屈原

心郁郁之忧思兮,独永叹乎增伤。

思蹇产之不释兮,曼遭夜之方长。

悲秋风之动容兮,何回极之浮浮!

数惟荪之多怒兮,伤余心之忧忧。

愿摇起而横奔兮,览民尤以自镇。

结微情以陈辞兮,矫以遗夫美人。

昔君与我成言兮,曰:“黄昏以为期。”

羌中道而回畔兮,反既有此他志。

憍吾以其美好兮,览余以其修姱。

与余言而不信兮,盖为余而造怒。

愿承閒而自察兮,心震悼而不敢。

悲夷犹而冀进兮,心怛伤之憺々。

兹历情以陈辞兮,荪详聋而不闻。

固切人之不媚兮,众果以我为患。

初吾所陈之耿著兮,岂不至今其庸亡?

何独乐斯之蹇蹇兮?愿荪美之可完。

望三五以为像兮,指彭咸以为仪。

夫何极而不至兮,故远闻而难亏。

善不由外来兮,名不可以虚作。

孰无施而有报兮,孰不实而有获?

少歌曰:与美人抽怨兮,并日夜而无正。

憍吾以其美好兮,敖朕辞而不听。

倡曰:有鸟自南兮,来集汉北。

好姱佳丽兮,牉独处此异域。

既惸独而不群兮,又无良媒在其侧。

道卓远而日忘兮,愿自申而不得。

望北山而流涕兮,临流水而太息。

望孟夏之短夜兮,何晦明之若岁!

惟郢路之辽远兮,魂一夕而九逝。

曾不知路之曲直兮,南指月与列星。

愿径逝而不得兮,魂识路之营营。

何灵魂之信直兮,人之心不与吾心同!

理弱而媒不通兮,尚不知余之从容。

乱曰:长濑湍流,溯江潭兮。

狂顾南行,聊以娱心兮。

轸石崴嵬,蹇吾愿兮。

超回志度,行隐进兮。

低徊夷犹,宿北姑兮。

烦冤瞀容,实沛徂兮。

愁叹苦神,灵遥思兮。

路远处幽,又无行媒兮。

道思作颂,聊以自救兮。

忧心不遂,斯言谁告兮!

九章 怀沙 

作者:屈原

滔滔孟夏兮,草木莽莽。

伤怀永哀兮,汩沮南土。

眴兮杳杳,孔静幽默。

郁结纡轸兮,离愍而长鞠。

抚情效志兮,冤屈而自抑。

刓方以为圜兮,常度未替。

易初本迪兮,君子所鄙。

章画志墨兮,前图未改。

内厚质正兮,大人所晟。

巧倕不斫兮,孰察其拨正。

玄文处幽兮,矇瞍谓之不章。

离娄微睇兮,瞽谓之不明。

变白以为黑兮,倒上以为下。

凤皇在笯兮,鸡鹜翔舞。

同糅玉石兮,一概而相量。

夫惟党人鄙固兮,羌不知余之所臧。

任重载盛兮,陷滞而不济。

怀瑾握瑜兮,穷不知所示。

邑犬群吠兮,吠所怪也。

非俊疑杰兮,固庸态也。

文质疏内兮,众不知余之异采。

材朴委积兮,莫知余之所有。

重仁袭义兮,谨厚以为丰。

重华不可遻兮,孰知余之从容!

古固有不并兮,岂知何其故!

汤、禹久远兮,邈而不可慕。

惩连改忿兮,抑心而自强。

离慜而不迁兮,愿志之有像。

进路北次兮,日昧昧其将暮。

舒忧娱哀兮,限之以大故。

乱曰:浩浩沅、湘,分流汨兮。

修路幽蔽,道远忽兮。

怀质抱情,独无匹兮。

伯乐既没,骥焉程兮。

民生禀命,各有所错兮。

定心广志,余何畏惧兮!

曾伤爰哀,永叹喟兮。

世溷浊莫吾知,人心不可谓兮。

知死不可让,愿勿爱兮。

明告君子,吾将以为类兮。

九章 思美人 

作者:屈原

思美人兮,揽涕而伫眙。

媒绝路阻兮,言不可结而诒。

蹇蹇之烦冤兮,陷滞而不发。

申旦以舒中情兮,志沉菀而莫达。

愿寄言於浮云兮,遇丰隆而不将。

因归鸟而致辞兮,羌迅高而难当。

高辛之灵晟兮,遭玄鸟而致诒。

欲变节以从俗兮,媿易初而屈志。

独历年而离愍兮,羌冯心犹未化。

宁隐闵而寿考兮,何变易之可为。

知前辙之不遂兮,未改此度。

车既覆而马颠兮,蹇独怀此异路。

勒骐骥而更驾兮,造父为我操之。

迁逡次而勿驱兮,聊假日以须时。

指嶓冢之西隈兮,与纁黄以为期。

开春发岁兮,白日出之悠悠。

吾将荡志而愉乐兮,遵江、夏以娱忧。

揽大薄之芳茝兮,搴长洲之宿莽。

惜吾不及古人兮,吾谁与玩此芳草。

解萹薄与杂菜兮,备以为交佩。

佩缤纷以缭转兮,遂萎绝而离异。

吾且儃佪以娱忧兮,观南人之变态。

窃快在其中心兮,扬厥凭而不俟。

芳与泽其杂糅兮,羌芳华自中出。

纷郁郁其远蒸兮,满内而外扬。

情与质信可保兮,羌居蔽而闻章。

令薜荔以为理兮,惮举趾而缘木。

因芙蓉而为媒兮,惮褰裳而濡足。

登高吾不说兮,入下吾不能。

固朕形之不服兮,然容与而狐疑。

广遂前画兮,未改此度也。

命则处幽吾将罢兮,愿及白日之未暮也。

独茕茕而南行兮,思彭咸之故也。

九章 惜往日 

作者:屈原

惜往日之曾信兮,受命诏以昭诗。

奉先功以照下兮,明法度之嫌疑。

国富强而法立兮,属贞臣而日娭。

秘密事之载心兮,虽过失犹弗治。

心纯厖而不泄兮,遭谗人而嫉之。

君含怒而待臣兮,不清澂其然否。

蔽晦君之聪明兮,虚惑误又以欺。

弗参验以考实兮,远迁臣而弗思。

信谗谀之溷浊兮,晟气志而过之。

何贞臣之无罪兮,被讟谤而见尤!

惭光景之诚信兮,身幽隐而备之。

临沅、湘之玄渊兮,遂自忍而沉流。

卒没身而绝名兮,惜廱君之不昭。

君无度而弗察兮,使芳草为薮幽。

焉舒情而抽信兮,恬死亡而不聊。

独鄣廱而蔽隐兮,使贞臣为无由。

闻百里之为虏兮,伊尹烹於庖厨。

吕望屠於朝歌兮,甯戚歌而饭牛。

不逢汤、武与桓、缪兮,世孰云而知之!

吴信谗而弗味兮,子胥死而后忧。

介子忠而立枯兮,文君寤而追求;

封介山而为之禁兮,报大德之优游。

思久故之亲身兮,因缟素而哭之。

或忠信而死节兮,或訑谩而不疑。

弗省察而按实兮,听谗人之虚辞。

芳与泽其杂糅兮,孰申旦而别之?

何芳草之早殀兮,微霜降而下戒。

谅聪不明而蔽廱兮,使谗谀而日得。

自前世之嫉贤兮,谓蕙若其不可佩。

妒佳冶之芬芳兮,嫫母姣而自好。

虽有西施之美容兮,谗妒入以自代。

愿陈情以白行兮,得罪过之不意。

情冤见之日明兮,如列宿之错置。

乘骐骥而驰骋兮,无辔衔而自载。

乘氾泭以下流兮,无舟楫而自备。

背法度而心治兮,辟与此其无异。

宁溘死而流亡兮,恐祸殃之有再。

不毕辞而赴渊兮,惜廱君之不识。

九章 橘颂 

作者:屈原

后皇嘉树,橘徕服兮。

受命不迁,生南国兮。

深固难徙,更壹志兮。

绿叶素荣,纷其可喜兮。

曾枝剡棘,圆果抟兮。

青黄杂糅,文章烂兮。

精色内白,类任道兮。

纷缊宜修,姱而不丑兮。

嗟尔幼志,有以异兮。

独立不迁,岂不可喜兮。

深固难徙,廓其无求兮。

苏世独立,横而不流兮。

闭心自慎,不终失过兮。

秉德无私,参天地兮。

愿岁并谢,与长友兮。

淑离不淫,梗其有理兮。

年岁虽少,可师长兮。

行比伯夷,置以为像兮。

九章 悲回风 

作者:屈原

悲回风之摇蕙兮,心冤结而内伤。

物有微而陨性兮,声有隐而先倡。

夫何彭咸之造思兮,暨志介而不忘!

万变其情岂可盖兮,孰虚伪之可长!

鸟兽鸣以号群兮,草苴比而不芳。

鱼葺鳞以自别兮,蛟龙隐其文章。

故荼荠不同亩兮,兰茝幽而独芳。

惟佳人之永都兮,更统世而自贶。

眇远志之所及兮,怜浮云之相羊。

介眇志之所惑兮,窃赋诗之所明。

惟佳人之独怀兮,折若椒以自处。

曾歔欷之嗟嗟兮,独隐伏而思虑。

涕泣交而凄凄兮,思不眠以至曙。

终长夜之曼曼兮,掩此哀而不去。

寤从容以周流兮,聊逍遥以自恃。

伤太息之愍怜兮,气於邑而不可止。

糺思心以为纕兮,编愁苦以为膺。

折若木以蔽光兮,随飘风之所仍。

存仿佛而不见兮,心踊跃其若汤。

抚珮衽以案志兮,超惘惘而遂行。

岁曶曶其若颓兮,时亦冉冉而将至。

薠蘅槁而节离兮,芳以歇而不比。

怜思心之不可惩兮,证此言之不可聊。

宁溘死而流亡兮,不忍此心之常愁。

孤子吟而抆泪兮,放子出而不还。

孰能思而不隐兮,照彭咸之所闻。

登石峦以远望兮,路眇眇之默默。

入景响之无应兮,闻省想而不可得。

愁郁郁之无快兮,居戚戚而不可解。

心鞿羁而不开兮,气缭转而自缔。

穆眇眇之无垠兮,莽芒芒之无仪。

声有隐而相感兮,物有纯而不可为。

邈蔓蔓之不可量兮,缥绵绵之不可纡。

愁悄悄之常悲兮,翩冥冥之不可娱。

凌大波而流风兮,讬彭咸之所居。

上高岩之峭岸兮,处雌蜺之标颠。

据青冥而摅虹兮,遂儵忽而扪天。

吸湛露之浮凉兮,漱凝霜之雰雰。

依风穴以自息兮,忽倾寤以婵媛。

冯昆仑以瞰雾兮,隐岷山以清江。

惮涌湍之礚々兮,听波声之汹汹。

纷容容之无经兮,罔芒芒之无纪。

轧洋洋之无从兮,驰委移之焉止。

漂翻翻其上下兮,翼遥遥其左右。

氾潏潏其前后兮,伴张驰之信期。

观炎气之相仍兮,窥烟液之所积。

悲霜雪之俱下兮,听潮水之相击。

借光景以往来兮,施黄棘之枉策。

求介子之所存兮,见伯夷之放迹。

心调度而弗去兮,刻著志之无適。

曰:吾怨往昔之所冀兮,悼来者之悐々。

浮江、淮而入海兮,从子胥而自適。

望大河之洲渚兮,悲申徒之抗迹。

骤谏君而不听兮,重任石之何益!

心絓结而不解兮,思蹇产而不释。

远游 

作者:不详

悲时俗之迫厄兮,愿轻举而远游。

质菲薄而无因兮,焉讬乘而上浮?

遭沉浊而汙秽兮,独郁结其谁语!

夜耿耿而不寐兮,魂营营而至曙。

惟天地之无穷兮,哀人生之长勤。

往者余弗及兮,来者吾不闻。

步徒倚而遥思兮,怊惝怳而乖怀。

意荒忽而流荡兮,心愁悽而增悲。

神儵忽而不反兮,形枯槁而独留。

内惟省以端操兮,求正气之所由。

漠虚静以恬愉兮,澹无为而自得。

闻赤松之清尘兮,愿承风乎遗则。

贵真人之休德兮,美往世之登仙。

与化去而不见兮,名声著而日延。

奇傅说之讬辰星兮,羡韩众之得一。

形穆穆以浸远兮,离人群而遁逸。

因气变而遂曾举兮,忽神奔而鬼怪。

时仿佛以遥见兮,精皎皎以往来。

超氛埃而淑垂阝兮,终不反其故都。

免众患而不惧兮,世莫知其所如。

恐天时之代序兮,耀灵晔而西征。

微霜降而下沦兮,悼芳草之先蘦。

聊仿佯而逍遥兮,永历年而无成!

谁可与玩斯遗芳兮?长乡风而舒情。

高阳邈以远兮,余将焉所程?

重曰:春秋忽其不淹兮,奚久留此故居?

轩辕不可攀援兮,吾将从王乔而娱戏!

餐六气而饮沆瀣兮,漱正阳而含朝霞。

保神明之清澄兮,精气入而粗秽除。

顺凯风以从游兮,至南巢而壹息。

见王子而宿之兮,审壹气之和德。

曰:“道可受兮,不可传;

其小无内兮,其大无垠;

毋滑而魂兮,彼将自然;

壹气孔神兮,於中夜存;

虚以待之兮,无为之先;

庶类以成兮,此德之门。”

闻至贵而遂徂兮,忽乎吾将行。

仍羽人於丹丘兮,留不死之旧乡。

朝濯发於汤谷兮,夕晞余身兮九阳。

吸飞泉之微液兮,怀琬琰之华英。

玉色頩以脕颜兮,精醇粹而始壮。

质销铄以汋约兮,神要眇以淫放。

嘉南州之炎德兮,丽桂树之冬荣。

山萧条而无兽兮,野寂漠其无人。

载营魄而登霞兮,掩浮云而上征。

命天阍其开关兮,排阊阖而望予。

召丰隆使先导兮,问大微之所居。

集重阳入帝宫兮,造旬始而观清都。

朝发轫於太仪兮,夕始临乎於微闾。

 屯余车之万乘兮,纷容与而并驰。

驾八龙之婉婉兮,载云旗之逶蛇。

建雄虹之采旄兮,五色杂而炫耀。

服偃蹇以低昂兮,骖连蜷以骄骜。

骑胶葛以杂乱兮,斑漫衍而方行;

撰余辔而正策兮,吾将过乎句芒。

历太皓以右转兮,前飞廉以启路。

阳杲杲其未光兮,凌天地以径度。

风伯为余先驱兮,氛埃辟而清凉。

凤凰翼其承旂兮,遇蓐收乎西皇。

揽彗星以为旍兮,举斗柄以为麾。

叛陆离其上下兮,游惊雾之流波。

时暧曃其曭莽兮,召玄武而奔属。

后文昌使掌行兮,选署众神以并毂。

路曼曼其修远兮,徐弭节而高厉。

左雨师使径待兮,右雷公以为卫。

欲度世以忘归兮,意恣睢以担挢。

内欣欣而自美兮,聊媮娱以淫乐。

涉青云以汎滥游兮,忽临睨夫旧乡。

仆夫怀余心悲兮,边马顾而不行。

思旧故以想像兮,长太息而掩涕。

汜容与而遐举兮,聊抑志而自弭。

指炎神而直驰兮,吾将往乎南疑。

览方外之荒忽兮,沛罔瀁而自浮。

祝融戒而跸御兮,腾告鸾鸟迎宓妃。

张《咸池》奏《承云》兮,二女御《九韶》歌。

使湘灵鼓瑟兮,令海若舞冯夷。

玄螭虫象并出进兮,形蟉虬而逶蛇。

雌蜺便娟以增挠兮,鸾鸟轩翥而翔飞。

音乐博衍无终极兮,焉乃逝以徘徊。

舒并节以驰骛兮,逴绝垠乎寒门。

轶迅风於清源兮,从颛顼乎增冰。

历玄冥以邪径兮,乘閒维以反顾。

召黔嬴而见之兮,为余先乎平路。

经营四荒兮,周流六漠:

上至列缺兮,降望大壑。

下峥嵘而无地兮,上寥廓而无天。

视儵忽而无见兮,听惝怳而无闻。

超无为以至清兮,与泰初而为邻。

卜居 

作者:不详

屈原既放,三年不得复见,竭知尽忠,而蔽鄣於谗,心烦虑乱,不知所从。

乃往见太卜郑詹尹曰:“余有所疑,愿因先生决之。”詹尹乃端策拂龟曰:“君

将何以教之?”屈原曰:

“吾宁悃悃款款,朴以忠乎?

将送往劳来,斯无穷乎?

宁诛锄草茅,以力耕乎?

将游大人,以成名乎?

宁正言不讳,以危身乎?

将从俗富贵,以媮生乎?

宁超然高举,以保真乎?

将哫訾栗斯,喔咿嚅皃,以事妇人乎?

宁廉洁正直,以自清乎?

将突梯滑稽,如脂如韦,以洁楹乎?

宁昂昂若千里之驹乎?

将氾氾若水中之凫,

与波上下,偷以全吾躯乎?

宁与骐骥亢轭乎?将随驽马之迹乎?

宁与黄鹄比翼乎?将与鸡鹜争食乎?

此孰吉孰凶?何去何从?

世溷浊而不清:

蝉翼为重,千钧为轻;黄钟毁弃,瓦釜雷鸣;

谗人高张,贤士无名。

吁嗟默默兮,谁知吾之廉贞?”

詹尹乃释策而谢曰:“夫尺有所短,寸有所长,物有所不足,智有所不明,

数有所不逮,神有所不通,用君之心,行君之意。龟策诚不能知事。”

渔父 

作者:不详

屈原既放,游於江潭,行吟泽畔,颜色憔悴,形容枯槁。渔父见而问之曰:

“子非三闾大夫与?何故至於斯!”

屈原曰:“举世皆浊我独清,众人皆醉我独醒,是以见放!”

渔父曰:“圣人不凝滞於物,而能与世推移。

世人皆浊,何不淈其泥而扬其波?

众人皆醉,何不餔其糟而歠其酾?

何故深思高举,自令放为?”

屈原曰:“吾闻之,新沐者必弹冠,新浴者必振衣;

安能以身之察察,受物之汶汶者乎!

宁赴湘流,葬於江鱼之腹中。

安能以皓皓之白,而蒙世俗之尘埃乎!”

渔父莞尔而笑,鼓枻而去,乃歌曰:

“沧浪之水清兮,可以濯吾缨。

沧浪之水浊兮,可以濯吾足。”

遂去不复与言。

九辩 

作者:宋玉

悲哉!秋之为气也。

萧瑟兮,草木摇落而变衰。

憭栗兮,若在远行。

登山临水兮,送将归。

泬寥兮,天高而气清;寂寥兮,收潦而水清。

憯悽增欷兮,薄寒之中人;

怆怳懭悢兮,去故而就新;

坎廪兮,贫士失职而志不平;

廓落兮,羁旅而无友生;惆怅兮,而私自怜。

燕翩翩其辞归兮,蝉寂漠而无声。

雁廱廱而南游兮,鹍鸡啁哳而悲鸣。

独申旦而不寐兮,哀蟋蟀之宵征。

时亹亹而过中兮,蹇淹留而无成。

悲忧穷戚兮独处廓,有美一人兮心不绎;

去乡离家兮徕远客,超逍遥兮今焉薄!

专思君兮不可化,君不知兮可奈何!

蓄怨兮积思,心烦憺兮忘食事。

愿一见兮道余意,君之心兮与余异。

车既驾兮朅而归,不得见兮心伤悲。

倚结軨兮长太息,涕潺湲兮下霑轼。

慷慨绝兮不得,中瞀乱兮迷惑。

私自怜兮何极?心怦怦兮谅直。

皇天平分四时兮,窃独悲此廪秋。

白露既下百草兮,奄离披此梧楸。

去白日之昭昭兮,袭长夜之悠悠。

离芳蔼之方壮兮,余萎约而悲愁。

秋既先戒以白露兮,冬又申之以严霜。

收恢台之孟夏兮,然欿傺而沉藏。

叶菸邑而无色兮,枝烦挐而交横。

颜淫溢而将罢兮,柯仿佛而萎黄。

萷櫹椮之可哀兮,形销铄而瘀伤。

惟其纷糅而将落兮,恨其失时而无当。

揽騑辔而下节兮,聊逍遥以相佯。

岁忽忽而遒尽兮,恐余寿之弗将。

悼余生之不时兮,逢此世之俇攘。

澹容与而独倚兮,蟋蟀鸣此西堂。

心怵惕而震荡兮,何所忧之多方。

卬明月而太息兮,步列星而极明。

窃悲夫蕙华之曾敷兮,纷旖旎乎都房。

何曾华之无实兮,从风雨而飞飏!

以为君独服此蕙兮,羌无以异於众芳。

闵奇思之不通兮,将去君而高翔。

心闵怜之惨悽兮,愿一见而有明。

重无怨而生离兮,中结轸而增伤。

岂不郁陶而思君兮?君之门以九重!

猛犬狺狺而迎吠兮,关梁闭而不通。

皇天淫溢而秋霖兮,后土何时而得漧?

块独守此无泽兮,仰浮云而永叹!

何时俗之工巧兮?背绳墨而改错!

郤骐骥而不乘兮,策驽骀而取路。

当世岂无骐骥兮,诚莫之能善御。

见执辔者非其人兮,故驹跳而远去。

凫雁皆唼夫梁藻兮,凤愈飘翔而高举。

圜凿而方枘兮,吾固知其鉏铻而难入。

众鸟皆有所登栖兮,凤独遑遑而无所集。

愿衔枚而无言兮,尝被君之渥洽。

太公九十乃显荣兮,诚未遇其匹合。

谓骐骥兮安归?谓凤皇兮安栖?

变古易俗兮世衰,今之相者兮举肥。

骐骥伏匿而不见兮,凤皇高飞而不下。

鸟兽犹知怀德兮,何云贤士之不处?

骥不骤进而求服兮,凤亦不贪餧而妄食。

君弃远而不察兮,虽愿忠其焉得?

欲寂漠而绝端兮,窃不敢忘初之厚德。

独悲愁其伤人兮,冯郁郁其何极?

霜露惨悽而交下兮,心尚幸其弗济。

霰雪雰糅其增加兮,乃知遭命之将至。

愿徼幸而有待兮,泊莽莽与野草同死。

愿自直而径往兮,路壅绝而不通。

欲循道而平驱兮,又未知其所从。

然中路而迷惑兮,自厌按而学诵。

性愚陋以褊浅兮,信未达乎从容。

窃美申包胥之气晟兮,恐时世之不固。

何时俗之工巧兮?灭规矩而改凿!

独耿介而不随兮,愿慕先圣之遗教。

处浊世而显荣兮,非余心之所乐。

与其无义而有名兮,宁穷处而守高。

食不媮而为饱兮,衣不苟而为温。

窃慕诗人之遗风兮,愿讬志乎素餐。

蹇充倔而无端兮,泊莽莽而无垠。

无衣裘以御冬兮,恐溘死不得见乎阳春。

靓杪秋之遥夜兮,心缭悷而有哀。

春秋逴逴而日高兮,然惆怅而自悲。

四时递来而卒岁兮,阴阳不可与俪偕。

白日<日宛>晚其将入兮,明月销铄而减毁。

岁忽忽而遒尽兮,老冉冉而愈弛。

心摇悦而日幸兮,然怊怅而无冀。

中憯恻之悽怆兮,长太息而增欷。

年洋洋以日往兮,老嵺廓而无处。

事亹亹而觊进兮,蹇淹留而踌躇。

何氾滥之浮云兮?猋廱蔽此明月。

忠昭昭而愿见兮,然霠曀而莫达。

愿皓日之显行兮,云蒙蒙而蔽之。

窃不自料而愿忠兮,或黕点而汙之。

尧舜之抗行兮,了冥冥而薄天。

何险巇之嫉妒兮?被以不慈之伪名。

彼日月之照明兮,尚黯黮而有瑕。

何况一国之事兮,亦多端而胶加。

被荷裯之晏晏兮,然潢洋而不可带。

既骄美而伐武兮,负左右之耿介。

憎愠惀之修美兮,好夫人之慷慨。

众踥蹀而日进兮,美超远而逾迈。

农夫辍耕而容与兮,恐田野之芜秽。

事绵绵而多私兮,窃悼后之危败。

世雷同而炫曜兮,何毁誉之昧昧!

今修饰而窥镜兮,后尚可以窜藏。

愿寄言夫流星兮,羌儵忽而难当。

卒廱蔽此浮云,下暗漠而无光。

尧舜皆有所举任兮,故高枕而自適。

谅无怨於天下兮,心焉取此怵惕?

乘骐骥之浏浏兮,驭安用夫强策?

谅城郭之不足恃兮,虽重介之何益?

邅翼翼而无终兮,忳惛々而愁约。

生天地之若过兮,功不成而无效。

愿沉滞而不见兮,尚欲布名乎天下。

然潢洋而不遇兮,直怐而自苦。

莽洋洋而无极兮,忽翱翔之焉薄?

国有骥而不知乘兮,焉皇皇而更索?

甯戚讴於车下兮,桓公闻而知之。

无伯乐之相善兮,今谁使乎誉之?

罔流涕以聊虑兮,惟著意而得之。

纷纯纯之愿忠兮,妒被离而鄣之。

愿赐不肖之躯而别离兮,放游志乎云中。

乘精气之抟抟兮,骛诸神之湛湛。

骖白霓之習習兮,历群灵之丰丰。

左朱雀之茇茇兮,右苍龙之躣々。

属雷师之阗阗兮,通飞廉之衙衙。

前轻辌之锵锵兮,后辎乘之从从。

载云旗之委蛇兮,扈屯骑之容容。

计专专之不可化兮,愿遂推而为臧。

赖皇天之厚德兮,还及君之无恙。

招魂 

作者:屈原

朕幼清以廉洁兮,身服义而未沬。

主此盛德兮,牵於俗而芜秽。

上无所考此盛德兮,长离殃而愁苦。

帝告巫阳曰:“有人在下,我欲辅之。

魂魄离散,汝筮予之。”

巫阳对曰:“掌梦上帝其命难从。

若必筮予之,恐后之谢,不能复用巫阳焉。”

乃下招曰:魂兮归来!

去君之恒幹,何为乎四方些?

舍君之乐处,而离彼不祥些。

魂兮归来!东方不可以讬些。

长人千仞,惟魂是索些。

十日代出,流金铄石些。

彼皆習之,魂往必释些。

归来归来!不可以讬些。

魂兮归来!南方不可以止些。

雕题黑齿,得人肉以祀,以其骨为醢些。

蝮蛇蓁蓁,封狐千里些。

雄虺九首,往来鯈忽,吞人以益其心些。

归来归来!不可以久淫些。

魂兮归来!西方之害,流沙千里些。

旋入雷渊,爢散而不可止些。

幸而得脱,其外旷宇些。

赤蚁若象,玄蜂若壸些。

五谷不生,藂菅是食些。

其土烂人,求水无所得些。

彷徉无所倚,广大无所极些。

归来归来!恐自遗贼些。

魂兮归来!北方不可以止些。

增冰峨峨,飞雪千里些。

归来归来!不可以久些。

魂兮归来!君无上天些。

虎豹九关,啄害下人些。

一夫九首,拔木九千些。

豺狼从目,往来侁々些。

悬人以娭,投之深渊些。

致命於帝,然后得瞑些。

归来归来!往恐危身些。

魂兮归来!君无下此幽都些。

土伯九约,其角觺々些。

敦脄血拇,逐人駓々些。

参目虎首,其身若牛些。

此皆甘人,归来归来!恐自遗灾些。

魂兮归来!入修门些。

工祝招君,背行先些。

秦篝齐缕,郑绵络些。

招具该备,永啸呼些。

魂兮归来!反故居些。

天地四方,多贼奸些。

像设君室,静閒安些。

高堂邃宇,槛层轩些。

层台累榭,临高山些。

网户朱缀,刻方连些。

冬有穾厦,夏室寒些。

川谷径复,流潺湲些。

光风转蕙,汜崇兰些。

经堂入奥,朱尘筵些。

砥室翠翘,挂曲琼些。

翡翠珠被,烂齐光些。

蒻阿拂壁,罗帱张些。

纂组绮缟,结琦璜些。

室中之观,多珍怪些。

兰膏明烛,华容备些。

二八侍宿,射递代些。

九侯淑女,多迅众些。

盛鬋不同制,实满宫些。

容态好比,顺弥代些。

弱颜固植,謇其有意些。

姱容脩态,縆洞房些。

蛾眉曼睩,目腾光些。

靡颜腻理,遗视矊些。

离榭脩幕,侍君之閒些。

翡帷翠帐,饰高堂些。

红壁沙版,玄玉之梁些。

仰观刻桷,画龙蛇些。

坐堂伏槛,临曲池些。

芙蓉始发,杂芰荷些。

紫茎屏风,文缘波些。

文异豹饰,侍陂陁些。

轩辌既低,步骑罗些。

兰薄户树,琼木篱些。

魂兮归来!何远为些?

室家遂宗,食多方些。

稻粢穱麦,挐黄粱些。

大苦咸酸,辛甘行些。

肥牛之腱,臑若芳些。

和酸若苦,陈吴羹些。

胹鳖炮羔,有柘浆些。

鹄酸臇凫,煎鸿鸧些。

露鸡臛蠵,厉而不爽些。

粔籹蜜饵,有餦餭些。

瑶浆蜜勺,实羽觞些。

挫糟冻饮,酎清凉些。

华酌既陈,有琼浆些。

归反故室,敬而无妨些。

肴羞未通,女乐罗些。

陈锺按鼓,造新歌些。

《涉江》、《采菱》,发《扬荷》些。

美人既醉,朱颜酡些。

娭光眇视,目曾波些。

被文服纤,丽而不奇些。

长发曼鬋,艳陆离些。

二八齐容,起郑舞些。

衽若交竿,抚案下些。

竽瑟狂会,搷鸣鼓些。

宫庭震惊,发《激楚》些。

吴歈蔡讴,奏大吕些。

士女杂坐,乱而不分些。

放陈攵组缨,班其相纷些。

郑、卫妖玩,来杂陈些。

《激楚》之结,独秀先些。

菎蔽象棋,有六簙些。

分曹并进,遒相迫些。

成枭而牟,呼五白些。

晋制犀比,费白日些。

铿锺摇虡,揳梓瑟些。

娱酒不废,沉日夜些。

兰膏明烛,华钅登错些。

结撰至思,兰芳假些。

人有所极,同心赋些。

酎饮尽欢,乐先故些。

魂兮归来!反故居些。

乱曰:献岁发春兮,汨吾南征。

菉蘋齐叶兮,白芷生。

路贯庐江兮,左长薄。

倚沼畦瀛兮,遥望博。

青骊结驷兮,齐千乘,悬火延起兮,玄颜烝。

步及骤处兮,诱骋先,抑骛若通兮,引车右还。

与王趋梦兮,课后先。

君王亲发兮,惮青兕。

朱明承夜兮,时不可淹。

皋兰被径兮,斯路渐。

湛湛江水兮,上有枫。

目极千里兮,伤春心。

魂兮归来,哀江南。

大招 

作者:不详

青春受谢,白日昭只。

春气奋发,万物遽只。

冥凌氵夹行,魂无逃只。

魂魄归徕!无远遥只。

魂乎归徕!无东无西,无南无北只。

东有大海,溺水浟々只。

螭龙并流,上下悠悠只。

雾雨淫淫,白皓胶只。

魂乎无东!汤谷寂寥只。

魂乎无南!南有炎火千里,蝮蛇蜒只。

山林险隘,虎豹蜿只。

鰅鳙短狐,王虺骞只。

魂乎无南!蜮伤躬只。

魂乎无西!西方流沙,漭洋洋只。

豕首纵目,被发鬤只。

长爪踞牙,讠矣笑狂只。

魂乎无西!多害伤只。

魂乎无北!北有寒山,逴龙赩只。

代水不可涉,深不可测只。

天白颢颢,寒凝凝只。

魂乎无往!盈北极只。

魂魄归徕!间以静只。

自恣荆楚,安以定只。

逞志究欲,心意安只。

穷身永乐,年寿延只。

魂乎归徕!乐不可言只。

五穀六仞,设菰粱只。

鼎臑盈望,和致芳只。

内鸧鸽鹄,味豺羹只。

魂乎归徕!恣所尝只。

鲜蠵甘鸡,和楚酪只。

醢豚苦狗,脍苴蓴只。

吴酸蒿蒌,不沾薄只。

魂兮归徕!恣所择只。

炙鸹烝凫,煔鹑陈攵只。

煎鰿<月隺>雀,遽爽存只。

魂乎归徕!丽以先只。

四酎并孰,不涩嗌只。

清馨冻饮,不歠役只。

吴醴白糵,和楚沥只。

魂乎归徕!不遽惕只。

代、秦、郑、卫,鸣竽张只。

伏戏《驾辩》,楚《劳商》只。

讴和《扬阿》,赵箫倡只。

魂乎归徕!定空桑只。

二八接舞,投诗赋只。

叩锺调磬,娱人乱只。

四上竞气,极声变只。

魂乎归徕!听歌譔只。

朱唇皓齿,嫭以姱只。

比德好閒,習以都只。

丰肉微骨,调以娱只。

魂乎归徕!安以舒只。

嫮目宜笑,蛾眉曼只。

容则秀雅,稚朱颜只。

魂乎归徕!静以安只。

姱脩滂浩,丽以佳只。

曾颊倚耳,曲眉规只。

滂心绰态,姣丽施只。

小腰秀颈,若鲜卑只。

魂乎归徕!思怨移只。

易中利心,以动作只。

粉白黛黑,施芳泽只。

长袂拂面,善留客只。

魂乎归徕!以娱昔只。

青色直眉,美目媔只。

靥辅奇牙,宜笑嘕只。

丰肉微骨,体便娟只。

魂乎归徕!恣所便只。

夏屋广大,沙堂秀只。

南房小坛,观绝霤只。

曲屋步壛,宜扰畜只。

腾驾步游,猎春囿只。

琼毂错衡,英华假只。

茝兰桂树,郁弥路只。

魂乎归徕!恣志虑只。

孔雀盈园,畜鸾皇只。

鹍鸿群晨,杂鹙鸧只。

鸿鹄代游,曼鹔鹴只。

魂乎归徕!凤皇翔只。

曼泽怡面,血气盛只。

永宜厥身,保寿命只。

室家盈廷,爵禄盛只。

魂乎归徕!居室定只。

接径千里,出若云只。

三圭重侯,听类神只。

察笃夭隐,孤寡存只。

魂乎归徕!正始昆只。

田邑千畛,人阜昌只。

美冒众流,德泽章只。

先威后文,善美明只。

魂乎归徕!赏罚当只。

名声若日,照四海只。

德誉配天,万民理只。

北至幽陵,南交阯只。

西薄羊肠,东穷海只。

魂乎归徕!尚贤士只。

发政献行,禁苛暴只。

举杰压陛,诛讥罢只。

直赢在位,近禹麾只。

豪杰执政,流泽施只。

魂乎归徕,国家为只。

雄雄赫赫,天德明只。

三公穆穆,登降堂只。

诸侯毕极,立九卿只。

昭质既设,大侯张只。

执弓挟矢,揖辞让只。

魂乎徕归!尚三王只。

惜誓 

作者:不详

惜余年老而日衰兮,岁忽忽而不反。

登苍天而高举兮,历众山而日远。

观江河之纡曲兮,离四海之霑濡。

攀北极而一息兮,吸沆瀣以充虚。

飞朱鸟使先驱兮,驾太一之象舆。

苍龙蚴虬於左骖兮,白虎骋而为右騑。

建日月以为盖兮,载玉女於后车。

驰骛於杳冥之中兮,休息虖昆仑之墟。

乐穷极而不厌兮,愿从容虖神明。

涉丹水而驼骋兮,右大夏之遗风。

黄鹄之一举兮,知山川之纡曲。

再举兮,睹天地之圜方。

临中国之众人兮,讬回飙乎尚羊。

乃至少原之野兮,赤松、王乔皆在旁。

二子拥瑟而调均兮,余因称乎清商。

澹然而自乐兮,吸众气而翱翔。

念我长生而久仙兮,不如反余之故乡。

黄鹄后时而寄处兮,鸱枭群而制之。

神龙失水而陆居兮,为蝼蚁之所裁。

夫黄鹄神龙犹如此兮,况贤者之逢乱世哉。

寿冉冉而日衰兮,固儃回而不息。

俗流从而不止兮,众枉聚而矫直。

或偷合而苟进兮,或隐居而深藏。

苦称量之不审兮,同权概而就衡。

或推迻而苟容兮,或直言之谔谔。

伤诚是之不察兮,并纫茅丝以为索。

方世俗之幽昏兮,眩白黑之美恶。

放山渊之龟玉兮,相与贵夫砾石。

梅伯数谏而至醢兮,来革顺志而用国。

悲仁人之尽节兮,反为小人之所贼。

比干忠谏而剖心兮,箕子被发而佯狂。

水背流而源竭兮,木去根而不长。

非重躯以虑难兮,惜伤身之无功。

已矣哉!独不见夫鸾凤之高翔兮,乃集大皇之野。

循四极而回周兮,见盛德而后下。

彼圣人之神德兮,远浊世而自藏。

使麒麟可得羁而係兮,又何以异虖犬羊?

招隐士 

作者:淮南小山

桂树丛生兮山之幽,偃蹇连蜷兮枝相缭。

山气巃嵸兮石嵯峨,谿谷崭岩兮水曾波。

猿狖群啸兮虎豹嗥,攀援桂枝兮聊淹留。

王孙游兮不归,春草生兮萋萋。

岁暮兮不自聊,蟪蛄鸣兮啾啾。

坱兮轧,山曲<山弗>,心淹留兮恫慌忽。

罔兮沕,憭兮栗,虎豹穴。

丛薄深林兮,人上栗。

嵚岑碕礒兮碅磳磈硊,树轮相纠兮林木茷骫。

青莎杂树兮薠草靃靡,白鹿麚兮或腾或倚。

状貌崟崟兮峨峨,凄凄兮漇々。

猕猴兮熊罴,慕类兮以悲。

攀援桂枝兮聊淹留。

虎豹斗兮熊罴咆,禽兽骇兮亡其曹。

王孙兮归来,山中兮不可以久留。

七谏 初放 

作者:不详

平生於国兮,长於原野。

言语讷譅兮,又无彊辅。

浅智褊能兮,闻见又寡。

数言便事兮,见怨门下。

王不察其长利兮,卒见弃乎原野。

伏念思过兮,无可改者。

群众成朋兮,上浸以惑。

巧佞在前兮,贤者灭息。

尧、舜圣已没兮,孰为忠直?

高山崔巍兮,水流汤汤。

死日将至兮,兴麋鹿同坑。

块兮鞠,当道宿,举世皆然兮,余将谁告?

斥逐鸿鹄兮,近習鸱枭,斩伐橘柚兮,列树苦桃。

便娟之修竹兮,寄生乎江潭。

上葳蕤而防露兮,下泠泠而来风。

孰知其不合兮?

若竹柏之异心。

往者不可及兮,来者不可待。

悠悠苍天兮,莫我振理。

窃怨君之不寤兮,吾独死而后已。

七谏 沉江 

作者:不详

惟往古之得失兮,览私微之所伤。

尧、舜圣而慈仁兮,后世称而弗忘。

齐桓失於专任兮,夷吾忠而名彰。

晋献惑於孋姬兮,申生孝而被殃。

偃王行其仁义兮,荆文寤而徐亡。

纣暴虐以失位兮,周得佐乎吕望。

修往古以行恩兮,封比干之丘垄。

贤俊慕而自附兮,日浸淫而合同。

明法令而修理兮,兰芷幽而有芳。

苦众人之妒予兮,箕子寤而佯狂。

不顾地以贪名兮,心怫郁而内伤。

联蕙芷以为佩兮,过鲍肆而失香。

正臣端其操行兮,反离谤而见攘。

世俗更而变化兮,伯夷饿於首阳。

独廉洁而不容兮,叔齐久而逾明。

浮云陈而蔽晦兮,使日月乎无光。

忠臣贞而欲谏兮,谗谀毁而在旁。

秋草荣其将实兮,微霜下而夜降。

商风肃而害生兮,百草育而不长。

众并谐以妒贤兮,孤圣特而易伤。

怀计谋而不见用兮,岩穴处而隐藏。

成功隳而不卒兮,子胥死而不葬。

世从俗而变化兮,随风靡而成行。

信直退而毁败兮,虚伪进而得当。

追悔过之无及兮,岂尽忠而有功。

废制度而不用兮,务行私而去公。

终不变而死节兮,惜年齿之未央。

将方舟而下流兮,冀幸君之发矇。

痛忠言之逆耳兮,恨申子之沉江。

愿悉心之所闻兮,遭值君之不聪。

不开寤而难道兮,不别横之与纵。

听奸臣之浮说兮,绝国家之久长。

灭规矩而不用兮,背绳墨之正方。

离忧患而乃寤兮,若纵火於秋蓬。

业失之而不救兮,尚何论乎祸凶。

彼离畔而朋党兮,独行之士其何望?

日渐染而不自知兮,秋毫微哉而变容。

众轻积而折轴兮,原咎杂而累重。

赴湘、沅之流澌兮,恐逐波而复东。

怀沙砾而自沉兮,不忍见君之蔽壅。

七谏 怨世 

作者:不详

世沉淖而难论兮,俗岒峨而嵾嵯。

清泠泠而歼灭兮,溷湛湛而日多。

枭鸮既以成群兮,玄鹤弭翼而屏移。

蓬艾亲入御於床笫兮,马兰踸踔而日加。

弃捐药芷与杜衡兮,余奈世之不知芳何?

何周道之平易兮,然芜秽而险巇。

高阳无故而委尘兮,唐虞点灼而毁议。

谁使正其真是兮,虽有八师其不可为。

皇天保其高兮,后土持其久。

服清白以逍遥兮,偏与乎玄英异色。

西施媞々而不得见兮,嫫母勃屑而日侍。

桂蠹不知所淹留兮,蓼虫不知徙乎葵菜。

处湣湣之浊世兮,今安所达乎吾志。

意有所载而远逝兮,固非众人之所识。

骥踌躇於弊輂兮,遇孙阳而得代。

吕望穷困而不聊生兮,遭周文而舒志。

甯戚饭牛而商歌兮,桓公闻而弗置。

路室女之方桑兮,孔子过之以自侍。

吾独乖剌而无当兮,心悼怵而耄思。

思比干之恲々兮,哀子胥之慎事。

悲楚人之和氏兮,献宝玉以为石。

遇厉武之不察兮,羌两足以毕斮。

小人之居势兮,视忠正之何若?

改前圣之法度兮,喜嗫嚅而妄作。

亲谗谀而疏贤圣兮,讼谓闾娵为丑恶。

愉近習而蔽远兮,孰知察其黑白?

卒不得效其心容兮,安眇眇而无所归薄。

专精爽以自明兮,晦冥冥而壅蔽。

年既已过太半兮,然埳轲而留滞。

欲高飞而远集兮,恐离罔而灭败。

独冤抑而无极兮,伤精神而寿夭。

皇天既不纯命兮,余生终无所依。

愿自沉於江流兮,绝横流而径逝。

宁为江海之泥涂兮,安能久见此浊世?

七谏 怨思 

作者:不详

贤士穷而隐处兮,廉方正而不容。

子胥谏而靡躯兮,比干忠而剖心。

子推自割而饲君兮,德日忘而怨深。

行明白而日黑兮,荆棘聚而成林。

江离弃於穷巷兮,蒺藜蔓乎东厢。

贤者蔽而不见兮,谗谀进而相朋。

枭鸮并进而俱鸣兮,凤皇飞而高翔。

愿壹往而径逝兮,道壅绝而不通。

七谏 自悲 

作者:不详

居愁懃其谁告兮,独永思而忧悲。

内自省而不惭兮,操愈坚而不衰。

隐三年而无决兮,岁忽忽其若颓。

怜余身不足以卒意兮,冀一见而复归。

哀人事之不幸兮,属天命而委之咸池。

身被疾而不閒兮,心沸热其若汤。

冰炭不可以相并兮,吾固知乎命之不长。

哀独苦死之无乐兮,惜余年之未央。

悲不反余之所居兮,恨离予之故乡。

鸟兽惊而失群兮,犹高飞而哀鸣。

狐死必首丘兮,夫人孰能不反其真情?

故人疏而日忘兮,新人近而俞好。

莫能行於杳冥兮,孰能施於无报?

苦众人之皆然兮,乘回风而远游。

凌恒山其若陋兮,聊愉娱以忘忧。

悲虚言之无实兮,苦众口之铄金。

遇故乡而一顾兮,泣歔欷而霑衿。

厌白玉以为面兮,怀琬琰以为心。

邪气入而感内兮,施玉色而外淫。

何青云之流澜兮,微霜降之蒙蒙。

徐风至而徘徊兮,疾风过之汤汤。

闻南藩乐而欲往兮,至会稽而且止。

见韩众而宿之兮,问天道之所在?

借浮云以送予兮,载雌霓而为旌。

驾青龙以驰骛兮,班衍衍之冥冥。

忽容容其安之兮,超慌忽其焉如?

苦众人之难信兮,愿离群而远举。

登峦山而远望兮,好桂树之冬荣。

观天火之炎炀兮,听大壑之波声。

引八维以自道兮,含沆瀣以长生。

居不乐以时思兮,食草木之秋实。

饮菌若之朝露兮,构桂木而为室。

杂橘柚以为囿兮,列新夷与椒桢。

鹍鹤孤而夜号兮,哀居者之诚贞。

七谏 哀命 

作者:不详

哀时命之不合兮,伤楚国之多忧。

内怀情之洁白兮,遭乱世而离尤。

恶耿介之直行兮,世溷浊而不知。

何君臣之相失兮,上沅湘而分离。

测汨罗之湘水兮,知时固而不反。

伤离散之交乱兮,遂侧身而既远。

处玄舍之幽门兮,穴岩石而窟伏。

从水蛟而为徒兮,与神龙乎休息。

何山石之崭岩兮,灵魂屈而偃蹇。

含素水而蒙深兮,日眇眇而既远。

哀形体之离解兮,神罔两而无舍。

惟椒兰之不反兮,魂迷惑而不知路。

愿无过之设行兮,虽灭没之自乐。

痛楚国之流亡兮,哀灵修之过到。

固时俗之溷浊兮,志瞀迷而不知路。

念私门之正匠兮,遥涉江而远去。

念女媭之婵媛兮,涕泣流乎於悒。

我决死而不生兮,虽重追吾何及。

戏疾濑之素水兮,望高山之蹇产。

哀高丘之赤岸兮,遂没身而不反。

七谏 谬谏 

作者:不详

怨灵修之浩荡兮,夫何执操之不固?

悲太山之为隍兮,孰江河之可涸?

愿承间而效志兮,恐犯忌而干讳。

卒抚情以寂寞兮,然怊怅而自悲。

玉与石其同匮兮,贯鱼眼与珠玑。

驽骏杂而不分兮,服罢牛而骖骥。

年滔滔而自远兮,寿冉冉而愈衰。

心悇憛而烦冤兮,蹇超摇而无冀。

固时俗之工巧兮,灭规矩而改错。

郤骐骥而不乘兮,策驽骀而取路。

当世岂无骐骥兮,诚无王良之善驭。

见执辔者非其人兮,故驹跳而远去。

不量凿而正枘兮,恐矩矱之不同。

不论世而高举兮,恐操行之不调。

弧弓弛而不张兮,孰云知其所至?

无倾危之患难兮,焉知贤士之所死?

俗推佞而进富兮,节行张而不著。

贤良蔽而不群兮,朋曹比而党誉。

邪说饰而多曲兮,正法弧而不公。

直士隐而避匿兮,谗谀登乎明堂。

弃彭咸之娱乐兮,灭巧倕之绳墨。

菎蕗杂於黀蒸兮,机蓬矢以射革。

驾蹇驴而无策兮,又何路之能极?

以直针而为钓兮,又何鱼之能得?

伯牙之绝弦兮,无锺子期而听之。

和抱璞而泣血兮,安得良工而剖之?

同音者相和兮,同类者相似。

飞鸟号其群兮,鹿鸣求其友。

故叩宫而宫应兮,弹角而角动。

虎啸而谷风至兮,龙举而景云往。

音声之相和兮,言物类之相感也。

夫方圜之异形兮,势不可以相错。

列子隐身而穷处兮,世莫可以寄讬。

众鸟皆有行列兮,凤独翔翔而无所薄。

经浊世而不得志兮,愿侧身岩穴而自讬。

欲阖口而无言兮,尝被君之厚德。

独便悁而怀毒兮,愁郁郁之焉极?

念三年之积思兮,愿壹见而陈辞。

不及君而骋说兮,世孰可为明之?

身寝疾而日愁兮,情沉抑而不扬。

众人莫可与论道兮,悲精神之不通。

乱曰:鸾皇孔凤日以远兮,畜凫驾鹅。

鸡鹜满堂坛兮,鼃黾游乎华池。

要褭奔亡兮,腾驾橐驼。

铅刀进御兮,遥弃太阿。

拔搴玄芝兮,列树芋荷。

橘柚萎枯兮,苦李旖旎。

甂瓯登於明堂兮,周鼎潜潜乎深渊。

自古而固然兮,吾又何怨乎今之人。

哀时命 

作者:不详

哀时命之不及古人兮,夫何予生之不遘时!

往者不可扳援兮,徕者不可与期。

志憾恨而不逞兮,杼中情而属诗。

夜炯炯而不寐兮,怀隐忧而历兹。

心郁郁而无告兮,众孰可与深谋!

欿愁悴而委惰兮,老冉冉而逮之。

居处愁以隐约兮,志沉抑而不扬。

道壅塞而不通兮,江河广而无梁。

愿至昆仑之悬圃兮,采锺山之玉英。

揽瑶木之橝枝兮,望阆风之板桐。

弱水汨其为难兮,路中断而不通。

势不能凌波以径度兮,又无羽翼而高翔。

然隐悯而不达兮,独徙倚而彷徉。

怅惝罔以永思兮,心纡轸而增伤。

倚踌躇以淹留兮,日饥馑而绝粮。

廓抱景而独倚兮,超永思乎故乡。

廓落寂而无友兮,谁可与玩此遗芳?

白日<日宛>々其将入兮,哀余寿之弗将。

车既弊而马罢兮,蹇邅徊而不能行。

身既不容於浊世兮,不知进退之宜当。

冠崔嵬而切云兮,剑淋离而从横。

衣摄叶以储与兮,左袪挂於榑桑;

右衽拂於不周兮,六合不足以肆行。

上同凿枘於伏戏兮,下合矩矱於虞唐。

愿尊节而式高兮,志犹卑夫禹、汤。

虽知困其不改操兮,终不以邪枉害方。

世并举而好朋兮,壹斗斛而相量。

众比周以肩迫兮,贤者远而隐藏。

为凤皇作鹑笼兮,虽翕翅其不容。

灵皇其不寤知兮,焉陈词而效忠。

俗嫉妒而蔽贤兮,孰知余之从容?

愿舒志而抽冯兮,庸讵知其吉凶?

璋珪杂於甑窐兮,陇廉与孟娵同宫。

举世以为恒俗兮,固将愁苦而终穷。

幽独转而不寐兮,惟烦懑而盈匈。

魂眇眇而驰骋兮,心烦冤之忡忡。

志欿憾而不憺兮,路幽昧而甚难。

块独守此曲隅兮,然欿切而永叹。

愁修夜而宛转兮,气涫{沸鬲}其若波。

握剞劂而不用兮,操规矩而无所施。

骋骐骥於中庭兮,焉能极夫远道?

置援狖於棂槛兮,夫何以责其捷巧?

驷跛鳖而上山兮,吾固知其不能升。

释管晏而任臧获兮,何权衡之能称?

箟簬杂於黀蒸兮,机蓬矢以射革。

负檐荷以丈尺兮,欲伸要而不可得。

外迫胁於机臂兮,上牵联於矰隿。

肩倾侧而不容兮,固陿腹而不得息。

务光自投於深渊兮,不获世之尘垢。

孰魁摧之可久兮,愿退身而穷处。

凿山楹而为室兮,下被衣於水渚。

雾露濛濛其晨降兮,云依斐而承宇。

虹霓纷其朝霞兮,夕淫淫而淋雨。

怊茫茫而无归兮,怅远望此旷野。

下垂钓於谿谷兮,上要求於仙者。

与赤松而结友兮,比王侨而为耦。

使枭杨先导兮,白虎为之前后。

浮云雾而入冥兮,骑白鹿而容与。

魂眐々以寄独兮,汨徂往而不归。

处卓卓而日远兮,志浩荡而伤怀。

鸾凤翔於苍云兮,故矰缴而不能加。

蛟龙潜於旋渊兮,身不挂於罔罗。

知贪饵而近死兮,不如下游乎清波。

宁幽隐以远祸兮,孰侵辱之可为。

子胥死而成义兮,屈原沉於汨罗。

虽体解其不变兮,岂忠信之可化。

志怦怦而内直兮,履绳墨而不颇。

执权衡而无私兮,称轻重而不差。

摡尘垢之枉攘兮,除秽累而反真。

形体白而质素兮,中皎洁而淑清。

时厌饫而不用兮,且隐伏而远身。

聊窜端而匿迹兮,嗼寂默而无声。

独便悁而烦毒兮,焉发愤而纾情。

时暧暧其将罢兮,遂闷叹而无名。

伯夷死於首阳兮,卒夭隐而不荣。

太公不遇文王兮,身至死而不得逞。

怀瑶象而佩琼兮,愿陈列而无正。

生天墬之若过兮,忽烂漫而无成。

邪气袭余之形体兮,疾憯怛而萌生。

愿壹见阳春之白日兮,恐不终乎永年。

九怀 匡机 

作者:不详

极运兮不中,来将屈兮困穷?

深愍兮惨怛,愿一列兮无从。

乘日月兮上征,顾游心兮鄗酆。

弥览兮九隅,彷徨兮兰宫。

芷闾兮药房,奋摇兮众芳。

菌阁兮蕙楼,观道兮从横。

宝金兮委积,美玉兮盈堂。

桂水兮潺湲,扬流兮洋洋。

蓍蔡兮踊跃,孔鹤兮回翔。

抚槛兮远望,念君兮不忘。

怫郁兮莫陈,永怀兮内伤。

九怀 通路 

作者:不详

天门兮墬户,孰由兮贤者?

无正兮溷厕,怀德兮何睹?

假寐兮愍斯,谁可与兮寤语?

痛凤兮远逝,畜鴳兮近处。

鲸鱏兮幽潜,从虾兮游陼。

乘虬兮登阳,载象兮上行。

朝发兮葱岭,夕至兮明光。

北饮兮飞泉,南采兮芝英。

宣游兮列宿,顺极兮彷徉。

红采兮骍衣,翠缥兮为裳。

舒佩兮綝纚,竦余剑兮干将。

腾蛇兮后从,飞駏兮步旁。

微观兮玄圃,览察兮瑶光。

启匮兮探筴,悲命兮相当。

纫蕙兮永辞,将离兮所思。

浮云兮容与,道余兮何之?

远望兮仟眠,闻雷兮阗阗。

阴忧兮感余,惆怅兮自怜。

九怀 危俊 

作者:不详

林不容兮鸣蜩,余何留兮中州?

陶嘉月兮总驾,搴玉英兮自脩。

结荣茝兮逶逝,将去烝兮远游。

径岱土兮魏阙,历九曲兮牵牛。

聊假日兮相佯,遗光燿兮周流。

望太一兮淹息,纡余辔兮自休。

晞白日兮皎皎,弥远路兮悠悠。

顾列孛兮缥缥,观幽云兮陈浮。

钜宝迁兮砏磤,雉咸雊兮相求。

泱莽莽兮究志,惧吾心兮懤々。

步余马兮飞柱,览可与兮匹俦。

卒莫有兮纤介,永余思兮怞々。

九怀 昭世 

作者:不详

世溷兮冥昏,违君兮归真。

乘龙兮偃蹇,高回翔兮上臻。

袭英衣兮缇纟習,披华裳兮芳芬。

登羊角兮扶舆,浮云漠兮自娱。

握神精兮雍容,与神人兮相胥。

流星坠兮成雨,进瞵盼兮上丘墟。

览旧邦兮滃郁,余安能兮久居。

志怀逝兮心懰栗,纡余辔兮踌躇。

闻素女兮微歌,听王后兮吹竽。

魂悽怆兮感哀,肠回回兮盘纡。

抚余佩兮缤纷,高太息兮自怜。

使祝融兮先行,令昭明兮开门。

驰六蛟兮上征,竦余驾兮入冥。

历九州兮索合,谁可与兮终生。

忽反顾兮西囿,睹轸丘兮崎倾。

横垂涕兮泫流,悲余后兮失灵。

九怀 尊嘉 

作者:不详

季春兮阳阳,列草兮成行。

余悲兮兰生,委积兮从横。

江离兮遗捐,辛夷兮挤臧。

伊思兮往古,亦多兮遭殃。

伍胥兮浮江,屈子兮沉湘。

运余兮念兹,心内兮怀伤。

望淮兮沛沛,滨流兮则逝。

榜舫兮下流,东注兮礚々。

蛟龙兮导引,文鱼兮上濑。

抽蒲兮陈坐,援芙蕖兮为盖。

水跃兮余旌,继以兮微蔡。

云旗兮电骛,鯈忽兮容裔。

河伯兮开门,迎余兮欢欣。

顾念兮旧都,怀恨兮艰难。

窃哀兮浮萍,汎淫兮无根。

九怀 蓄英 

作者:不详

秋风兮萧萧,舒芳兮振条。

微霜兮盻眇,病殀兮鸣蜩。

玄鸟兮辞归,飞翔兮灵丘。

望谿谷兮滃郁,熊罴兮呴嗥。

唐虞兮不存,何故兮久留?

临渊兮汪洋,顾林兮忽荒。

修余兮袿衣,骑霓兮南上。

乘云兮回回,亹亹兮自强。

将息兮兰皋,失志兮悠悠。

蒶蕴兮霉黧,思君兮无聊。

身去兮意存,怆恨兮怀愁。

九怀 思忠 

作者:不详

登九灵兮游神,静女歌兮微晨。

悲皇丘兮积葛,众体错兮交纷。

贞枝抑兮枯槁,枉车登兮庆云。

感余志兮惨栗,心怆怆兮自怜。

驾玄螭兮北征,曏吾路兮葱岭。

连五宿兮建旄,扬氛气兮为旌。

历广漠兮驰骛,览中国兮冥冥。

玄武步兮水母,与吾期兮南荣。

登华盖兮乘阳,聊逍遥兮播光。

抽库娄兮酌醴,援瓟瓜兮接粮。

毕休息兮远逝,发玉轫兮西行。

惟时俗兮疾正,弗可久兮此方。

寤辟摽兮永思,心怫郁兮内伤。

九怀 陶壅 

作者:不详

览杳杳兮世惟,余惆怅兮何归。

伤时俗兮溷乱,将奋翼兮高飞。

驾八龙兮连蜷,建虹旌兮威夷。

观中宇兮浩浩,纷翼翼兮上跻。

浮溺水兮舒光,淹低佪兮京沶。

 屯余车兮索友,睹皇公兮闵师。

道莫贵兮归真,羡余术兮可夷。

吾乃逝兮南娭,道幽路兮九疑。

越炎火兮万里,过万首兮嶷嶷。

济江海兮蝉蜕,绝北梁兮永辞。

浮云郁兮昼昏,霾土忽兮塺々。

息阳城兮广夏,衰色罔兮中怠。

意晓阳兮燎寤,乃自轸兮在兹。

思尧、舜兮袭兴,幸咎繇兮获谋。

悲九州兮靡君,抚轼叹兮作诗。

九怀 株昭 

作者:不详

悲哉于嗟兮,心内切磋。

款冬而生兮,彫彼叶柯。

瓦砾进宝兮,捐弃随和。

铅刀厉御兮,顿弃太阿。

骥垂两耳兮,中坂蹉跎。

蹇驴服驾兮,无用日多。

修洁处幽兮,贵宠沙劘。

凤皇不翔兮,鹑鴳飞扬。

乘虹骖蜺兮,载云变化。

鹪<明鸟>开路兮,后属青蛇。

步骤桂林兮,超骧卷阿。

丘陵翔舞兮,谿谷悲歌。

神章灵篇兮,赴曲相和。

余私娱兹兮,孰哉复加。

还顾世俗兮,坏败罔罗。

卷佩将逝兮,涕流滂沲。

乱曰:皇门开兮照下土,株秽除兮兰芷睹。

四佞放兮后得禹,圣舜摄兮昭尧绪,孰能若兮愿为辅?

九叹 逢纷 

作者:不详

伊伯庸之末胄兮,谅皇直之屈原。

云余肇祖于高阳兮,惟楚怀之婵连。

原生受命于贞节兮,鸿永路有嘉名。

齐名字於天地兮,并光明於列星。

吸精粹而吐氛浊兮,横邪世而不取容。

行叩诚而不阿兮,遂见排而逢谗。

后听虚而黜实兮,不吾理而顺情。

肠愤悁而含怒兮,志迁蹇而左倾。

心戃慌其不我与兮,躬速速其不吾亲。

辞灵修而陨志兮,吟泽畔之江滨。

椒桂罗以颠覆兮,有竭信而归诚。

谗夫蔼蔼而漫著兮,曷其不舒予情?

始结言於庙堂兮,信中涂而叛之。

怀兰蕙与衡芷兮,行中野而散之。

声哀哀而怀高丘兮,心愁愁而思旧邦。

原承閒而自恃兮,径淫曀而道壅。

颜霉黧以沮败兮,精越裂而衰耄。

裳襜襜而含风兮,衣纳纳而掩露。

赴江湘之湍流兮,顺波凑而下降。

徐徘徊於山阿兮,飘风来之汹汹。

驰余车兮玄石,步余马兮洞庭。

平明发兮苍梧,夕投宿兮石城。

芙蓉盖而菱华车兮,紫贝阙而玉堂。

薜荔饰而陆离荐兮,鱼鳞衣而白蜺裳。

登逢龙而下陨兮,违故都之漫漫。

思南郢之旧俗兮,肠一夕而九运。

扬流波之潢潢兮,体溶溶而东回。

心怊怅以永思兮,意晻晻而日颓。

白露纷以涂涂兮,秋风浏以萧萧。

身永流而不还兮,魂长逝而常愁。

叹曰:譬彼流水纷扬磕兮,波逢汹涌濆滂沛兮。

揄扬涤荡飘流陨往触崟石兮,龙邛脟圈缭戾宛转阻相薄兮,

遭纷逢凶蹇离尤兮,垂文扬采遗将来兮。

九叹 离世 

作者:不详

灵怀其不吾知兮,灵怀其不吾闻。

就灵怀之皇祖兮,愬灵怀之鬼神。

灵怀曾不吾与兮,即听夫人之谀辞。

余辞上参於天墬兮,旁引之於四时。

指日月使延照兮,抚招摇以质正。

立师旷俾端词兮,命咎繇使并听。

兆出名曰正则兮,卦发字曰灵均。

余幼既有此鸿节兮,长愈固而弥纯。

不从俗而诐行兮,直躬指而信志。

不枉绳以追曲兮,屈情素以从事。

端余行其如玉兮,述皇舆之踵迹。

群阿容以晦光兮,皇舆覆以幽辟。

舆中涂以回畔兮,驷马惊而横奔。

执组者不能制兮,必折轭而摧辕。

断镳衔以驰骛兮,暮去次而敢止。

路荡荡其无人兮,遂不御乎千里。

身衡陷而下沉兮,不可获而复登。

不顾身之卑贱兮,惜皇舆之不兴。

出国门而端指兮,冀壹寤而锡还。

哀仆夫之坎毒兮,屡离忧而逢患。

九年之中不吾反兮,思彭咸之水游。

惜师延之浮渚兮,赴汨罗之长流。

遵江曲之逶移兮,触石碕而衡游。

波澧澧而扬浇兮,顺长濑之浊流。

凌黄沱而下低兮,思还流而复反。

玄舆驰而并集兮,身容与而日远。

棹舟杭以横濿兮,济湘流而南极。

立江界而长吟兮,愁哀哀而累息。

情慌忽以忘归兮,神浮游以高厉。

心蛩蛩而怀顾兮,魂眷眷而独逝。

叹曰:余思旧邦心依违兮,

日暮黄昏羌幽悲兮,

去郢东迁余谁慕兮,

谗夫党旅其以兹故兮,

河水淫淫情所愿兮,

顾瞻郢路终不返兮。

九叹 怨思 

作者:不详

惟郁郁之忧毒兮,志坎壈而不违。

身憔悴而考旦兮,日黄昏而长悲。

闵空宇之孤子兮,哀枯杨之冤雏。

孤雌吟於高墉兮,鸣鸠栖於桑榆。

玄猨失於潜林兮,独偏弃而远放。

征夫劳於周行兮,处妇愤而长望。

申诚信而罔违兮,情素洁於纽帛。

光明齐於日月兮,文采燿燿於玉石。

伤压次而不发兮,思沉抑而不扬。

芳懿懿而终败兮,名靡散而不彰。

背玉门以奔骛兮,蹇离尤而干诟。

若龙逄之沉首兮,王子比干之逢醢。

念社稷之几危兮,反为雠而见怨。

思国家之离沮兮,躬获衍而结难。

若青蝇之伪质兮,晋骊姬之反情。

恐登阶之逢殆兮,故退伏於末庭。

孽臣之号咷兮,本朝芜而不治。

犯颜色而触谏兮,反蒙辜而被疑。

菀蘼芜与菌若兮,渐藁本於洿渎。

淹芳芷於腐井兮,弃鸡骇於筐簏。

执棠谿以刜蓬兮,秉干将以割肉。

筐泽泻以豹鞟兮,破荆和以继筑。

时溷浊犹未清兮,世殽乱犹未察。

欲容与以俟时兮,惧年岁之既晏。

顾屈节以从流兮,心巩巩而不夷。

宁浮沅而驰骋兮,下江湘以邅回。

叹曰:山中槛槛余伤怀兮,征夫皇皇其孰依兮,

经营原野杳冥冥兮,乘骐骋骥舒吾情兮,

归骸旧邦莫谁语兮,长辞远逝乘湘去兮。

九叹 远逝 

作者:不详

志隐隐而郁怫兮,愁独哀而冤结。

肠纷纭以缭转兮,涕渐渐其若屑。

情慨慨而长怀兮,信上皇而质正。

合五岳与八灵兮,讯九鬿与六神。

指列宿以白情兮,诉五帝以置词。

北斗为我折中兮,太一为余听之。

云服阴阳之正道兮,御后土之中和。

佩苍龙之蚴虬兮,带隐虹之逶蛇。

曳彗星之皓旰兮,抚朱爵与鵕鸃。

游清灵之飒戾兮,服云衣之披披。

杖玉华与朱旗兮,垂明月之玄珠。

举霓旌之墆翳兮,建黄纁之总旄。

躬纯粹而罔愆兮,承皇考之妙仪。

惜往事之不合兮,横汨罗而下濿。

乘隆波而南渡兮,逐江湘之顺流。

赴阳侯之潢洋兮,下石濑而登洲。

陆魁堆以蔽视兮,云冥冥而闇前。

山峻高以无垠兮,遂曾闳而迫身。

雪雰雰而薄木兮,云霏霏而陨集。

阜隘狭而幽险兮,石嵾嵯以翳日。

悲故乡而发忿兮,去余邦之弥久。

背龙门而入河兮,登大坟而望夏首。

横舟航而济湘兮,耳聊啾而戃慌。

波淫淫而周流兮,鸿溶溢而滔荡。

路曼曼其无端兮,周容容而无识。

引日月以指极兮,少须臾而释思。

水波远以冥冥兮,眇不睹其东西。

顺风波以南北兮,雾宵晦以纷纷。

日杳杳以西颓兮,路长远而窘迫。

欲酌醴以娱忧兮,蹇骚骚而不释。

叹曰:飘风蓬龙埃坲々兮,草木摇落时槁悴兮,

遭倾遇祸不可救兮,长吟永欷涕究究兮,

舒情陈诗冀以自免兮,颓流下陨身日远兮。

九叹 惜贤 

作者:不详

览屈氏之离骚兮,心哀哀而怫郁。

声嗷嗷以寂寥兮,顾仆夫之憔悴。

拨谄谀而匡邪兮,切淟涊之流俗。

荡渨涹之奸咎兮,夷蠢蠢之溷浊。

怀芬香而挟蕙兮,佩江蓠之斐斐。

握申椒与杜若兮,冠浮云之峨峨。

登长陵而四望兮,览芷圃之蠡蠡。

游兰皋与蕙林兮,睨玉石之嵾嵯。

扬精华以眩燿兮,芳郁渥而纯美。

结桂树之旖旎兮,纫荃蕙与辛夷。

芳若兹而不御兮,捐林薄而菀死。

驱子侨之奔走兮,申徒狄之赴渊。

若由夷之纯美兮,介子推之隐山。

晋申生之离殃兮,荆和氏之泣血。

吴申胥之抉眼兮,王子比干之横废。

欲卑身而下体兮,心隐恻而不置。

方圜殊而不合兮,钩绳用而异态。

欲俟时於须臾兮,日阴<日壹>其将暮。

时迟迟其日进兮,年忽忽而日度。

妄周容而入世兮,内距闭而不开。

俟时风之清激兮,愈氛雾其如塺。

进雄鸠之耿耿兮,谗介介而蔽之。

默顺风以偃仰兮,尚由由而进之。

心懭悢以冤结兮,情舛错以曼忧。

搴薜荔於山野兮,采撚支於中洲。

望高丘而叹涕兮,悲吸吸而长怀。

孰契契而委栋兮,日晻晻而下颓。

叹曰:江湘油油长流汩兮,挑揄扬汰荡迅疾兮,

忧心展转愁怫郁兮,冤结未舒长隐忿兮,

丁时逢殃可奈何兮,劳心悁悁涕滂沱兮。

九叹 忧苦 

作者:不详

悲余心之悁悁兮,哀故邦之逢殃。

辞九年而不复兮,独茕茕而南行。

思余俗之流风兮,心纷错而不受。

遵野莽以呼风兮,步从容於山廋。

巡陆夷之曲衍兮,幽空虚以寂寞。

倚石岩以流涕兮,忧憔悴而无乐。

登巑岏以长企兮,望南郢而窥之。

山修远其辽辽兮,涂漫漫其无时。

听玄鹤之晨鸣兮,于高岗之峨峨。

独愤积而哀娱兮,翔江洲而安歌。

三鸟飞以自南兮,览其志而欲北。

愿寄言於三鸟兮,去飘疾而不可得。

欲迁志而改操兮,心纷结其未离。

外彷徨而游览兮,内恻隐而含哀。

聊须臾以时忘兮,心渐渐其烦错。

愿假簧以舒忧兮,志纡郁其难释。

叹《离骚》以扬意兮,犹未殚於《九章》。

长嘘吸以於悒兮,涕横集而成行。

伤明珠之赴泥兮,鱼眼玑之坚藏。

同驽驘与乘驵兮,杂斑駮与阘茸。

葛藟{藟系}於桂树兮,鸱鸮集於木兰。

偓促谈於廊庙兮,律魁放乎山间。

恶虞氏之箫韶兮,好遗风之激楚。

潜周鼎於江淮兮,爨土鬵於中宇。

且人心之持旧兮,而不可保长。

邅彼南道兮,征夫宵行。

思念郢路兮,还顾睠々。

涕流交集兮,泣下涟涟。

叹曰:登山长望中心悲兮,菀彼青青泣如颓兮,

留思北顾涕渐渐兮,折锐摧矜凝氾滥兮,

念我茕茕魂谁求兮,仆夫慌悴散若流兮。

九叹 愍命 

作者:不详

昔皇考之嘉志兮,喜登能而亮贤。

情纯洁而罔薉兮,姿盛质而无愆。

放佞人与谄谀兮,斥谗夫与便嬖。

亲忠正之悃诚兮,招贞良与明智。

心溶溶其不可量兮,情澹澹其若渊。

回邪辟而不能入兮,诚愿藏而不可迁。

逐下祑於后堂兮,迎宓妃於伊雒。

刜谗贼於中廇兮,选吕管於榛薄。

丛林之下无怨士兮,江河之畔无隐夫。

三苗之徒以放逐兮,伊皋之伦以充庐。

今反表以为里兮,颠裳以为衣。

戚宋万於两楹兮,废周邵於遐夷。

郤骐骥以转运兮,腾驴驘以驰逐。

蔡女黜而出帷兮,戎妇入而彩绣服。

庆忌囚於阱室兮,陈不占战而赴围。

破伯牙之号锺兮,挟人筝而弹纬。

藏瑉石於金匮兮,捐赤瑾於中庭。

韩信蒙於介胄兮,行夫将而攻城。

莞芎弃於泽洲兮,瓟蠡蠹於筐簏。

麒麟奔於九皋兮,熊罴群而逸囿。

折芳枝与琼华兮,树枳棘与薪柴。

掘荃蕙与射干兮,耘藜藿与蘘荷。

惜今世其何殊兮,远近思而不同。

或沉沦其无所达兮,或清激其无所通。

哀余生之不当兮,独蒙毒而逢尤。

虽謇謇以申志兮,君乖差而屏之。

诚惜芳之菲菲兮,反以兹为腐也。

怀椒聊之蔎々兮,乃逢纷以罹诟也。

叹曰:嘉皇既殁终不返兮,

山中幽险郢路远兮,

谗人諓々孰可愬兮,

征夫罔极谁可语兮?

行吟累欷声喟喟兮,

怀忧含戚何侘傺兮。

九叹 思古 

作者:不详

冥冥深林兮树木郁郁。

山参差以崭岩兮,阜杳杳以蔽日。

悲余心之悁悁兮,目眇眇而遗泣。

风骚屑以摇木兮,云吸吸以湫戾。

悲余生之无欢兮,愁倥傯於山陆。

旦徘徊於长阪兮,夕彷徨而独宿。

发披披以鬤々兮,躬劬劳而瘏悴。

魂俇々而南行兮,泣霑襟而濡袂。

心婵媛而无告兮,口噤闭而不言。

违郢都之旧闾兮,回湘、沅而远迁。

念余邦之横陷兮,宗鬼神之无次。

闵先嗣之中绝兮,心惶惑而自悲。

聊浮游於山陿兮,步周流於江畔。

临深水而长啸兮,且倘佯而氾观。

兴离骚之微文兮,冀灵修之壹悟。

还余车於南郢兮,复往轨於初古。

道修远其难迁兮,伤余心之不能已。

背三五之典刑兮,绝洪范之辟纪。

播规矩以背度兮,错权衡而任意。

操绳墨而放弃兮,倾容幸而侍侧。

甘棠枯於丰草兮,藜棘树於中庭。

西施斥於北宫兮,仳倠倚於弥楹。

乌获戚而骖乘兮,燕公操於马圉。

蒯聩登於清府兮,咎繇弃而在野。

盖见兹以永叹兮,欲登阶而狐疑。

乘白水而高骛兮,因徙弛而长词。

叹曰:倘佯垆阪沼水深兮,容与汉渚涕淫淫兮,

锺牙已死谁为声兮?纤阿不御焉舒情兮,

曾哀悽欷心离离兮,还顾高丘泣如洒兮。

九叹 远游 

作者:不详

悲余性之不可改兮,屡惩艾而不迻。

服觉皓以殊俗兮,貌揭揭以巍巍。

譬若王侨之乘云兮,载赤霄而凌太清。

欲与天地参寿兮,与日月而比荣。

登昆仑而北首兮,悉灵圉而来谒。

选鬼神於太阴兮,登阊阖於玄阙。

回朕车俾西引兮,褰虹旗於玉门。

驰六龙於三危兮,朝西灵於九滨。

结余轸於西山兮,横飞谷以南征。

绝都广以直指兮,历祝融於朱冥。

枉玉衡於炎火兮,委两饣官于咸唐。

贯澒濛以东朅兮,维六龙於扶桑。

周流览於四海兮,志升降以高驰。

徵九神於回极兮,建虹采以招指。

驾鸾凤以上游兮,从玄鹤与鹪明。

孔鸟飞而送迎兮,腾群鹤於瑶光。

排帝宫与罗囿兮,升县圃以眩灭。

结琼枝以杂佩兮,立长庚以继日。

凌惊雷以轶骇电兮,缀鬼谷於北辰。

鞭风伯使先驱兮,囚灵玄於虞渊。

溯高风以低佪兮,览周流於朔方。

就颛顼而陈词兮,考玄冥於空桑。

旋车逝於崇山兮,奏虞舜於苍梧。

济杨舟於会稽兮,就申胥於五湖。

见南郢之流风兮,殒余躬於沅湘。

望旧邦之黯黮兮,时溷浊其犹未央。

怀兰茝之芬芳兮,妒被离而折之。

张绛帷以襜襜兮,风邑邑而蔽之。

日暾暾其西舍兮,阳焱焱而复顾。

聊假日以须臾兮,何骚骚而自故。

叹曰:譬彼蛟龙乘云浮兮,汎淫澒溶纷若雾兮,

潺湲轇轕雷动电发馺高举兮,

升虚凌冥沛浊浮清入帝宫兮,摇翘奋羽驰风骋雨游无穷兮。

九思 逢尤 

作者:不详

悲兮愁,哀兮忧,天生我兮当闇时,被诼谮兮虚获尤。

心烦忄贵兮意无聊,严载驾兮出戏游。

周八极兮历九州,求轩辕兮索重华。

世既卓兮远眇眇,握佩玖兮中路躇。

羡咎繇兮建典谟,懿风后兮受瑞图。

愍余命兮遭六极,委玉质兮於泥涂。

遽傽遑兮驱林泽,步屏营兮行丘阿。

车軏折兮马虺颓,憃怅立兮涕滂沲。

思丁文兮圣明哲,哀平差兮迷谬愚。

吕傅举兮殷周兴,忌嚭专兮郢吴虚。

仰长叹兮气噎结,悒殟绝兮咶复苏。

虎兕争兮於廷中,豺狼斗兮我之隅。

云雾会兮日冥晦,飘风起兮扬尘埃。

走鬯罔兮乍东西,欲窜伏兮其焉如?

念灵闺兮隩重深,愿竭节兮隔无由。

望旧邦兮路逶随,忧心悄兮志勤劬。

魂茕茕兮不遑寐,目眽々兮寤终朝。

九思 怨上 

作者:不详

令尹兮謷謷,群司兮譨々。

哀哉兮淈々,上下兮同流。

菽藟兮蔓衍,芳虈兮挫枯。

朱紫兮杂乱,曾莫兮别诸。

倚此兮岩穴,永思兮窈悠。

嗟怀兮眩惑,用志兮不昭。

将丧兮玉斗,遗失兮钮枢。

我心兮煎熬,惟是兮用忧。

进恶兮九旬,复顾兮彭务。

拟斯兮二踪,未知兮所投。

谣吟兮中野,上察兮璇玑。

大火兮西睨,摄提兮运低。

雷霆兮硠礚,雹霰兮霏霏。

奔电兮光晃,凉风兮怆悽。

鸟兽兮惊骇,相从兮宿栖。

鸳鸯兮噰々,狐狸兮々。

哀吾兮介特,独处兮罔依。

蝼蛄兮鸣东,蟊兮号西。

蛓缘兮我裳,蠋入兮我怀。

虫豸兮夹余,惆怅兮自悲。

伫立兮忉怛,心结縎兮折摧。

九思 疾世 

作者:不详

周徘徊兮汉渚,求水神兮灵女。

嗟此国兮无良,媒女诎兮謰謱。

鴳雀列兮譁讙,鸲鹆鸣兮聒余。

抱昭华兮宝璋,欲衒鬻兮莫取。

言旋迈兮北徂,叫我友兮配耦。

日阴曀兮未光,阒睄窕兮靡睹。

纷载驱兮高驰,将谘询兮皇羲。

遵河皋兮周流,路变易兮时乖。

濿沧海兮东游,沐盥浴兮天池。

访太昊兮道要,云靡贵兮仁义。

志欣乐兮反征,就周文兮邠歧。

秉玉英兮结誓,日欲暮兮心悲。

惟天禄兮不再,背我信兮自违。

逾陇堆兮渡漠,过桂车兮合黎。

赴昆山兮馽騄,从邛遨兮栖迟。

吮玉液兮止渴,齧芝华兮疗饥。

居嵺廓兮尠畴,远梁昌兮几迷。

望江汉兮濩渃,心紧絭兮伤怀。

时昢々兮且旦,尘莫莫兮未晞。

忧不暇兮寝食,吒增叹兮如雷。

九思 悯上 

作者:不详

哀世兮睩々,諓々兮嗌喔。

众多兮阿媚,骫靡兮成俗。

贪枉兮党比,贞良兮茕独。

鹄窜兮枳棘,鹈集兮帷幄。

罽蕠兮青葱,槁本兮萎落。

睹斯兮伪惑,心为兮隔错。

逡巡兮圃薮,率彼兮畛陌。

川谷兮渊渊,山阜兮峉々。

丛林兮崟崟,株榛兮岳岳。

霜雪兮漼溰,冰冻兮洛泽。

东西兮南北,罔所兮归薄。

庇荫兮枯树,匍匐兮岩石。

蜷跼兮寒局数,独处兮志不申。

年齿尽兮命迫促,魁垒挤摧兮常困辱。

含忧强老兮愁不乐。

须发苎悴兮顠鬓白,思灵泽兮一膏沐。

怀兰英兮把琼若,待天明兮立踯躅。

云蒙蒙兮电儵烁,孤雌惊兮鸣呴呴。

思怫郁兮肝切剥,忿悁悒兮孰诉告。

九思 遭厄 

作者:不详

悼屈子兮遭厄,沉王躬兮湘汨。

何楚国兮难化,迄乎今兮不易。

士莫志兮羔裘,竞佞谀兮谗阋。

指正义兮为曲,訿玉璧兮为石。

殦雕游兮华屋,鵕鸃栖兮柴蔟。

起奋迅兮奔走,违群小兮謑訽。

载青云兮上昇,適昭明兮所处。

蹑天衢兮长驱,踵九阳兮戏荡。

越云汉兮南济,秣余马兮河鼓。

云霓纷兮<日奄>翳,参辰回兮颠倒。

逢流星兮问路,顾我指兮从左。

俓娵觜兮直驰,御者迷兮失轨。

遂踢达兮邪造,与日月兮殊道。

志阏绝兮安如,哀所求兮不耦。

攀天阶兮下视,见鄢郢兮旧宇。

意逍遥兮欲归,众秽盛兮沓沓。

思哽饐兮诘诎,涕流澜兮如雨。

九思 悼乱 

作者:不详

嗟嗟兮悲夫,殽乱兮纷拏。

茅丝兮同综,冠屦兮共絇。

督万兮侍宴,周邵兮负刍。

白龙兮见射,灵龟兮执拘。

仲尼兮困厄,邹衍兮幽囚。

伊余兮念兹,奔遁兮隐居。

将升兮高山,上有兮猴猿。

欲入兮深谷,下有兮虺蛇。

左见兮鸣鵙,右睹兮呼枭。

惶悸兮失气,踊跃兮距跳。

便旋兮中原,仰天兮增叹。

菅蒯兮野莽,雚苇兮仟眠。

鹿蹊兮继踵,貒貉兮蟫々。

鹯鹞兮轩轩,鹑鹌兮甄甄。

哀我兮寡独,靡有兮齐伦。

意欲兮沉吟,迫日兮黄昏。

玄鹤兮高飞,曾逝兮青冥。

鸧鹒兮喈喈,山鹊兮嘤嘤。

鸿鸬兮振翅,归雁兮于征。

吾志兮觉悟,怀我兮圣京。

垂屣兮将起,跓俟兮硕明。

九思 伤时 

作者:不详

惟昊天兮昭灵,阳气发兮清明。

风習習兮和暖,百草萌兮华荣。

堇荼茂兮扶疏,蘅芷彫兮莹嫇。

愍贞良兮遇害,将夭折兮碎糜。

时混混兮浇饡,哀当世兮莫知。

览往昔兮俊彦,亦诎辱兮系纍。

管束缚兮桎梏,百贸易兮传卖。

遭桓缪兮识举,才德用兮列施。

且从容兮自慰,玩琴书兮游戏。

迫中国兮窄陿,吾欲之兮九夷。

超五岭兮嵯峨,观浮石兮崔嵬。

陟丹山兮炎野,屯余车兮黄支。

就祝融兮稽疑,嘉己行兮无为。

乃回朅兮北逝,遇神孈兮宴娭。

欲静居兮自娱,心愁慼兮不能。

放余辔兮策驷,忽飙腾兮浮云。

蹠飞杭兮越海,从安期兮蓬莱。

缘天梯兮北上,登太一兮玉台。

使素女兮鼓簧,乘弋龢兮讴谣。

声噭誂兮清和,音晏衍兮要淫。

咸欣欣兮酣乐,余眷眷兮独悲。

顾章华兮太息,志恋恋兮依依。

九思 哀岁 

作者:不详

旻天兮清凉,玄气兮高朗。

北风兮潦洌,草木兮苍唐。

蛜蚨兮噍噍,蝍蛆兮穰穰。

岁忽忽兮惟暮,余感时兮悽怆。

伤俗兮泥浊,矇蔽兮不章。

宝彼兮沙砾,捐此兮夜光。

椒瑛兮涅汙,葈耳兮充房。

摄衣兮缓带,操我兮墨阳。

昇车兮命仆,将驰兮四荒。

下堂兮见虿,出门兮触蜂。

巷有兮蚰蜓,邑多兮螳螂。

睹斯兮嫉贼,心为兮切伤。

俯念兮子胥,仰怜兮比干。

投剑兮脱冕,龙屈兮蜿蟤。

潜藏兮山泽,匍匐兮丛攒。

窥见兮溪涧,流水兮沄沄。

鼋鼍兮欣欣,鳣鲇兮延延。

群行兮上下,骈罗兮列陈。

自恨兮无友,特处兮茕茕。

冬夜兮陶陶,雨雪兮冥冥。

神光兮颎颎,鬼火兮荧荧。

修德兮困控,愁不聊兮遑生。

忧纡兮郁郁,恶所兮写情。

九思 守志 

作者:不详

陟玉峦兮逍遥,览高冈兮峣峣。

桂树列兮纷敷,吐紫华兮布条。

实孔鸾兮所居,今其集兮惟鸮。

乌鹊惊兮哑哑,余顾瞻兮怊怊。

彼日月兮闇昧,障覆天兮祲氛。

伊我后兮不聪,焉陈诚兮效忠。

摅羽翮兮超俗,游陶遨兮养神。

乘六蛟兮蜿蝉,遂驰骋兮升云。

扬彗光兮为旗,秉电策兮为鞭。

朝晨发兮鄢郢,食时至兮增泉。

绕曲阿兮北次,造我车兮南端。

谒玄黄兮纳贽,崇忠贞兮弥坚。

历九宫兮遍观,睹秘藏兮宝珍。

就传说兮骑龙,与织女兮合婚。

举天罼兮掩邪,彀天弧兮射奸。

随真人兮翱翔,食元气兮长存。

望太微兮穆穆,睨三阶兮炳分。

相辅政兮成化,建烈业兮垂勋。

目瞥瞥兮西没,道遐迥兮阻叹。

志蓄积兮未通,怅敞罔兮自怜。

乱曰:天庭明兮云霓藏,三光朗兮镜万方。

斥蜥蜴兮进龟龙,策谋从兮翼机衡。

配稷契兮恢唐功,嗟英俊兮未为双。
!!大雅 文王之什 文王

文王在上,于昭于天。周虽旧邦,其命维新。有周不显,帝命不时。文王陟降,在帝左右。

亹亹文王,令闻不已。陈锡哉周,侯文王孙子。文王孙子,本支百世,凡周之士,不显亦世。

世之不显,厥犹翼翼。思皇多士,生此王国。王国克生,维周之桢;济济多士,文王以宁。

穆穆文王,于缉熙敬止。假哉天命。有商孙子。商之孙子,其丽不亿。上帝既命,侯于周服。

侯服于周,天命靡常。殷士肤敏。裸将于京。厥作裸将,常服黼冔。王之荩臣。无念尔祖。

无念尔祖,聿修厥德。永言配命,自求多福。殷之未丧师,克配上帝。宜鉴于殷,骏命不易!

命之不易,无遏尔躬。宣昭义问,有虞殷自天。上天之载,无声无臭。仪刑文王,万邦作孚。

!!大雅 文王之什 大明

明明在下,赫赫在上。天难忱斯,不易维王。天位殷适,使不挟四方。

挚仲氏任,自彼殷商,来嫁于周,曰嫔于京。乃及王季,维德之行。

大任有身,生此文王。维此文王,小心翼翼。昭事上帝,聿怀多福。厥德不回,以受方国。

天监在下,有命既集。文王初载,天作之合。在洽之阳,在渭之涘。

文王嘉止,大邦有子。大邦有子,伣天之妹。文定厥祥,亲迎于渭。造舟为梁,不显其光。

有命自天,命此文王。于周于京,缵女维莘。长子维行,笃生武王。保右命尔,燮伐大商。

殷商之旅,其会如林。矢于牧野,维予侯兴。上帝临女,无贰尔心。

牧野洋洋,檀车煌煌,驷騵彭彭。维师尚父,时维鹰扬。凉彼武王,肆伐大商,会朝清明。

!!大雅 文王之什 绵

绵绵瓜瓞。民之初生,自土沮漆。古公亶父,陶复陶冗,未有家室。

古公亶父,来朝走马。率西水浒,至于岐下。爰及姜女,聿来胥宇。

周原膴々,堇荼如饴。爰始爰谋,爰契我龟,曰止曰时,筑室于兹。

乃慰乃止,乃左乃右,乃疆乃理,乃宣乃亩。自西徂东,周爰执事。

乃召司空,乃召司徒,俾立室家。其绳则直,缩版以载,作庙翼翼。

捄之陾々,度之薨薨,筑之登登,削屡冯冯。百堵皆兴,鼛鼓弗胜。

乃立皋门,皋门有伉。乃立应门,应门将将。乃立冢土,戎丑攸行。

肆不殄厥愠,亦不陨厥问。柞棫拔矣,行道兑矣。混夷駾矣,维其喙矣!

虞芮质厥成,文王蹶厥生。予曰有疏附,予曰有先后。予曰有奔奏,予曰有御侮!

!!大雅 文王之什 棫朴

芃芃棫朴,薪之槱之。济济辟王,左右趣之。

济济辟王,左右奉璋。奉璋峨峨,髦士攸宜。

淠彼泾舟,烝徒楫之。周王于迈,六师及之。

倬彼云汉,为章于天。周王寿考,遐不作人?

追琢其章,金玉其相。勉勉我王,纲纪四方。

!!大雅 文王之什 旱麓

瞻彼旱麓,榛楛济济。岂弟君子,干禄岂弟。

瑟彼玉瓒,黄流在中。岂弟君子,福禄攸降。

鸢飞戾天,鱼跃于渊。岂弟君子,遐不作人?

清酒既载,骍牡既备。以享以祀,以介景福。

瑟彼柞棫,民所燎矣。岂弟君子,神所劳矣。

莫莫葛藟,施于条枚。岂弟君子,求福不回。

!!大雅 文王之什 思齐

思齐大任,文王之母,思媚周姜,京室之妇。大姒嗣徽音,则百斯男。

惠于宗公,神罔时怨,神罔时恫。刑于寡妻,至于兄弟,以御于家邦。

雍雍在宫,肃肃在庙。不显亦临,无射亦保。

肆戎疾不殄,烈假不瑕。不闻亦式,不谏亦入。肆成人有德,小子有造。古之人无斁,誉髦斯士。

!!大雅 文王之什 皇矣

皇矣上帝,临下有赫。监观四方,求民之莫。维此二国,其政不获。维彼四国,爰究爰度。上帝耆之,憎其式廓。乃眷西顾,此维与宅。

作之屏之,其菑其翳。修之平之,其灌其栵。启之辟之,其柽其椐。攘之剔之,其檿其柘。帝迁明德,串夷载路。天立厥配,受命既固。

帝省其山,柞棫斯拔,松柏斯兑。帝作邦作对,自大伯王季。维此王季,因心则友。则友其兄,则笃其庆,载锡之光。受禄无丧,奄有四方。

维此王季,帝度其心。貊其德音,其德克明。克明克类,克长克君。王此大邦,克顺克比。比于文王,其德靡悔。既受帝祉,施于孙子。

帝谓文王:无然畔援,无然歆羡,诞先登于岸。密人不恭,敢距大邦,侵阮徂共。王赫斯怒,爰整其旅,以按徂旅。以笃于周祜,以对于天下。

依其在京,侵自阮疆。陟我高冈,无矢我陵。我陵我阿,无饮我泉,我泉我池。度其鲜原,居岐之阳,在渭之将。万邦之方,下民之王。

帝谓文王:予怀明德,不大声以色,不长夏以革。不识不知,顺帝之则。帝谓文王:訽尔仇方,同尔弟兄。以尔钩援,与尔临冲,以伐崇墉。

临冲闲闲,崇墉言言。执讯连连,攸馘安安。是类是礻马,是致是附,四方以无侮。临冲茀茀,崇墉仡仡。是伐是肆,是绝是忽。四方以无拂。

!!大雅 文王之什 灵台

经始灵台,经之营之。庶民攻之,不日成之。经始勿亟,庶民子来。

王在灵囿,麀鹿攸伏。麀鹿濯濯,白鸟翯々。王在灵沼,于牣鱼跃。

虡业维枞,贲鼓维镛。于论鼓钟,于乐辟雍。

于论鼓钟,于乐辟雍。鼍鼓逢逢。矇瞍奏公。

!!大雅 文王之什 下武

下武维周,世有哲王。三后在天,王配于京。

王配于京,世德作求。永言配命,成王之孚。

成王之孚,下土之式。永言孝思,孝思维则。

 媚兹一人,应侯顺德。永言孝思,昭哉嗣服。

昭兹来许,绳其祖武。于万斯年,受天之祜。

受天之祜,四方来贺。于万斯年,不遐有佐。

!!大雅 文王之什 文王有声

文王有声,遹骏有声。遹求厥宁,遹观厥成。文王烝哉!

文王受命,有此武功。既伐于崇,作邑于丰。文王烝哉!

筑城伊淢,作丰伊匹。匪棘其欲,遹追来孝。王后烝哉!

王公伊濯,维丰之垣。四方攸同,王后维翰。王后烝哉!

丰水东注,维禹之绩。四方攸同,皇王维辟。皇王烝哉!

镐京辟雍,自西自东,自南自北,无思不服。皇王烝哉!

考卜维王,宅是镐京。维龟正之,武王成之。武王烝哉!

丰水有芑,武王岂不仕?诒厥孙谋,以燕翼子。武王烝哉!

!!大雅 生民之什 生民

厥初生民,时维姜嫄。生民如何?克禋克祀,以弗无子。履帝武敏歆,攸介攸止,载震载夙。载生载育,时维后稷。

诞弥厥月,先生如达。不拆不副,无菑无害。以赫厥灵。上帝不宁,不康禋祀,居然生子。

诞寘之隘巷,牛羊腓字之。诞寘之平林,会伐平林。诞寘之寒冰,鸟覆翼之。鸟乃去矣,后稷呱矣。

实覃实訏,厥声载路。诞实匍匐,克岐克嶷。以就口食。蓺之荏菽,荏菽旆旆。禾役穟穟,麻麦幪幪,瓜瓞唪唪。

诞后稷之穑,有相之道。茀厥丰草,种之黄茂。实方实苞,实种实褎。实发实秀,实坚实好。实颖实栗,即有邰家室。

诞降嘉种,维秬维秠,维穈维芑。恒之秬秠,是获是亩。恒之穈芑,是任是负。以归肇祀。

诞我祀如何?或舂或揄,或簸或蹂。释之叟叟,烝之浮浮。载谋载惟。取萧祭脂,取羝以軷,载燔载烈,以兴嗣岁。

卬盛于豆,于豆于登。其香始升,上帝居歆。胡臭亶时。后稷肇祀。庶无罪悔,以迄于今。

!!大雅 生民之什 行苇

敦彼行苇,牛羊勿践履。方苞方体,维叶泥泥。戚戚兄弟,莫远具尔。或肆之筵,或授之几。

肆筵设席,授几有缉御。或献或酢,洗爵奠斝。醓醢以荐,或燔或炙。嘉肴脾臄,或歌或咢。

敦弓既坚,四鍭既均,舍矢既均,序宾以贤。敦弓既句,既挟四鍭。

四鍭如树,序宾以不侮。

曾孙维主,酒醴维醽,酌以大斗,以祈黄耇。黄耇台背,以引以翼。寿考维祺,以介景福。

!!大雅 生民之什 既醉

既醉以酒,既饱以德。君子万年,介尔景福。

既醉以酒,尔肴既将。君子万年,介尔昭明。

昭明有融,高朗令终,令终有俶。公尸嘉告。

其告维何?笾豆静嘉。朋友攸摄,摄以威仪。

威仪孔时,君子有孝子。孝子不匮,永锡尔类。

其类维何?室家之壶。君子万年,永锡祚胤。

其胤维何?天被尔禄。君子万年,景命有仆。

其仆维何?厘尔女士。厘尔女士,从以孙子。

!!大雅 生民之什 凫鹥

凫鹥在泾,公尸在燕来宁。尔酒既清,尔肴既馨。公尸燕饮,福禄来成。

凫鹥在沙,公尸来燕来宜。尔酒既多,尔肴既嘉。公尸燕饮,福禄来为。

凫鹥在渚,公尸来燕来处。尔酒既湑,尔肴伊脯。公尸燕饮,福禄来下。

凫鹥在潀,公尸来燕来宗,既燕于宗,福禄攸降。公尸燕饮,福禄来崇。

凫鹥在亹,公尸来止熏熏。旨酒欣欣,燔炙芬芬。公尸燕饮,无有后艰。

!!大雅 生民之什 假乐

假乐君子,显显令德,宜民宜人。受禄于天,保右命之,自天申之。

千禄百福,子孙千亿。穆穆皇皇,宜君宜王。不愆不忘,率由旧章。

威仪抑抑,德音秩秩。无怨无恶,率由群匹。受福无疆,四方之纲。

之纲之纪,燕及朋友。百辟卿士,媚于天子。不解于位,民之攸塈。

!!大雅 生民之什 公刘

笃公刘,匪居匪康。乃埸乃疆,乃积乃仓;乃裹餱粮,于橐于囊。思辑用光,弓矢斯张;干戈戚扬,爰方启行。

笃公刘,于胥斯原。既庶既繁,既顺乃宣,而无永叹。陟则在巘,复降在原。何以舟之?维玉及瑶,鞞琫容刀。

笃公刘,逝彼百泉。瞻彼溥原,乃陟南冈。乃覯于京,京师之野。于时处处,于时庐旅,于时言言,于时语语。

笃公刘,于京斯依。跄跄济济,俾筵俾几。既登乃依,乃造其曹。执豕于牢,酌之用匏。食之饮之,君之宗之。

笃公刘,既溥既长。既景乃冈,相其阴阳,观其流泉。其军三单,度其隰原。彻田为粮,度其夕阳。豳居允荒。

笃公刘,于豳斯馆。涉渭为乱,取厉取锻,止基乃理。爰众爰有,夹其皇涧。溯其过涧。止旅乃密,芮鞫之即。

!!大雅 生民之什 泂酌

泂酌彼行潦,挹彼注兹,可以餴饎。岂弟君子,民之父母。

泂酌彼行潦,挹彼注兹,可以濯罍。岂弟君子,民之攸归。

泂酌彼行潦,挹彼注兹,可以濯溉。岂弟君子,民之攸塈。

!!大雅 生民之什 卷阿

有卷者阿,飘风自南。岂弟君子,来游来歌,以矢其音。

伴奂尔游矣,优游尔休矣。岂弟君子,俾尔弥尔性,似先公酋矣。

尔土宇昄章,亦孔之厚矣。岂弟君子,俾尔弥尔性,百神尔主矣。

尔受命长矣,茀禄尔康矣。岂弟君子,俾尔弥尔性,纯嘏尔常矣。

有冯有翼,有孝有德,以引以翼。岂弟君子,四方为则。

颙颙卬卬,如圭如璋,令闻令望。岂弟君子,四方为纲。

凤凰于飞,翙翙其羽,亦集爰止。蔼蔼王多吉士,维君子使,媚于天子。

凤凰于飞,翙翙其羽,亦傅于天。蔼蔼王多吉人,维君子命,媚于庶人。

凤凰鸣矣,于彼高冈。梧桐生矣,于彼朝阳。菶々萋萋,雍雍喈喈。

君子之车,既庶且多。君子之马,既闲且驰。矢诗不多,维以遂歌。

!!大雅 生民之什 民劳

民亦劳止,汔可小康。惠此中国,以绥四方。无纵诡随,以谨无良。式遏寇虐,憯不畏明。柔远能迩,以定我王。

民亦劳止,汔可小休。惠此中国,以为民逑。无纵诡随,以谨惛怓。式遏寇虐,无俾民忧。无弃尔劳,以为王休。

民亦劳止,汔可小息。惠此京师,以绥四国。无纵诡随,以谨罔极。式遏寇虐,无俾作慝。敬慎威仪,以近有德。

民亦劳止,汔可小愒。惠此中国,俾民忧泄。无纵诡随,以谨丑厉。式遏寇虐,无俾正败。戎虽小子,而式弘大。

民亦劳止,汔可小安。惠此中国,国无有残。无纵诡随,以谨缱绻。式遏寇虐,无俾正反。王欲玉女,是用大谏。

!!大雅 生民之什 板

上帝板板,下民卒瘅。出话不然,为犹不远。靡圣管管。不实于亶。犹之未远,是用大谏。

天之方难,无然宪宪。天之方蹶,无然泄泄。辞之辑矣,民之洽矣。辞之怿矣,民之莫矣。

我虽异事,及尔同僚。我即尔谋,听我嚣嚣。我言维服,勿以为笑。先民有言,询于刍荛。

天之方虐,无然谑谑。老夫灌灌,小子蹻々。匪我言耄,尔用忧谑。多将熇々,不可救药。

天之方懠。无为夸毗。威仪卒迷,善人载尸。民之方殿屎,则莫我敢葵?丧乱蔑资,曾莫惠我师?

天之牖民,如埙如篪,如璋如圭,如取如携。携无曰益,牖民孔易。民之多辟,无自立辟。

价人维藩,大师维垣,大邦维屏,大宗维翰,怀德维宁,宗子维城。无俾城坏,无独斯畏。

敬天之怒,无敢戏豫。敬天之渝,无敢驰驱。昊天曰明,及尔出王。昊天曰旦,及尔游衍。

!!大雅 荡之什 荡

荡荡上帝,下民之辟。疾威上帝,其命多辟。天生烝民,其命匪谌。靡不有初,鲜克有终。

文王曰咨,咨汝殷商。曾是彊御?曾是掊克?曾是在位?曾是在服?天降滔德,女兴是力。

文王曰咨,咨女殷商。而秉义类,彊御多怼。流言以对。寇攘式内。侯作侯祝,靡届靡究。

文王曰咨,咨女殷商。女炰烋于中国。敛怨以为德。不明尔德,时无背无侧。尔德不明,以无陪无卿。

文王曰咨,咨女殷商。天不湎尔以酒,不义从式。既衍尔止。靡明靡晦。式号式呼。俾昼作夜。

文王曰咨,咨女殷商。如蜩如螗,如沸如羹。小大近丧,人尚乎由行。内奰于中国,覃及鬼方。

文王曰咨,咨女殷商。匪上帝不时,殷不用旧。虽无老成人,尚有典刑。曾是莫听,大命以倾。

文王曰咨,咨女殷商。人亦有言:颠沛之揭,枝叶未有害,本实先拨。殷鉴不远,在夏后之世。

!!大雅 荡之什 抑

抑抑威仪,维德之隅。人亦有言:靡哲不愚,庶人之愚,亦职维疾。哲人之愚,亦维斯戾。

无竞维人,四方其训之。有觉德行,四国顺之。訏谟定命,远犹辰告。敬慎威仪,维民之则。

其在于今,兴迷乱于政。颠覆厥德,荒湛于酒。女虽湛乐从,弗念厥绍。罔敷求先王,克共明刑。

肆皇天弗尚,如彼泉流,无沦胥以亡。夙兴夜寐,洒扫庭内,维民之章。修尔车马,弓矢戎兵,用戒戎作,用逷蛮方。

质尔人民,谨尔侯度,用戒不虞。慎尔出话,敬尔威仪,无不柔嘉。白圭之玷,尚可磨也;斯言之玷,不可为也!

无易由言,无曰苟矣,莫扪朕舌,言不可逝矣。无言不仇,无德不报。惠于朋友,庶民小子。子孙绳绳,万民靡不承。

视尔友君子,辑柔尔颜,不遐有愆。相在尔室,尚不愧于屋漏。无曰不显,莫予云覯。神之格思,不可度思,矧可射思!

辟尔为德,俾臧俾嘉。淑慎尔止,不愆于仪。不僣不贼,鲜不为则。投我以桃,报之以李。彼童而角,实虹小子。

荏染柔木,言缗之丝。温温恭人,维德之基。其维哲人,告之话言,顺德之行。其维愚人,覆谓我僣。民各有心。

于乎小子,未知臧否。匪手携之,言示之事。匪面命之,言提其耳。借曰未知,亦既抱子。民之靡盈,谁夙知而莫成?

昊天孔昭,我生靡乐。视尔梦梦,我心惨惨。诲尔谆谆,听我藐藐。匪用为教,覆用为虐。借曰未知,亦聿既耄。

于乎,小子,告尔旧止。听用我谋,庶无大悔。天方艰难,曰丧厥国。取譬不远,昊天不忒。回遹其德,俾民大棘。

!!大雅 荡之什 桑柔

菀彼桑柔,其下侯旬,捋采其刘,瘼此下民。不殄心忧,仓兄填兮。倬彼昊天,宁不我矜?

四牡骙々,旟旐有翩。乱生不夷,靡国不泯。民靡有黎,具祸以烬。于乎有哀,国步斯频。

国步灭资,天不我将。靡所止疑,云徂何往?君子实维,秉心无竞。谁生厉阶,至今为梗?

忧心殷殷,念我土宇。我生不辰,逢天僤怒。自西徂东,靡所定处。多我覯痻,孔棘我圉。

为谋为毖,乱况斯削。告尔忧恤,诲尔序爵。谁能执热,逝不以濯?其何能淑,载胥及溺。

如彼溯风,亦孔之僾。民有肃心,{艹幵}云不逮。好是稼穑,力民代食。稼穑维宝,代食维好?

天降丧乱,灭我立王。降此蟊贼,稼穑卒痒。哀恫中国,具赘卒荒。靡有旅力,以念穹苍。

维此惠君,民人所瞻。秉心宣犹,考慎其相。维彼不顺,自独俾臧。自有肺肠,俾民卒狂。

瞻彼中林,甡甡其鹿。朋友已谮,不胥以穀。人亦有言:进退维谷。

维此圣人,瞻言百里。维彼愚人,覆狂以喜。匪言不能,胡斯畏忌?

维此良人,弗求弗迪。维彼忍心,是顾是复。民之贪乱,宁为荼毒。

大风有隧,有空大谷。维此良人,作为式穀。维彼不顺,征以中垢。

大风有隧,贪人败类。听言则对,诵言如醉。匪用其良,复俾我悖。

嗟尔朋友,予岂不知而作。如彼飞虫,时亦弋获。既之阴女,反予来赫。

民之罔极,职凉善背。为民不利,如云不克。民之回遹,职竞用力。

民之未戾,职盗为寇。凉曰不可,覆背善詈。虽曰匪予,既作尔歌!

!!大雅 荡之什 云汉

倬彼云汉,昭回于天。王曰:於乎!何辜今之人?天降丧乱,饥馑荐臻。靡神不举,靡爱斯牲。圭壁既卒,宁莫我听?

旱既大甚,蕴隆虫虫。不殄禋祀,自郊徂宫。上下奠瘗,靡神不宗。后稷不克,上帝不临。耗斁下土,宁丁我躬。

旱既太甚,则不可推。兢兢业业,如霆如雷。周余黎民,靡有孑遗。昊天上帝,则不我遗。胡不相畏?先祖于摧。

旱既太甚,则不可沮。赫赫炎炎,云我无所。大命近止,靡瞻靡顾。群公先正,则不我助。父母先祖,胡宁忍予?

旱既太甚,涤涤山川。旱魃为虐,如惔如焚。我心惮暑,忧心如熏。群公先正,则不我闻。昊天上帝,宁俾我遁?

旱既太甚,黾勉畏去。胡宁瘨我以旱?憯不知其故。祈年孔夙,方社不莫。昊天上帝,则不我虞。

敬恭明神,宜无悔怒。旱既太甚,散无友纪。鞫哉庶正,疚哉冢宰。趣马师氏,膳夫左右。靡人不周。无不能止,瞻卬昊天,云如何里!

瞻卬昊天,有嘒其星。大夫君子,昭假无赢。大命近止,无弃尔成。何求为我。以戾庶正。瞻卬昊天,曷惠其宁?

!!大雅 荡之什 崧高

崧高维岳,骏极于天。维岳降神,生甫及申。维申及甫,维周之翰。四国于蕃。四方于宣。

亹亹申伯,王缵之事。于邑于谢,南国是式。王命召伯,定申伯之宅。登是南邦,世执其功。

王命申伯,式是南邦。因是谢人,以作尔庸。王命召伯,彻申伯土田。王命傅御,迁其私人。

申伯之功,召伯是营。有俶其城,寝庙既成。既成藐藐,王锡申伯。四牡蹻々,钩膺濯濯。

王遣申伯,路车乘马。我图尔居,莫如南土。锡尔介圭,以作尔宝。往近王舅,南土是保。

申伯信迈,王饯于郿。申伯还南,谢于诚归。王命召伯,彻申伯土疆。以峙其粻,式遄其行。

申伯番番,既入于谢。徒御啴々。周邦咸喜,戎有良翰。不显申伯,王之元舅,文武是宪。

申伯之德,柔惠且直。揉此万邦,闻于四国。吉甫作诵,其诗孔硕。其风肆好,以赠申伯。

!!大雅 荡之什 烝民

天生烝民,有物有则。民之秉彝,好是懿德。天监有周,昭假于下。保兹天子,生仲山甫。

仲山甫之德,柔嘉维则。令仪令色。小心翼翼。古训是式。威仪是力。天子是若,明命使赋。

王命仲山甫,式是百辟,缵戎祖考,王躬是保。出纳王命,王之喉舌。赋政于外,四方爰发。

肃肃王命,仲山甫将之。邦国若否,仲山甫明之。既明且哲,以保其身。夙夜匪解,以事一人。

人亦有言,柔则茹之,刚则吐之。维仲山甫,柔亦不茹,刚亦不吐。不侮矜寡,不畏强御。

人亦有言,德輶如毛,民鲜克举之。我仪图之,维仲山甫举之。爱莫助之。衮职有阙,维仲山甫补之。

仲山甫出祖。四牡业业。征夫捷捷,每怀靡及。四牡彭彭,八鸾锵锵。王命仲山甫,城彼东方。

四牡骙々,八鸾喈喈。仲山甫徂齐,式遄其归。吉甫作诵,穆如清风。仲山甫永怀,以慰其心。

!!大雅 荡之什 韩奕

奕奕梁山,维禹甸之,有倬其道。韩侯受命,王亲命之:缵戎祖考,无废朕命。夙夜匪解,虔共尔位,朕命不易。榦不庭方,以佐戎辟。

四牡奕奕,孔修且张。韩侯入觐,以其介圭,入觐于王。王锡韩侯,淑旂绥章,簟茀错衡,玄衮赤舄,钩膺镂锡,鞹鞃浅幭,鞗革金厄。

韩侯出祖,出宿于屠。显父饯之,清酒百壶。其殽维何?炰鳖鲜鱼。其蔌维何?维筍及蒲。其赠维何?乘马路车。笾豆有且。侯氏燕胥。

韩侯取妻,汾王之甥,蹶父之子。韩侯迎止,于蹶之里。百两彭彭,八鸾锵锵,不显其光。诸娣从之,祁祁如云。韩侯顾之,烂其盈门。

蹶父孔武,靡国不到。为韩姞相攸,莫如韩乐。孔乐韩土,川泽訏訏,鲂鱮甫甫,麀鹿噳々,有熊有罴,有猫有虎。庆既令居,韩姞燕誉。

溥彼韩城,燕师所完。以先祖受命,因时百蛮。王锡韩侯,其追其貊。奄受北国,因以其伯。实墉实壑,实亩实藉。献其貔皮,赤豹黄罴。

!!大雅 荡之什 江汉

江汉浮浮,武夫滔滔。匪安匪游,淮夷来求。既出我车,既设我旟。匪安匪舒,淮夷来铺。

江汉汤汤,武夫洸々。经营四方,告成于王。四方既平,王国庶定。时靡有争,王心载宁。

江汉之浒,王命召虎:式辟四方,彻我疆土。匪疚匪棘,王国来极。于疆于理,至于南海。

王命召虎:来旬来宣。文武受命,召公维翰。无曰予小子,召公是似。肇敏戎公,用锡尔祉。

厘尔圭瓒,秬鬯一卣。告于文人,锡山土田。于周受命,自召祖命,虎拜稽首:天子万年!

虎拜稽首,对扬王休。作召公考:天子万寿!明明天子,令闻不已,矢其文德,洽此四国。

!!大雅 荡之什 常武

赫赫明明。王命卿士,南仲大祖,大师皇父。整我六师,以修我戎。既敬既戒,惠此南国。

王谓尹氏,命程伯休父,左右陈行。戒我师旅,率彼淮浦,省此徐土。不留不处,三事就绪。

赫赫业业,有严天子。王舒保作,匪绍匪游。徐方绎骚,震惊徐方。如雷如霆,徐方震惊。

王奋厥武,如震如怒。进厥虎臣,阚如虓虎。铺敦淮濆,仍执丑虏。截彼淮浦,王师之所。

王旅啴々,如飞如翰。如江如汉,如山之苞。如川之流,绵绵翼翼。不测不克,濯征徐国。

王犹允塞,徐方既来。徐方既同,天子之功。四方既平,徐方来庭。徐方不回,王曰还归。

!!大雅 荡之什 瞻卬

瞻卬昊天,则不我惠。孔填不宁,降此大厉。邦靡有定,士民其瘵。蟊贼蟊疾,靡有夷届。罪罟不收,靡有夷瘳。

人有土田,女反有之。人有民人,女覆夺之。此宜无罪,女反收之。彼宜有罪,女覆说之。

哲夫成城,哲妇倾城。懿厥哲妇,为枭为鸱。妇有长舌,维厉之阶。乱匪降自天,生自妇人。匪教匪诲,时维妇寺。

鞫人忮忒。谮始竞背。岂曰不极?伊胡为慝?如贾三倍,君子是识。妇无公事,休其蚕织。

天何以剌?何神不富?舍尔介狄,维予胥忌。不吊不祥,威仪不类。人之云亡,邦国殄瘁。

天之降罔,维其优矣。人之云亡,心之忧矣。天之降罔,维其几矣。人之云亡,心之悲矣。

觱沸槛泉,维其深矣。心之忧矣,宁自今矣?不自我先,不自我后。藐藐昊天,无不克巩。无忝皇祖,式救尔后。

!!大雅 荡之什 召旻

旻天疾威,天笃降丧。瘨我饥馑,民卒流亡。我居圉卒荒。

天降罪罟,蟊贼内讧。昏椓靡共,溃溃回遹,实靖夷我邦。

皋皋訿々,曾不知其玷。兢兢业业,孔填不宁,我位孔贬。

如彼岁旱,草不溃茂,如彼栖苴。我相此邦,无不溃止。

维昔之富不如时,维今之疚不如兹。彼疏斯粺,胡不自替?职兄斯引。

池之竭矣,不云自频。泉之竭矣,不云自中。溥斯害矣,职兄斯弘,不烖我躬。

昔先王受命,有如召公,日辟国百里,今也日蹙国百里。於乎哀哉!维今之人,不尚有旧!
钦定四库全书     集部十

  东坡词        词曲类一【词集之属】提要

  【臣】等谨案东坡词一巻宋苏轼撰轼有易传诸书别着録宋史艺文志载轼词一巻马端临经籍考则称东坡词二巻此本乃毛晋所刻旧有晋跋云得金陵刋本凡附入苏黄秦栁之作俱经删去然刋削尚有未尽者如开巻阳闗曲三首已载入诗集之中乃饯李公择絶句其曰以小秦王歌之者乃唐人歌诗之法宋亦失传惟小秦王调近絶句故借其声律以歌之非别有词调谓之阳闗曲也使当时有阳闗曲一调则必自有本调之宫律何必更借小秦王乎以是收之词集未免泛滥至集中念奴娇一首朱彞尊词综据容斋随笔所载黄庭坚手书本改浪淘尽为浪声沈多情应笑我早生华发为多情应是笑我生华发因谓浪淘尽三字于调不协多情句应上四下五然考毛幵此调如算无地阆风顶皆作仄平仄岂可俱谓之未协石孝友此调云九重频念此衮衣华发周紫芝此调云白头应记得尊前倾葢亦未尝不作上四下五句晋此刻不取其説仍从旧本则特为有见矣词自晚唐五代以来以清切婉丽为宗至栁永而一变如诗家之有白居易至轼而又一变如诗家之有韩愈遂开南宋辛弃疾等一派寻源溯流不能不谓之变格然谓之不工则不可故至今日尚与花间一派并行而不能偏废也乾隆四十四年三月恭校上

  总纂官【臣】纪昀【臣】陆锡熊【臣】孙士毅

  总 校 官 【臣】 陆 费 墀

  钦定四库全书

  东坡词

  宋 苏轼 撰

  阳关曲【中秋作夲名小秦王入腔卽阳关曲】

  暮云収尽溢清寒银汉无声转玉盘此生此夜不长好明月明年何处看

  又【军中】

  受降城下紫髯郎戏马台南旧战场恨君不取契丹首金甲牙旗归故乡

  又【李公择○旧刻重出】

  济南春好雪初晴才到龙山马足轻使君莫忘霅溪女时作阳关肠防声

  如梦令【元丰十年十二月十八日浴泗州雅熙墖下戏作如梦令阕此曲本唐庄宗制名忆仙姿嫌其名不雅故改为如梦令葢庄宗作此词卒章云如梦如梦和泪出门相送因取以为名】

  水垢何曾相受细看两俱无有寄语揩背人尽日劳君挥肘轻手轻手居士夲来无垢

  又【同前】

  自净方能洗彼我自汗流呀气寄语澡浴人且共肉身游戏但洗但洗俯为人间一切

  又【有寄】

  为向东坡传语人在画堂深处别后有谁来雪压小桥无路归去归去江上一犂春雨

  又【春思】

  手种堂前桃李无限绿阴青子帘外百舌儿惊起五更春睡居士居士莫忘小桥流水

  又【题淮山楼】

  城上层楼疉巘城下清淮古汴举手揖吴云人与暮天俱远魂防魂防后夜松江月满

  生查子【诉别】

  三度别君来此别真迟暮白尽老髭须明日淮南去酒罢月随人泪湿花如雾后夜逐君还梦绕湖边路

  昭君怨【送别】

  谁作桓伊三弄惊破绿窗幽梦新月与愁烟满江天欲去又还不去明日落花飞絮飞絮送行舟水东流点绛唇【己已重九和苏坚○旧刻七首攷醉漾轻舟又月转乌啼俱秦淮海作或云此二词东坡有手迹流传于世遂编入东坡词然亦安知非秦词苏字耶今依宋夲删去】

  我辈情钟古来谁似龙山宴而今楚甸戏马余飞观顾谓佳人不觉秋强半箫声远鬓云撩乱愁入参差雁

  又【庚午重九再用前韵】

  不用悲秋今年身健还高宴江村海甸总作空花观尚想横汾兰菊纷相半楼船逺白云飞乱空有年年雁

  又【再和送钱公永】

  莫唱阳关风流公子方终宴秦山禹甸缥缈真竒观北望平原落日山衔半孤防远我歌君乱一送西飞雁

  又【杭州】

  闲倚胡床庾公楼外峰千朶与谁同坐明月清风我别椉一来有唱应须和还知麽自从添个风月平分破

  又【或刻贺方囘】

  红杏飘香柳含烟翠拖金缕水边朱戸门掩黄昏烛影摇风一枕伤春绪归不去凤楼何处芳草迷归路浣溪沙【新秋○旧刻四十五首攷风压轻云贴水飞是李后主作玉椀氷寒滴露华是晏同叔作俱删去旧逸晩菊花前敛翠蛾一首今増入】

  风卷珠帘自上钩萧萧乱叶报新秋独携纤手上高楼缺月向人舒窈窕三星当戸照绸缪香生雾縠见纤

  柔

  又【游蕲水清泉寺寺临兰溪溪水西流】

  山下兰芽短浸溪松间沙路净无泥萧萧暮雨子规啼谁道人生无再少门前流水尚能西休将白发唱黄

  鸡

  又【真子渔父云西塞山边白鸟飞桃花流水鳜鱼肥青蒻笠绿簑衣斜风细雨不须归此语妙絶恨莫能歌者故増数语令以浣溪沙歌之○或刻黄山谷】

  西塞山边白鹭飞散花洲外片防微桃花流水鳜鱼肥自庇一身青篛笠相随到处绿蓑衣斜风细雨不须

  归

  又【十一月二日雨后微雪太守徐君猷携酒见过坐上作浣溪沙三首明日酒醒雪大作又作二首】

  覆块青青麦未苏江南云叶暗随车临臯烟景世间无雨脚半収檐防线雪林初下瓦疎珠归来氷颗乱黏

  须

  又【前韵】

  醉梦昏昏晓未苏门前辘辘使君车扶头一盏怎生无废圃寒蔬挑翠羽小槽春酒冻真珠清香细细嚼梅

  须

  又【前韵】

  雪里餐氊例姓苏使君载酒为囘车天寒酒色转头无荐士已闻飞鹗表报恩应不用蛇珠醉中还许揽桓

  须

  又【再和前韵】

  半夜银山上积苏朝来九陌带随车涛江烟渚一时无空腹有诗衣有结湿薪如桂米如珠冻吟谁伴撚髭

  须

  又【前韵】

  万顷风涛不记苏雪晴江上麦千车但令人饱我愁无翠袖倚风萦柳絮绛唇得酒烂樱珠尊前呵手镊霜

  须

  又【九月九日二首】

  珠桧丝杉冷欲霜山城歌舞助凄凉且餐山色饮湖光共挽朱轓留半日强揉青蕋作重阳不知明日为谁

  黄

  又【和前韵】

  霜鬓真堪插拒霜哀弦危柱作伊凉暂时流转为风光未遣清尊空北海莫因长笛赋山阳金钗玉腕泻鹅

  黄

  又【有感】

  傅粉郎君又粉奴莫教施粉与施朱自然氷玉照香酥有客能为神女赋慿君送与雪儿书梦魂东去觅桑

  榆

  又【咏橘】

  菊暗荷枯一夜霜新苞绿叶照林光竹篱茆舍出青黄香雾噀人惊半破清泉流齿怯初尝吴姬三日手犹

  香

  又【公守湖辛未上元日作防于伽蓝中时长老法惠在座人有献剪伽花防甚竒谓有初春兴因作浣溪沙二首寄袁公济】

  雪颔霜髯不自惊更将剪防发春荣羞颜未醉已先頳莫唱黄鸡并白髪且呼张友唤殷兄有人归去欲卿

  卿

  又【和前韵】

  料峭东风翠幕惊云何不饮对公荣水精盘莹玉鳞頳花影莫辜三夜月朱颜未称五年兄翰林子墨主人

  卿

  又【徐门石潭谢雨道上作五首】

  照日深红防见鱼连溪绿暗晩藏乌黄童白叟聚睢盱麋鹿逢人虽未惯猿猱闻鼓不须呼归家説与采桑

  姑

  又

  旋抹红妆看使君三三五五棘篱门相挨踏破蒨罗裙老幼扶携収麦社乌鸢翔舞赛神村道逢醉叟卧黄

  昏

  又

  麻叶层层檾叶光谁家煑茧一村香隔篱娇语络丝娘垂白杖藜擡醉眼捋青捣麨软饥肠问言豆叶几时

  黄

  又

  蔌蔌衣巾落枣花村南村北响缲车牛衣古柳卖黄瓜酒困路长惟欲睡日高人渴谩思茶敲门试问野人

  家

  又

  软草平莎过雨新轻沙走马路无尘何时収拾耦畊身日防桑麻光似泼风来蒿艾气如薰使君元是此中

  人

  又【春情】

  道字娇讹苦未成未应春阁梦多情朝来何事绿鬟倾防索身轻长趂燕红窗睡重不闻莺困人天气近清

  明

  又【菊节别元素】

  缥缈危楼紫翠间良辰乐事苦难全感时怀旧独凄然璧月琼枝空夜夜菊花人貌自年年不知来岁与谁

  看

  又【春情】

  桃李溪边驻画轮鹧鸪声里倒清尊夕阳虽好近黄昏香在衣裳妆在臂水连芳草月连云几人归去不销

  魂

  又【荷花】

  四面垂杨十里荷问君何处最花多画楼南畔夕阳和天气乍凉人寂寞光阴须得酒消磨且来花里听笙

  歌

  又【赠闾邱朝议时过徐州】

  一别姑苏已四年秋风南浦送归船画帘重见水中仙霜鬓不须催我老杏花依旧驻君颜夜阑相对梦魂

  间

  又【有赠】

  惟见眉间一点黄诏书催发羽书忙从教娇泪洗红妆上殿云霄生羽翼论兵齿颊带风霜归来衫袖有天

  香

  又【忆旧】

  长记鸣琴子贱堂朱颜绿髪映垂杨如今秋鬓数茎霜聚散交游如梦寐升沉闲事莫思量仲卿终不避桐

  乡

  又【绍圣元年十月十三日与程乡令侯晋叔归安簿谭汲游大口寺野饮松下设松黄汤作此阕余近酿酒名万家春盖岭南万戸酒也】

  罗袜空飞洛浦尘锦袍不见谪仙神携壶借草亦天真玉粉轻黄千岁药雪花浮动万家春醉归江路野梅

  新

  又【重九】

  白雪清词出坐间爱君才器两俱全异乡风景却依然可恨相逢能几日不知重防是何年茱茰子细更重

  看

  又【元丰七年十月二十四日从泗州刘倩叔游南山】

  细雨斜风作晓寒淡烟疎柳媚晴滩入淮清洛渐漫漫雪沫乳花浮午盏蓼芽蒿笋试春盘人间有味是清

  欢

  又【送梅庭老赴潞州学官】

  门外东风雪洒裾山头囘首望三吴不应弹铗为无鱼上党从来天下脊先生元是古之儒时平不用鲁连

  书

  又【徐州藏春阁园中】

  惭愧今年二麦丰千畦翠浪舞晴空化工余力染夭红归去三公应倒载阑街拍手笑儿童甚时名作锦薰

  笼

  又【扬州赏芍药樱桃】

  芍药樱桃两鬬新名园高会送芳辰洛阳初夏广陵春红玉半开菩萨面丹砂秾点柳枝唇尊前还有个中

  人

  又【赠楚守田待制小鬟】

  学画鵶儿正妙年阳城下蔡困嫣然慿君莫唱短因缘雾帐吹笙香嫋嫋霜庭按舞月娟娟曲终红袖落双

  缠

  又【和前韵】

  一梦江湖费五年归来风物故依然相从一醉是前缘迁客不应常眊矂使君为出小婵娟翠鬟聊着小诗

  纒

  又【端午】

  轻汗微微透碧纨明朝端午浴芳兰流香涨腻满晴川防线轻纒红玉臂小符斜挂绿云鬟佳人相见一千

  年

  又【感旧】

  徐邈能中酒圣贤刘伶席地幕青天潘郎白璧为谁连无可奈何新白髪不如归去旧青山恨无人借买山

  钱

  又【自适】

  倾葢相逢胜白头故山空复梦松楸此心安处是菟裘卖劒买牛真欲老乞浆得酒更何求愿为辞社宴春

  秋

  又【寓意和前韵】

  炙手无人傍屋头萧萧晩雨脱梧楸谁怜季子敝貂裘顾我已无当世望似君须向古人求岁寒松栢肯惊

  秋

  又【即事】

  画隼横江喜再游老鱼跳槛识清讴流年未肯付东流黄菊篱边无怅望白云乡里有温柔挽囘霜鬓莫教

  休

  又【方响】

  花满银塘水漫流犀槌玉板奏凉州顺风环佩过秦楼逺汉碧云轻漠漠今宵人在鹊桥头一声敲彻绛河

  秋

  又【端午】

  【阙】袂轻风不破尘玉簪犀璧醉佳辰一番红粉【阙】谁新团扇只堪题往事新丝那解系行人酒阑滋味似残

  春

  又

  几共查梨到雪霜一经题品便生光木奴何处避雌黄北客有来初未识南金无价喜新尝含滋嚼句齿牙

  香

  又

  山色横侵蘸晕霞湘川风静吐寒花远林屋散【阙】啼鸦梦到故园多少路酒醒南望隔天涯月明千里照平

  沙

  又【重阳○旧刻逸】

  晩菊花前敛翠蛾挼花传酒缓声歌柳枝团扇别离多拥髻凄凉论旧事防随织女度银梭当年今夕奈愁

  何

  减字木兰花【自钱塘被召林子中作郡守有防坐中营妓出牒郑容求落籍高莹求从良子中呈东坡东坡索笔为减字木兰花书牒后时用郑容落籍高莹从良八字于句端也兼赠润守许仲途】

  郑庄好客容我尊前先堕帻落笔生风籍籍声名不负公 高山白早莹骨氷肤那解老从此南徐良夜清风月满湖

  又【寓意】

  云鬟倾倒醉倚阑干风月好慿仗相扶误入仙家碧玉壶 连天衰草不走湖南西去道一舸姑苏便逐防夷去得无

  又【荔枝】

  闽溪珍献过海云防来似箭玉座金盘不贡竒葩四百年 轻红酿白雅称佳人纤手擘骨细肌香恰是当年十八娘

  又【送东武令赵晦之】

  贤哉令尹三仕已之无喜愠我独何人犹把虚名玷搢绅 不如归去二顷良田无觅处归去来兮待有良田是几时

  又【送别】

  玉觞无味中有佳人千点泪学道忘忧一念还成不自由 如今未见归去东园花似霰一语相开匹似当初本不来

  又【送赵令】

  春光亭下流水如今何在也岁月如梭白首相看拟奈何 故人重见世事年来千万变官况阑惭愧青松守岁寒

  又【过吴兴李公择生子三日防客作此词戏之】

  惟熊佳梦释氏老君防抱送壮气横秋未满三朝已食牛 犀钱玉果利市平分沾四座多谢无功此事如何到得侬

  又【得书】

  晓来风细不防鹊声来报喜却羡寒梅先觉春风一夜来 香牋一纸写尽囘纹机上意欲巻重开读徧千囘与万囘

  又【送别】

  天台旧路应恨刘郎来又去别酒频倾忍听阳关第四声 刘郎未老怀恋仙乡重得到只恐因循不见如今劝酒人

  又【钱塘西湖有诗僧清顺居其上自名藏春坞门前有二古松各有凌霄花络其上顺常昼卧其下子瞻为郡一日屏骑从过之松风骚然顺指落花觅句子瞻为赋此词】

  双龙对起白甲苍髯烟雨里疎影微香下有幽人昼梦长 湖风清软双鹊飞来争噪晩翠红轻时下凌霄百尺英

  又【赠小鬟琵琶】

  琵琶絶艺年记都来十一二拨弄么弦未解将心指下传 主人嗔小欲向东风先醉倒已属君家且更从容等待他

  又【立春】

  春牛春杖无限春风来海上便与春工染得桃红似肉红 春幡春胜一阵春风吹酒醒不似天涯卷起杨花似雪花

  又【雪词】

  雪容皓白破晓玉英纷似织风力无端欲学杨花更耐寒 相如未老梁苑犹能陪俊少莫惹闲愁且折江梅上小楼

  又

  玉房金蕋宜在玉人纤手里淡月朦胧更有微微弄袖风 温香熟美醉慢云鬟垂两耳多谢春工不是花红是玉红

  又【春月】

  春庭月午摇荡香醪光欲舞歩转回廊半落梅花婉娩香 轻风薄雾总是少年行乐处不似秋光只与离人照防肠

  又【赠胜之】

  天然宅院赛了千千并万万説与贤知表德元来是胜之 今来十四海里猴儿奴子是要睹休痴六只骰儿六点儿

  又【琴】

  神闲意定万籁収声天地静玉指氷弦未动宫商意已传 悲风流水写出寥寥千古意归去无眠一夜余音在耳边

  又

  银筝旋品不用纒头千尺锦妙思如泉一洗闲愁十五年 为公少止起舞属公公莫起风里银山摆撼鱼龙我自闲

  又【赠君猷家姬】

  柔和性气雅称佳名呼懿懿解舞能讴絶妙年中有品流 眉长眼细淡淡梳妆新绾髻懊恼风情春着花枝百态生

  又

  莺初解语最是一年春好处微如酥草色遥看近却无 休辞醉倒花不看开人易老莫待春囘颠倒红英间绿苔

  又

  江南游女问我何年归得去细风微两足如霜挽纻衣 江亭夜语喜见京华新様舞莲歩轻飞迁客今朝始是归

  又【赠徐君猷三侍人一妩卿】

  娇多媚防体柳轻盈千万态殢主尤宾敛黛含嚬喜又嗔 徐君乐饮笑谑从伊情意恁脸嫩肤红花倚朱阑裹住风

  又【胜之】

  双鬟绿坠娇眼横波眉黛翠妙舞蹁跹掌上身轻意态妍 曲穷力困笑倚人防香喘喷老大逢欢昏眼犹能仔细防

  又【庆姬】

  天真雅丽容态温柔心性慧响亮歌喉遏住行云翠不収 妙词佳曲啭出新声能防续重客多情满劝金巵玉手擎

  诉衷情【送述古迓元素】

  钱塘风景古来竒太守例能诗先驱负弩何在心已浙江西 花尽后叶飞时凄凄若为情绪更问新官向旧官啼

  又【海棠○或刻晏同叔】

  海棠珠缀一重重清晓近帘栊胭脂谁与匀淡偏向脸边浓 看叶嫩惜花红意无穷如花似叶岁岁年年共占春风

  又【琵琶女】

  小莲初上琵琶弦弹破碧云天分明绣阁幽恨都向曲中传 肤莹玉鬓梳蝉绮窗前素蛾今夜故故随人似鬬婵娟

  菩萨鬘【歌妓】

  绣帘高卷倾城出灯前防滟横波溢皓齿发清歌春山入翠蛾 凄音休怨乱我已先偷玩梅蕚月窗虚累累一串珠

  又

  碧纱微露纤纤玉一曲云和湘水绿越调变新声龙吟彻骨清 夜长残酒醒顿觉霜袍冷不见意中人新啼压旧痕

  又【西湖】

  秋风湖上萧萧雨使君欲去还留住今日谩留君明朝愁杀人 尊前千点泪洒向长河水不用敛双蛾路人啼更多

  又【杭妓往苏】

  玉童西迓浮邱伯洞天冷落秋萧瑟不用许飞琼瑶台空月明 清香凝夜宴借与韦郎看莫便过姑苏扁舟下五湖

  又【阙文】

  天怜豪俊【原缺】    向松江满【缺】景为淹留从君都占秋 身闲惟【缺】   遨游首帝梦【缺】  匆匆归去时

  又【代妓送陈述古】

  娟娟缺月西南落相思拨防琵琶索枕泪梦魂中觉来眉晕重 画堂堆烛泪长笛吹新水醉客各西东应思陈孟公

  又【感旧】

  玉笙不受珠唇防离声凄咽胸填满遗恨几千秋恩留人不留 他年京国酒泪攀枯柳莫唱短因縁长安远似天

  又【新月】

  画檐初挂弯弯月孤光未满先忧缺还认玉帘钩天孙梳洗楼 佳人言语好不愿求新巧此恨固应知愿人无别离

  又【七夕】

  风回仙【原缺】开扇更阑月坠星河转枕上梦魂惊晓檐疎雨零 相逢虽草草长共天难老终不羡人间人间夜似年

  又【有寄】

  城隅静女何人见先生日夜歌彤管谁识蔡姬贤江南顾彦先 先生那久困汤沐须名郡惟有谢夫人从来见拟伦

  又

  买田阳羡吾将老从来只为溪山好来往一虚舟聊随物外游 有书仍懒着水调歌归去筋力不辞诗要须风雨时

  又【囘文】

  落花闲院春衫薄薄衫春院闲花落迟日恨依依依依恨日迟 梦囘鸎舌弄弄舌鸎囘梦邮便问人羞羞人问便邮

  又【夏景囘文】

  火云凝汗挥珠颗颗珠挥汗凝云火琼防碧纱轻轻纱碧防琼 晕腮嫌枕印印枕嫌腮晕闲照晩妆残残妆晩照闲

  又【囘文】

  峤南江浅红梅小小梅红浅江南峤窥我向疎篱篱疎向我窥 老人行即到到即行人老离别惜残枝枝残惜别离

  又【囘文春闺怨】

  翠鬟斜幔云垂耳耳垂云幔斜鬟翠春晩睡昏昏昏昏睡晩春 细花梨雪坠坠雪梨花细颦浅念谁人人谁念浅颦

  又【囘文夏闺怨】

  柳庭风静人眠昼昼眠人静风庭柳香汗薄衫凉凉衫薄汗香 手红氷腕藕藕腕氷红手郎笑藕丝长长丝藕笑郎

  又【囘文秋闺怨】

  井梧双照新妆冷冷妆新照双梧井羞对井花愁愁花井对羞 影孤怜夜永永夜怜孤影楼上不宜愁愁宜不上楼

  又【囘文冬闺怨】

  雪花飞防融香颊颊香融防飞花雪欺雪任单衣衣单任雪欺 别时梅子结结子梅时别归不恨开迟迟开恨不归

  又

  娟娟侵鬓妆痕浅双颦相媚弯如剪一瞬百般宜无论笑与啼 酒阑思翠被特故腾腾地生怕促归轮微波先泥人

  又【咏足】

  涂香莫惜莲承歩长愁罗袜凌波去只见舞回风都无行处踪 偷穿宫様稳并立双趺困纤妙説应难须从掌上看

  又

  玉镮坠耳黄金饰轻衫罩体香罗碧缓歩困春醪春融脸上桃 花钿从委地谁与郎为意长爱月华清此时憎月明

  采桑子【润州东景楼与孙巨源相遇】

  多情多感仍多病多景楼中樽酒相逢乐事囘头一笑空 停杯且听琵琶语细撚轻拢醉脸春融斜照江天一抹红

  卜算子【感旧】

  蜀客到江南长忆吴山好吴蜀风流自古同归去应须早 还与去年人共借西湖草莫惜尊前仔细看应是容颜老

  又【惠州有温都监女颇有色年十六不肯嫁人闻坡至甚喜毎夜闻坡讽咏则徘徊窗下坡觉而推窗则其女逾墙而去坡从而物色之曰吾当呼王郎与之子为婣未几而坡过海女遂卒于沙滩侧坡囘惠为赋此词】

  缺月挂疎桐漏防人初静时见幽人独往来缥缈孤鸿影 惊起却囘头有恨无人省拣尽寒枝不肯栖寂寞沙洲冷【一刻枫落吴江冷】

  好事近【送君猷】

  红粉莫悲啼俯仰半年离别看取雪堂坡下老农夫凄切 明年春水漾桃花柳防隘舟楫从此满城歌吹看黄州阗咽

  又【元刻不载】

  烟外倚危楼初见远灯明灭却跨玉虹归去看洞天星月 当时张范风流在况一樽浮雪莫问世间何事与劎头微吷

  又【湖上】

  湖上晴时秋水半篙初没朱槛俯窥寒鉴照衰颜华髪 醉中欲堕白纶巾溪风漾流月独棹小舟归去任烟波飘兀

  华清引【感旧】

  平时十月幸莲汤玉甃琼梁五家车马如水珠玑满路防 翠华一去掩方床独留烟树苍苍至今清夜月依旧过缭墙

  谒金门【秋夜】

  秋帷里长漏伴人无寐低玉枕凉轻绣被一番秋气味晓色又侵窗纸窗外鸡声初起声断几声还到耳已

  明声未已

  又【秋兴】

  秋池阁风傍晓庭帘幙霜叶未衰吹未落半惊鸦喜鹊自笑浮名情薄似与世人疎略一片嬾心双嬾脚好

  教闲处着

  又【秋感】

  今夜雨断送一年残暑坐听潮声来别浦明朝何处去辜负金尊绿醑来岁今宵圆否酒醒梦囘愁几许夜

  阑还独语

  清平乐【秋词】

  清淮浊汴更在江西防红斾到时黄叶乱霜入梁王故苑 秋原何处携壶停骖访古踟蹰双庙遗风尚在漆园傲吏应无

  双荷叶

  双溪月清光偏照双荷叶双荷叶红心未偶绿衣偷结背风迎雨泪珠滑轻舟短櫂先秋折先秋折烟鬟未

  上玉杯微缺

  更漏子【送孙巨源】

  水涵空山照市西汉二疎乡里新白髪旧黄金故人恩义深 海东头山尽处自古客槎来去槎有信赴秋期使君行不归

  占春芳

  红杏了夭桃尽独自占春芳不比人间兰麝自然透骨生香 对酒莫相忘似佳人兼合明光只忧长笛吹花落除是宁王

  乌夜啼【寄远】

  莫怪归心甚速西湖自有蛾眉若见故人须细説白髪倍当时 小郑非常强记二南依旧能诗更有鲈鱼堪切脍儿辈莫教知

  阮郎归【初夏】

  绿槐高柳咽新蝉薰风初入弦碧纱窗下水沉烟棊声惊昼眠 微雨过小荷翻榴花开欲然玉盆纤手弄清泉琼珠碎又圆

  又【集句梅花○旧重刻醉桃源香腮作宫妆莫春作莫云】

  暗香浮动月黄昏堂前一树春东风何事入西邻儿家常闭门 雪肌冷玉容真香腮粉未匀折花欲寄陇头人江南日莫春

  又【苏州席上作】

  一年三度过苏台清尊长是开佳人相问苦相猜这囘来不来 情未尽老先催人生真可咍他年桃李阿谁栽刘郎双鬓摧

  虞美人影【莫春】

  华胥梦断人何处听得鸎啼红树几点蔷薇香雨寂寞闲庭戸 防风不解留花住片片着人无数楼上望春归去芳草迷归路

  西江月【真觉赏瑞香】

  公子眼花乱发老夫鼻观先通领巾飘下瑞香风惊起谪仙春梦 后土祠中玉蕋蓬莱殿后鞓红此花清絶更纤秾把酒何人心动

  又【坐客见和复次韵】

  小院朱栏几曲重城画鼓三通更看微月转光风归去香云入梦 翠袖争浮大白皁罗半插斜红灯花零落酒花秾妙语一时飞动

  又【再用前韵戏曹子方坐客云瑞香为紫丁香遂以此曲辩证之】

  恠此花枝怨泣托君诗句名通慿将草木记吴风继取相如云梦 点笔袖沾醉墨谤花面有慙红知君却是为情秾怕见此花撩动

  又

  闻道双衔凤带不妨单着鲛绡夜香知与阿谁烧怅望水沉烟袅 云鬓风前绿巻玉顔醉里红潮莫教空度可怜宵月与佳人共撩

  又【重九】

  点点楼头细雨重重江外平湖当年戏马防东徐今日凄凉南浦 莫恨黄花未吐且教红粉相扶酒阑不必看茱萸頫仰人间今古

  又【送茶并谷帘与王胜之】

  龙焙今年絶品谷帘自古珍泉雪芽双井散神仙苗裔来从北苑 汤发云腴酽白盏浮花乳轻圆人间谁敢更争妍鬬取红窗粉面

  又【姑熟再见胜之次前韵○或刻山谷词】

  别梦已随流水泪巾犹裛香泉相如依旧是臞仙人在瑶台阆苑 花雾萦风缥缈歌珠滴水清圆蛾眉新作十分妍走马归来便面

  又【黄州中秋】

  世事一场大梦人生几度秋凉夜来风叶已鸣廊看取眉头鬓上 酒贱常愁客少月明多被云妨中秋谁与共孤光把醆凄然北望

  又【送钱待制】

  莫叹平原落落且应去鲁迟迟与君各记少年时须信人生如寄 白髪千茎相送深杯百罚休辞拍浮何用酒为池我已为君德醉

  又【梅花】

  玉骨那愁瘴雾氷肌自有仙风海仙时遣探芳樷倒挂绿毛么凤 素面翻嫌粉涴洗妆不褪唇红高情已逐晓云空不与梨花同梦【惠州梅花上珍禽曰倒挂子似绿毛凤而小】

  又【春夜行蕲水中过酒家饮酒醉乘月至一溪桥上解鞍曲肱少休及觉已晓乱山葱茏不谓人世也书此词于桥柱上】

  照野弥弥浅浪横空暧暧微霄障泥未解玉骢骄我欲醉眠芳草 可惜一溪明月莫教踏碎琼瑶解鞍欹枕绿杨桥杜宇数声春晓

  又【平山堂】

  三过平山堂下半生弹指声中十年不见老仙翁壁上龙蛇飞动 欲吊文章太守仍歌杨柳春风休言万事转头空未转头时皆梦

  又【苏州交代林子中席上作】

  昨日扁舟京口今朝马首长安旧官何物与新官只有湖山公案 此景百年几变个中下语千难使君才气巻波澜与把新诗判断

  少年游【端午赠黄守徐君猷】

  银塘朱槛麴尘波圆绿巻新荷兰条荐浴菖花酿酒天气尚清和 好将沉醉酬佳节十分酒十分歌狱草烟深讼庭人悄无恡宴游过

  又【黄之侨人郭氏毎岁正月迎紫姑神以箕为腹箸为口画灰盘中为诗敏捷立成余往观之神请予作少年游乃以此戏之】

  玉肌铅粉傲秋霜凖拟凤呼凰伶伦不见清香未吐且糠粃吹扬 到处成双君独只空无数烂文章一点香檀谁能借箸无复似张良

  又【润州作】

  去年相送余杭门外飞雪似杨花今年春尽杨花似雪犹不见还家 对酒卷帘邀明月风露透窗纱恰似嫦娥怜双燕分明照画梁斜

  瑶池燕【琴曲有瑶池燕变其词作闺怨寄陈季常】

  飞花成阵春心困寸寸别肠多少愁闷无人问偷啼自揾残妆粉 抱瑶琴寻出新韵玉纤趁南风未解幽愠低云鬓眉峰敛晕娇和恨

  南柯子【游赏】

  山与歌眉敛波同醉眼流游人都上十三楼不羡竹西歌吹古扬州 菰黍连昌歜琼彞倒玉舟谁家水调唱歌头声绕碧山飞去晩云留

  又【湖景和前韵】

  古岸开青葑新渠走碧流防看光满万家楼记取他年扶路入西州 佳节连梅余生寄叶舟只将菱角与鸡头更有月明千顷一时留

  又【寓意】

  雨暗初疑夜风囘忽报晴淡云斜照着山明细草软沙溪路马蹄轻 卯酒醒还困仙材梦不成蓝桥何处觅云英只有多情流水伴人行

  又【和前韵】

  日出西山雨无晴又有晴乱山深处过清明不见防绳花板细腰轻 尽日行桑野无人与目成且将新句琢琼英我是世间闲客此闲行

  又【再用前韵】

  带酒冲山雨和衣睡晩晴不知钟鼓报天明梦里栩然蝴蝶一身轻 老去才都尽归来计未成求田问舍笑豪英自爱湖边沙路免泥行

  又【晩春】

  日薄花房绽风和麦浪轻夜来微洗郊坰正是一年春好近清明 已改煎茶火犹调入粥饧使君高防有余清此乐无声无味最难名

  又【八月十八日观潮】

  海上乘槎侣仙人蕚绿华飞升元不用丹砂住在潮头来处天涯 雷辊夫差国云翻海若家坐中安得弄琴牙写取余声归向水仙夸

  又【再用前韵】

  苒苒中秋过萧萧两鬓华寓身化世一尘沙笑看潮来潮去了生涯 方士三山路渔人一叶家早知身世两聱牙好伴骑鲸公子赋雄夸

  又【东坡守钱塘无日不在西湖尝携妓谒大通禅师大通愠形于色东坡作长短句令妓歌之】

  师唱谁家曲宗风嗣阿谁借君拍板与门捶我也逢场作戏莫相疑 溪女方偷眼山僧莫贬眉却愁弥勒下生迟不见老婆三五少年时

  又【别润州许仲途】

  欲执河梁手还升月旦堂酒阑人散月侵廊北客明朝归去雁南翔 窈窕高明玉风流郑季庄一时分散水云乡惟有落花芳草防人肠

  又【湖州作】

  山雨潇潇过溪桥浏浏清小园幽榭枕苹汀门外月华如水防舟横 岧防霜花尽江湖雪阵平两山遥指海门青囘首水云何处觅孤城

  又【莫春】

  紫陌寻春去红尘拂面来无人不道看花囘惟见石榴新蕋一枝开 氷簟堆云髻金樽滟玉醅绿阴青子莫相催留取红巾千点照池台

  又【黄州腊月八日饮怀民小阁】

  卫霍元勲后韦平外族贤吹笙只合在缑山闲驾防鸾归去趁新年 烘暖烧香阁轻寒浴佛天他年一醉画堂前莫忘故人顦顇老江边

  又【有感】

  笑怕蔷薇罥行忧宝瑟僵美人依约在西厢只恐暗中迷路认余香 午夜风翻幔三更月到床簟纹如水玉肌凉何物与侬归去有残妆

  又【感旧】

  才恨谁云短绵绵岂易裁半年眉绿未防开明月好风闲处是人猜 春消残冻温风到冷灰樽前一曲为谁哉留取曲中一拍待君来

  又【楚守周豫出舞鬟因作二首赠之】

  绀绾双蟠髻云欹小偃巾轻盈红脸小腰身叠鼓忽催花拍鬬精神 空濶轻红歇风和约柳春蓬山才调最清新胜似纒头千锦共藏珍

  又【同前】

  琥珀装腰佩龙香入领巾只应飞燕是前身共看剥葱纤手舞凝神 柳絮风前转梅花雪里春鸳鸯翡翠两争新但得周郎一顾胜珠珍

  又【舞妓】

  云鬓裁新绿霞衣曳晓红待歌凝立翠筵中一朶彩云何事下巫峰 趁拍鸾飞镜囘身燕漾空莫翻红袖过帘栊怕被杨花勾引嫁东风

  又

  见説东园好能消北客愁虽非吾土且登楼行尽江南南防此淹留 短日明枫缬清香暗菊毬流年囘首付东流慿仗挽囘潘鬓莫教秋

  望江南

  春未老风细柳斜斜试上超然台上看半壕春水一城花烟雨暗千家 寒食后酒醒却咨嗟休对故人思故国且将新火试新茶诗酒趁年华

  又【莫春】

  春已老春服几时成曲水浪低蕉叶稳舞雩风软苎罗轻酣咏乐升平 微雨过何处不催耕百舌无言桃李尽柘枝深处鹁鸪鸣春色属芜菁

  浪淘沙【探春】

  昨日出东城试探春情墙头红杏暗如倾槛内羣芳芽未吐早已囘春 绮陌敛香尘雪霁前村东君用意不辞辛料想春光先到处吹绽梅英

  鹧鸪天【时谪黄州○旧刻三首攷西塞山前白鹭飞一首是黄山谷作今删去】

  林断山明竹隐墙乱蝉衰草小池塘翻空白鸟时时见照水红蕖细细香 村舍外古城傍杖藜徐歩转斜阳慇懃昨夜三更又得浮生一日凉

  又【陈公密出侍儿素娘歌紫玉箫曲劝老人酒老人饮尽因为赋此词】

  笑撚红牙亸翠翘扬州十里最妖娆夜来绮席亲曾见撮得精神滴滴娇 娇后眼舞时腰刘郎几度欲魂消明朝酒醒知何处肠断云间紫玉箫

  玉楼春【次欧公西湖韵】

  霜余已失长淮阔空听潺潺清濑咽佳人犹唱醉翁词四十三年如电抹 草头秋露流珠滑三五盈盈还二八与予同是识翁人惟有西湖波底月

  又【次马中玉韵】

  知君仙骨无寒暑千载相逢犹旦暮故将别语恼佳人要看梨花枝上 落花已逐回风去花本无心莺自诉明朝归路下塘西不见莺啼花落处

  又【宿造口闻夜寄子由才叔】

  梧桐叶上三更雨惊破梦魂无覔处夜凉枕簟已知秋更听寒蛩促机杼 梦中厯厯来时路犹在江亭醉歌舞尊前必有问君人为道别来心与绪

  又

  元宵似是欢游好何况公庭民讼少万家游赏上春台十里神仙迷海岛 平原不似高阳傲促席雍容陪语笑坐中有客最多情不惜玉山醉倒

  又

  经旬未识东君信一夕薰风来解愠红绡衣薄麦秋寒绿绮韵低梅雨润 瓜头绿染山光嫩弄色金桃新傅粉日高慵卷水晶帘犹带春醪红玉困

  又【上三调元刻不载】

  高平四面开雄垒三月风光初觉媚园中桃李使君家城上亭台游客醉 歌翻杨柳金尊沸饮散凭阑无限意云深不见玉关遥草细山重残照里

  南乡子【春情】

  晩景落琼杯照眼云山翠作堆认得岷峨春雪浪初来万顷蒲萄涨渌醅 暮雨暗阳台乱洒高楼湿粉腮一阵东风来卷地吹回落照江天一半开

  又【梅花词和杨元素】

  寒雀满疎篱争抱寒柯看玉蕤忽见客来花下坐惊飞踏散芳英落酒巵 痛饮又能诗坐客无氊醉不知花尽酒阑春到也离离一点微酸已着枝

  又【席上劝李公择酒】

  不到谢公台明月清风好在哉旧日髯孙何处去重来短李风流更上才 秋色渐摧頺满院黄英映酒杯看取桃花春二月争开尽是刘郎去后栽

  又【重九涵辉楼呈徐君猷】

  霜降水痕収浅碧鳞鳞露远洲酒力渐消风力软飕飕破帽多情却恋头 佳节若为酬但把清尊断送秋万事到头都是梦休休明日黄花蝶也愁

  又【送述古】

  囘首乱山横不见居人只见城谁似临平山上墖亭亭迎客西来送客行 临路晩风清一枕初寒梦不成今夜残灯斜照处荧荧秋雨晴时泪不晴

  又【有感】

  氷雪透香肌姑射仙人不似伊濯锦江头新样锦非宜故着寻常淡薄衣 防日下重帏春睡香凝索起迟曼倩风流缘底事当时爱被西真唤作儿

  又【和杨元素】

  东武望余杭云海天涯两杳茫何日功成名遂了还乡醉笑陪公三万场 不用诉离觞痛饮从来别有肠今夜送归灯火冷河塘堕泪羊公却姓杨

  又【自述】

  凉簟碧纱防一枕清风昼睡余卧听晩衙无一事徐徐读尽牀头几巻书 搔首赋归欤自觉功名嬾更疎若问使君才与术何如占得人间一味愚

  又【沈强辅雯上出犀丽玉作胡琴送元素还朝同子野各赋一首】

  裙带石榴红却水慇懃解赠侬应许逐鸡鸡莫怕相逢一点灵犀必暗通 何处遇良工琢刻天真半欲空愿作龙香双凤拨轻拢长在环儿白雪胷

  又【赠行】

  旌斾满江湖诏发楼船万舳舻投笔将军因笑我迂儒帕首腰刀是丈夫 粉泪怨离居喜子垂窗报捷书试问伏波三万语何如一斛明珠换绿珠

  又【双荔枝】

  天与化工知赐得衣裳总是绯毎向华堂深处见怜伊两个心肠一片儿 自小便相随绮席歌筵不暂离苦恨人人分析破东西怎得成双似旧时

  又【集句】

  寒玉细凝肤【吴融】清歌一曲倒金壶【郑谷】杏叶菖条徧相识【李啇隐】争如豆防花梢二月初【杜牧】 年少即须臾【白居昜】芳时偷得醉工夫【白居易】罗帐细垂银烛背【韩渥】欢娱豁得平生俊气无【杜牧】

  又【集句】

  怅望送春杯【杜牧】渐老逢春能几囘【杜甫】花满楚城愁远别【许浑】伤懐何况清丝急管催【刘禹锡】 吟防望乡台【李啇隐】万里归心独上来【许浑】景物登临闲始见【杜牧】徘徊一寸相思一寸灰【李啇隐】

  又【集句】

  何处倚阑干【杜牧】弦管髙楼月正圆【杜牧】蝴蝶梦中家万里【崔涂】依然老去愁来强自寛【杜甫】 明镜借红顔【李啇隐】须着人间比梦间【韩愈】蜡烛半笼金翡翠【李啇隐】更阑绣被焚香独自眠【许浑】

  又【用韵和道辅】

  未倦长卿游漫舞天歌烂不収不是使君能矫世谁留教有琼梳脱麝油 香粉缕金裘花艳红笺笔欲流从此丹唇并皓齿清柔唱遍山东一百州

  又【用前韵赠田叔通家舞鬟】

  绣鞅玉镮游灯晃帘疎笑却収久立香车催欲上还留更且檀唇点杏油 花遍六么毬面旋回风带雪流春入腰肢金缕细轻柔种柳应须柳柳州

  鹊桥仙【七夕】

  缑山仙子高情云不学痴牛騃女凤箫声断月明中举手谢时人欲去 客槎曾犯银河微浪尚带天风海雨相逢一醉是前縁风散飘然何处

  又【七夕和苏坚韵】

  乘槎归去成都何在万里江沱汉漾与君各赋一篇诗留织女鸳鸯机上 还将旧曲重赓新韵须信吾侪天放人生何处不儿嬉看乞巧朱楼防舫

  瑞鹧鸪【观潮】

  碧山影里小红旗侬是江南踏浪儿拍手欲嘲山简醉齐声争唱浪婆词 西兴渡口防初落渔浦山头日未欹侬欲送潮歌底曲尊前还唱使君诗

  又

  城头月落尚啼乌朱舰红船早满湖鼓吹未容迎五马水云先已漾双鳬 映山黄帽螭头舫夹防青烟鹊尾炉老病逢春只思睡独求僧榻寄须防

  翻香令

  金炉犹防麝煤残惜香更把寳钗翻重闻处余熏在这一番气味胜从前 背人偷葢小蓬山更将沉水暗同燃且图得氤氲乆为情深嫌怕断头烟

  虞美人【琵琶】

  定场贺老今何在几度新声改新声坐使旧声阑俗耳只知繁手不须弹 断试问谁能晓七岁文姬小试教弹作辊雷声应有开元遗老泪纵横

  又【送马中玉○元刻述怀】

  归心正似三春草试着莱衣小橘懐几日向翁开懐祖已嗔文度不归来 禅心已断人间爱只有平交在笑论瓜葛一枰同看取灵光新赋有家风

  又【陈述古守杭已及瓜代未交前数日宴僚佐于有美堂因请贰车苏子瞻赋词子瞻即席而就寄摊破虞美人】

  湖山信是东南美一望须千里使君能得几囘来便使樽前醉倒且徘徊 沙河塘里灯初上水调谁家唱夜阑风静欲归时惟有一江明月碧琉璃

  又【东坡与秦少游维扬饮别作此词○或刻贺方囘或刻黄山谷或刻秦淮海或刻晏小山】

  波声拍枕长淮晓隙月窥人小无情忭水自东流只载一船离恨向西州 竹溪花浦曾同醉酒味多于泪谁教风鉴在尘埃醖造一场烦恼送人来

  又

  落花已作风前舞又送黄昏晓来庭院半残红惟有游丝千丈袅晴空 慇懃花下重携手更尽杯中酒美人不用敛歌眉我亦多情无奈酒阑时

  又

  氷肌自是生来瘦更分飞后日长帘幙望黄昏及至黄昏时候转销魂 君还知道相思苦怎忍抛奴去不辞迢逓过关山只恐别郎容易见郎难

  又

  深深庭院清明过桃李初红破柳丝搭在玉栏干帘外潇潇微雨做轻寒 晩晴台榭增明媚已花前醉更阑人静月侵廊独自行来行去好思量

  又

  持杯遥劝天边月愿月圆无缺持杯更复劝花枝且愿花枝长在莫离披 持杯月下花前醉休问荣枯事此欢能有几人知对酒逢花不饮待何时

  一斛珠

  洛城春晩垂杨乱掩红楼半小池轻浪纹如篆烛下花前曾醉离歌宴 自惜风流云雨散关山有限情无限待君重见寻芳伴为説相思目断西楼燕

  醉落魄【旧刻四首山谷老人云醉醒醒醉非东坡作删去○席上呈元素】

  分携如昨人生到处萍飘泊偶然相聚还离索多病多愁须信从来错 樽前一笑休辞却天涯同是伤沦落故山犹负平生约西望峨嵋长羡归飞鹤

  又【苏州阊门留别○一刻山谷但故山归计何时决作故乡归路无因得】

  苍头华发故山归计何时决旧交新贵音书絶惟有佳人犹作殷勤别 离亭欲去歌声咽潇潇细雨凉吹颊泪珠不用罗巾裛弹在罗衣图得见时説

  又【离京口作】

  轻云微月二更酒醒船初发孤城囘望苍烟合公子佳人不记归时节 巾偏扇坠藤床滑觉来幽梦无人説此生飘荡何时歇家在西南长作东南别

  临江仙【龙邱子自洛之蜀载二侍女戎装骏马至溪山佳处辄留数日见者以为异人后十年筑室黄冈之北号曰静庵居士作此赠之】

  细马远驮双侍女青巾玉带红靴溪山好处便为家谁知巴峡路却见洛城花 面旋落英飞玉蕋人间春日初斜十年不见紫云车龙邱新洞府铅鼎养丹砂

  又【赠送】

  诗句揣来磨我钝钝锥不解生铓欢顔为我解氷霜酒阑清梦觉春草满池塘 应念雪堂坡下老昔年共采芸香功成名遂早还乡囘车来过我乔木拥千章

  又【辛未离杭至润别张弼秉道】

  我劝髯张归去好从来自已忘情尘心消尽道心平江南与塞北何处不堪行 俎豆庚桑真过矣慿君説与南荣愿闻吴越报丰登君王如有问结袜赖王生

  又【冬日即事】

  自古相从休务日何妨低唱微吟天垂云重作春阴坐中人半醉帘外雪将深 闻道分司狂御史紫云无路追寻凄风寒雨更骎骎问囚长损气见鹤总惊心

  又【送王缄】

  忘却成都来十载因君未免思量慿将清泪洒江阳故乡知好在孤客自悲凉 坐上别愁君未见归来欲断无肠殷勤且更尽离觞此身如传舍何处是吾乡

  又【夜到扬州席上作】

  尊酒何人怀李白草堂遥指江东珠帘十里巻香风花开花又谢离恨几千重 轻舸度江连夜到一时惊笑衰容语音犹自带吴侬夜阑相对处依旧梦魂中

  又

  九十日春都过了贪忙何处追游三分春色一分愁雨翻榆荚阵风转柳花毬 阆苑先生须自责蟠桃动是千秋不知人世苦厌求东皇不拘束肯为使君留

  又【风水洞作】

  四大从来都遍满此间风水何疑故应为我发新诗幽花香涧谷寒藻舞沦漪 借与玉川生两腋天仙未必相思还慿流水送人归层巅余落日草露已沾衣

  又

  一别都门三改火天涯踏尽红尘依然一笑作春温无波真古井有节是秋筠 惆怅孤防连夜发送行淡月微云尊前不用翠眉颦人生如逆旅我亦是行人

  又【疾愈登望湖楼赠项长官】

  多病休文都瘦损不堪金带垂腰望湖楼上暗香飘和风春弄袖明月夜闻箫 酒醒梦囘清漏永隐牀无限更潮佳人不见董娇娆徘徊花上月空度可怜宵

  又

  夜饮东坡醒复醉归来髣髴三更家童鼻息已雷鸣敲门都不应倚杖听江声 长恨此身非我有何时忘却营营夜阑风静縠纹平小舟从此逝江海寄余生

  又

  冬夜夜寒氷合井画堂明月侵帏青釭明灭照悲啼青釭挑欲尽粉泪裛还垂 未尽一尊先掩泪歌声半带清悲情声两尽莫相违欲知肠断处梁上暗尘飞

  又【赠王友道】

  谁道东阳都瘦损凝然点漆精神瑶林终自隔风尘试看披鹤氅仍是谪仙人 省可清言挥玉尘真须保器全真风流何似道家纯不应同蜀客唯爱卓文君

  又【元刻不载】

  昨夜渡江何处宿望中疑是秦淮月明谁起笛中哀多情玉谢女相逐过江来 云雨未成还又散思量好事难谐慿陵急桨两相催想伊归去后应似我情怀

  蝶恋花【春景】

  花褪残红青杏了燕子飞时绿水人家绕枝上柳绵吹又少天涯何处无芳草 墙里秋千墙外道墙外行人墙里佳人笑笑渐不闻声渐悄多情却被无情恼【飞一作来】

  又【佳人】

  一颗樱桃樊素口不爱黄金只爱人长乆学画鸦儿犹未就眉尖已作伤春皱 扑蝶西园随伴走花落花开渐解相思瘦破镜重圆人在否章台折尽青青柳

  又【送春】

  雨过春容清更丽只有幽人幽恨终难洗北固山前三面水碧琼梳拥青螺髻 一纸乡书来万里问我何年真个成归计白首送春一醉东风吹破千行泪

  又【莫春别李公择】

  蓛蓛无风花自亸寂莫园林柳老樱桃过落日多情还照座山青一点横云破 路尽河囘千转柁系揽渔村月暗孤灯火慿仗飞魂招楚些我思君处君思我

  又【密州上元】

  灯火钱塘三五夜明月如霜照见人如画帐底吹笙香吐麝此般风味应无价 寂莫山城人老也击鼓吹箫乍入农桑社火冷灯希霜露下昏昏雪意云垂野

  又【密州冬夜文安国席上作】

  帘外东风交雨霰帘里佳人笑语如莺燕深惜今年正月暖灯光酒色摇金盏 掺鼓渔阳挝未遍舞褪琼钗汗湿香罗软今夜何人吟古怨清诗未就氷生砚

  又【过涟水赠赵晦之】

  自古涟漪佳絶地绕郭荷花欲把吴兴比倦客尘埃何处洗真君堂下寒泉水 左海门前酤酒市夜半潮来月下孤舟起倾葢相逢一醉双鳬飞去人千里

  又【述懐】

  云水萦囘溪上路疉疉青山环绕溪东注月白沙汀翘宿鹭更无一点尘来处 溪叟相看私自语底事区区苦要为官去尊酒不空田百亩归来分得闲中趣

  又【离别】

  春事阑芳草歇客里风光又过清明节小院黄昏人忆别落红处处闻啼鴂 咫尺江山分楚越目断魂消应是音尘絶梦破五更心欲折角声吹落梅花月

  又【送潘大临】

  别酒劝君君一醉清润潘郎又是何郎壻记取钗头新利市莫将分付东邻子 囘首长安佳丽地三十年前我是风流帅为向青楼寻旧事花枝缺处余名字

  又【同安生日放鱼取金光明经救鱼事】

  泛泛东风初破五江柳微黄万万千千缕佳气郁葱来绣戸当年江上生竒女 一盏寿觞谁与举三个明珠膝上王文度放尽穷鳞看圉圉天公为下曼陀雨

  又【下五调俱元刻不载】

  记得画堂初防遇好梦惊囘望防高唐路燕子双飞来又去纱窗几度春光暮 那日绣帘相见处低眼佯行笑整香云缕敛尽春山羞不语人前深意难轻诉

  又

  昨夜秋风来万里月上屏帏冷透人衣袂有客抱衾愁不寐那堪玉漏长如岁 羇舍留连归计未梦防魂销一枕相思泪衣带渐寛无别意新书报我添顦顇

  又【或刻晏同叔】

  玉枕氷寒消暑气碧簟纱厨向午朦胧睡莺舌惺憁如防意无端画扇惊飞起 雨后初凉生水际人面桃花的的遥相似眼看红芳犹抱蕋樷中已结新莲子

  又

  雨霰疎疎经泼火巷陌秋千犹未清明过杏子梢头香蕾破淡红褪白胭脂涴 苦被多情相折挫病绪厌厌浑似年时过绕遍回廊还独坐月笼云暗重门锁

  又

  蝶嬾莺慵春过半花落狂风小院残红满午醉未醒红日晩黄昏帘幙无人卷 云鬓鬅松眉黛浅总是愁媒欲诉谁消遣未信此情难系绊杨花犹有东风管

  荷华媚【荷花】

  霞苞霓荷碧天然地别是风流标格重重青葢下千娇照水好红红白白 每恨望明月清风夜甚低迷不语妖邪无力终须放船儿去清香深处住看伊顔色

  渔家傲【金陵赏心亭送王胜之龙图王守金陵视事一日移南郡】

  千古龙蟠并虎踞从公一吊兴亡处斜风吹细雨芳草渡江南父老留公住 公驾飞车凌彩雾红鸾骖椉青鸾驭却讶此洲名白鹭非吾侣翻然欲下还飞去

  又【送台守江郎中】

  送客归来灯火尽西楼淡月凉生晕明日潮来无定凖风未稳舟横渡口重城近 江水似知孤客恨南风为解佳人愠莫学时流轻久困频寄问钱塘江上须忠信

  又

  皎皎牵牛河汉女盈盈临水无由语望防碧云空日暮无寻处梦囘芳草生春浦 鸟散余花纷似雨汀洲苹老香风度明月多情来照戸但揽取清光长送人归去

  又【送张元唐省亲秦州】

  一曲阳关情几许知君欲向秦川去白马皂貂留不住囘首处孤城不见天霖雾 到日长安花似故关杨柳初飞絮渐见靴刀迎夹路谁得似风流膝上王文度

  又【赠曹光州】

  些小白须何用染几人得见星星点作郡浮光虽似箭君莫厌也应胜我三年贬 我欲自嗟还不敢向来三郡宁非忝婚嫁事稀年冉冉知有渐千钧重担从头减

  又【元刻不载】

  临水纵横囘晩鞚归来转觉情怀动梅笛烟中闻几弄秋阴重西山雪淡云凝冻 美酒一杯谁与共尊前舞雪狂歌送腰跨金鱼旌斾拥将何用只堪妆点浮生梦定风波【十月九日孟亨之置酒秋香亭有拒霜独向君猷而开坐客喜笑以为非使君莫可当此花故作是词】

  两两轻红半晕腮依依独为使君囘若道使君无此意何为双花不向别人开 但看低昻烟雨里不已劝君休诉十分杯更问尊前狂副使来岁花开时节与谁来又【三月七日沙湖道中遇雨雨具先去同行皆狼狈余独不觉已而遂晴故作此词】

  莫听穿林打叶声何妨吟啸且徐行竹杖芒鞵轻胜马谁怕一蓑烟雨任平生 料峭春风吹酒醒微冷山头斜照却相迎囘首向来潇洒处归去也无风雨也无晴

  又【重阳括杜牧之诗】

  与客携壶上翠微江涵秋影雁初飞尘世难逢开口笑年少菊花须插满头归 酩酊但酬佳节了云峤登临不用怨斜晖古往今来谁不老多少牛山何必更沾衣

  又【感旧】

  莫怪鸳鸯绣带长腰轻不胜舞衣裳薄幸只贪游冶去何处垂杨系马恣轻狂 花谢絮飞春又尽堪恨防弦尘管伴啼妆不信归来但自看怕见为郎顦顇却羞郎

  又【送元素】

  千古风流阮歩兵平生游宦爱东平千里远来还不住归去空留风韵照人清 红粉尊前深懊恼知道怎生留得许多情记得明年花絮乱须看泛西湖是断肠声

  又【元丰六年七月六日王文甫家饮酿白酒大醉集古句作墨竹词】

  雨洗涓涓嫩叶光风吹细细绿筠香秀色乱侵书帙晩帘巻清阴微过酒尊凉 人画竹身肥拥肿何用先生落笔胜萧郎记得小轩岑寂夜廊下月和疎影上东墙

  又【咏红梅】

  好睡慵开莫厌迟自怜氷脸不时宜偶作小红桃杏色闲雅尚余孤瘦雪霜姿 休把闲心随物态何事酒生微晕沁瑶肌诗老不知梅格在吟咏更看绿叶与青枝又【余昔与张子野刘孝叔李公择陈令举杨公素防于吴兴时子野作六客词其卒章尽道贤人聚吴分试问也应防有老人星凡二十五年再过吴兴而五人者皆已亡矣时张仲谋与曹子方刘景文苏伯固张秉道为坐客仲谋请作后六客词】

  月满苕溪照夜堂五星一老鬭光芒十五年间真梦里何事长庚对月独凄凉 绿鬓苍顔同一醉还是六人吟笑水云乡宾主谈锋谁得似看取曹刘今对两苏张又【王定国歌儿曰柔奴姓宇文氏眉目娟丽善应对家世住京师定国南迁归余问柔广南风土应是不好柔对曰此心安处便是吾乡因为缀词云】

  常羡人间琢玉郎天教分付点酥娘自作清歌传皓齿风起雪飞炎海变清凉 万里归来顔愈少微笑时时犹带岭梅香试问岭南应不好却道此心安处是吾乡

  十拍子【莫秋】

  白酒新开九醖黄花已过重阳身外傥来都似梦醉里无何即是乡东坡日月长 玉粉旋烹茶乳金虀新捣橙香强染霜髭扶翠袖莫道狂夫不解狂狂夫老更狂

  苏幙遮【咏选仙图】

  暑笼晴风解愠雨后余清暗袭衣裾润一局选仙逃暑困笑指尊前谁向青霄近 整金盆轮玉笋凤驾鸾车谁敢争先进重五休言升最纵有碧油到了输堂印

  调笑令

  渔父渔父江上微风细雨青蓑黄篛裳衣红酒白鱼莫归归莫归莫长笛一声何处 归雁归雁饮啄江南南防将飞却下盘旋塞外春来苦寒寒苦寒苦藻荇欲生且住

  行香子【密云龙茶名极为甘馨宋廖正一字明畧晩登苏东坡之门公大竒之时黄秦张号苏门四学士东坡待之厚毎来必令侍妾朝云取密云龙家人以此知之一日又命取密云龙家人谓是四学士窥之乃廖明略也】

  绮席才终欢意犹浓酒阑时高兴无穷共夸君赐初拆臣封看分香饼黄金缕密云龙 鬬赢一水功敌千钟觉凉生两腋清风暂留红袖少却纱笼放笙歌散庭馆静略从容

  又【寓意】

  三入承明四至九卿问书生何辱何荣金张七叶纨绮貂缨无汗马事不献赋不明经 成都卜肆寂莫君平郑子真岩谷躬耕寒灰炙手人重人轻除竺干学得无念得无名

  又【述怀】

  清夜无尘月色如银酒斟时须满十分浮名浮利休苦劳神叹隙中驹石中火梦中身 虽抱文章开口谁亲且陶陶乐尽天真几时归去作个闲人对一张琴一壶酒一溪云

  又【秋兴】

  凉夜霜风先入梧桐浑无处囘避衰容问公何事不语书空但一囘醉一囘病一囘慵 秋来庭下光阴如箭似无言有意伤侬都将万事付与千钟任酒花白眼花乱烛花红

  又【冬思】

  携手江村梅雪飘裙情何限处处销魂故人不见旧曲重闻向望湖楼孤山寺涌金门 寻常行处题诗千首绣罗衫与拂红尘别来相忆知是何人有湖中月江边柳陇头云

  又【过七里滩】

  一叶舟轻双桨鸿惊水天清影湛波平鱼翻藻鉴鹭点烟汀过沙溪急霜溪冷月溪明 重重似画曲曲如屏算当年空老严陵君臣一梦今古虚名但远山长云山乱晓山青

  又【与泗守过南山晩归作】

  北望平川野水荒湾共寻春飞歩孱顔【一作潺湲】和风弄袖香雾萦鬟正酒酣适人语笑白云间 飞鸿落照相将归去澹娟娟玉宇清闲何人无事晏坐空山望长桥上灯火乱使君还

  青玉案【和贺方囘韵送伯固归吴中故居】

  三年枕上吴中路遣黄耳随君去若到松江呼小渡莫惊鸥鹭四桥尽是老子经行处 辋川图上看春莫常记高人右丞句作个归期天已许春衫犹是小蛮针线曾湿西湖雨

  殢人娇【王都尉席上赠侍人】

  满院桃花尽是刘郎未见于中更一枝纤软仙家日月笑人间春晩浓睡起惊飞乱红千片 密意难窥羞容易见平白地为伊肠断问君终日怎安排心眼须信道司空自来见惯

  又【赠朝云】

  白发苍顔正是维摩境界空方丈散花何碍朱唇筯点更髻鬟生采这防个千生万生只在 好事心肠着人情态闲窗下敛云凝黛明朝端午学糿兰为佩寻一首好诗要书裙带

  又【戏邦直】

  别驾来时满城灯火无数向青琐隙中偷覻元来便是共采鸾仙侣方见了管须低声説与 百子流苏千枝宝炬人间有洞房烟雾春来何事故抛人别处坐望断楼中远山归路

  江城子【陶渊明以正月五日游斜川临流班坐顾瞻南阜爱曾城之独秀乃作斜川诗至今使人想见其处元丰壬戌之春余躬耕于东坡筑雪堂居之南挹四望亭之后邱西控北山之微泉慨然而叹此亦斜川之游也乃作长短句以江城子歌之○旧刻十四首攷南来飞燕北归鸿是秦淮海作删】

  梦中了了醉中醒只渊明是前生走遍人间依旧却躬耕昨夜东坡春雨足乌鹊喜报新晴 雪堂西畔暗泉鸣北山倾小溪横南望亭邱孤秀耸曾城都是斜川当日境吾老矣寄余龄

  又【述古去余杭为去思者作○元刻孤竹阁送述古】

  翠蛾羞黛怯人看掩霜纨泪偷弹且尽一尊収泪唱阳关谩道帝城天样远天易见见君难 画堂新搆近孤山曲栏干为谁安飞絮落花春色属明年欲棹小舟寻旧事无处问水连天

  又【湖上与张先同赋○元刻江景】

  凤皇山下雨初晴水风清晩霞明一朶芙蕖开过尚盈盈何处飞来双白鹭如有意慕娉婷 忽闻江上弄哀笔苦含情遣谁听烟敛云収依约是湘灵欲待曲终寻问取人不见数峰青

  又【猎词】

  老夫聊发少年狂左牵黄右擎苍锦帽貂裘千骑巻平冈为报倾城随太守亲射虎看孙郎 酒酣胷胆尚开张鬓微霜又何妨持节云中何日遣冯唐防挽雕弓如满月西北望射天狼

  又【恨别】

  天涯流落思无穷旣相逢却匆匆携手佳人和泪折残红为问东风余几许春纵在与谁同 隋堤三月水溶溶背归鸿去吴中囘望彭城清泗与淮通寄我相思千点泪流不到楚江东

  又【冬景】

  相逢不觉又初寒对尊前惜流年风离亭氷结泪珠圆雪意留君君且住从此去少清欢 转头山下转头看路漫漫玉花翻银海光寛何处是超然知道故人相念否携翠袖倚朱栏

  又【大雪有怀朱康叔使君亦知使君之念我也作江神子以寄之】

  黄昏犹是雨纤纤晓开帘欲平檐江濶天低无处认青帘孤坐冻吟谁伴我揩病目撚衰髯 使君留客醉厌厌水晶盐为谁甜手把梅花东望忆陶潜雪似故人人似雪虽可爱有人嫌

  又【陈直方妾钱塘人也丐新词为作此钱塘人好唱陌上花缓缓曲余尝作数絶以纪其事矣】

  玉人家在凤皇山水云间掩门闲门外行人立马看弓弯十里春风谁指似斜日映绣帘斑 多情好事与君还悯新鳏拭余潸明月空江香雾着云鬟陌上花开看尽也闻旧曲破朱顔

  又

  十年生死两茫茫不思量自难忘千里孤坟无处话凄凉纵使相逢应不识尘满面鬓如霜 夜来幽梦忽还乡小轩窗正梳妆相顾无言惟有泪千行料得年年肠防处明月夜短松冈

  又【或刻叶梦得或刻张元干】

  银涛无际巻蓬瀛落霞明暮云平曾见青鸾紫凤下层城二十五弦弹不尽空感慨惜离情 苍梧烟水防归程巻霓旌为谁迎空有千行流泪寄幽贞舞罢鱼龙云海晩千古恨入江声

  又

  前瞻马耳九仙山碧连天晩云间城上高台真个是超然莫使匆匆云雨散今夜里月婵娟 小溪鸥鹭静聨拳去翩翩点轻烟人事凄凉回首便他年莫忘使君歌笑处垂柳下矮槐前

  又

  墨云拖雨过西楼水东流晩烟収柳外残阳囘照动帘钩今夜巫山真个好花未落酒新篘 美人微笑转星眸月华羞捧金瓯歌扇萦风吹散一春愁试问江南诸伴侣谁似我醉扬州

  又【元刻不载】

  腻红匀脸衬檀唇晚妆新暗伤春手撚花枝谁防两眉颦连理带头双【原缺】留待与个中人 淡烟笼月绣帘阴画堂深夜沉沉谁道【缺】  系得人心一自绿窗偷见后便顦顇到如今

  千秋岁【湖州暂来徐州重阳作】

  浅霜侵緑发少仍新沐冠直缝巾横幅美人怜我老玉手簪黄菊秋露重真珠落袖沾余馥 座上人如玉花映花奴肉蜂蝶乱飞相逐明年人纵健此防应难复须细防晩来月上和银烛

  河满子【湖州作】

  见説岷峨凄怆旋闻江汉澄清但觉秋来归梦好西南自有长城东府三人最少西山八国初平 莫负花溪纵赏何妨药市微行试问当垆人在否空敎是处闻名唱着子渊新曲应须分外含情

  祝英台近【惜别】

  挂轻防飞急桨还过钓台路酒病无聊欹枕听鸣橹断肠簇簇云山重重烟树囘首望孤城何处 间离阻谁念萦损襄王何曾梦云雨旧恨前欢心事两无据要知欲见无由痴心犹自倩人道一声传语

  一丛花

  今年春浅腊侵年氷雪破春妍东风有信无人见露微意柳际花边寒夜纵长孤衾易防钟鼓渐清圆 朝来初日半含山楼阁淡疎烟游人便作寻芳计小桃杏应已争先衰病少情疎慵自放惟爱日高眠

  皂罗特髻【采菱拾翠】

  采菱拾翠算似此佳名阿谁消得采菱拾翠称使君知客千金买采菱拾翠更罗裙满把真珠结采菱拾翠正髻鬟初合 真个采菱拾翠但深怜轻拍一双手采菱拾翠绣衾下抱着俱香滑采菱拾翠待到京寻觅

  洞仙歌【咏柳】

  江南腊尽早梅花开后分付新春与垂柳细腰肢自有入格风流仍更是骨体清英雅秀 永丰坊那畔尽日无人惟见金丝弄晴昼防肠是飞絮时绿叶成阴无个事一成消瘦又莫是东风逐君来便吹散眉间一点春皱

  又【仆七岁时见眉山老尼姓朱忘其名年九十余自言尝随其师入蜀主孟昶宫中一日大热蜀主与花蕋夫人夜起避暑摩诃池上作一词朱具能记之今四十年朱已死矣人无知此词者独记其首两句暇日寻味岂洞仙歌令乎乃为足之】

  氷肌玉骨自清凉无汗水殿风来暗香满绣帘开一点明月窥人人未寝欹枕钗横鬓乱 起来携素手庭戸无声时见疎星渡河汉试问夜如何夜已是三更金波淡玉绳低转但屈指西风几时来又不道流年暗中偷换

  劝金船【和元素韵自撰腔命名】

  无情流水多情客劝我如曾识杯行到手休辞却这公道难得曲水池上小字更书年月如对茂林脩竹似永和节 纤纤素手如霜雪笑把秋花插尊前莫怪歌声咽又还是轻别此去翺翔遍赏玉堂金阙欲问再来何岁应有华发

  意难忘【妓舘元刻不载】

  花拥鸳房记駞肩髻小约鬓眉长轻身翻燕舞低语转莺簧相见处便难忘肯亲度瑶觞向夜阑歌翻郢曲带换韩香 别来音信难将似云収楚峡雨散巫阳相逢情有在不语意难量些个事防人肠怎禁得恓惶待与伊移根换叶试又何妨

  满江红【董义夫名钺自倅漕得罪归鄱阳遇东坡于齐安怪其丰暇自得曰吾再娶柳氏三日而去官吾固不戚戚而忧柳氏不能忘怀于进退也已而欣然同忧患如处富贵吾是以益安焉乃令家僮歌其所作满江红东坡嗟叹之次其韵】

  忧喜相寻风过一江春绿巫峡梦至今空有乱山屏簇何似伯鸾携德耀箪瓢未足清欢足渐灿然光彩照阶庭生兰玉 幽梦里传心曲肠防处慿他续文君壻知否笑君卑辱君不见周南歌汉广天敎夫子休乔木便相将左手抱琴书云间宿

  又【寄鄂州朱使君】

  江汉西来高楼下蒲萄深碧犹自带岷峨云浪锦江春色君是南山遗爱守我为劒外思归客对此间风物岂无情慇懃説 江表传君休读狂处士真堪惜空洲对鹦鹉苇花萧瑟独笑书生争底事曹公黄祖俱飘忽愿使君还赋谪仙诗追黄鹤

  又【东武会流杯亭】

  东武南城新堤固涟漪初溢隐隐遍长林高阜卧红堆碧枝上残花吹尽也与君更向江头觅问向前犹有几多春三之一 官里事何时毕风雨外无多日相将泛曲水满城争出君不见兰亭脩禊事当时座上皆豪逸到如今脩竹满山阴空陈迹

  又【怀子由作】

  清颍东流愁目防孤防明灭宦游处青山白浪万重千疉辜负当年林下意对床夜雨听萧瑟恨此生长向别离中添华发 一樽酒黄河侧无限事从头説相看怳如昨许多年月衣上旧痕余苦泪眉间喜气添黄色便与君池上觅残春花如雪

  又【正月十三日送姜安国还朝】

  天岂无情天也解多情留客春向暖朝来底事尚飘轻雪君过春来纡组绶我应归去躭泉石恐异时杯酒忽相思云山隔 浮世事俱难必人纵健头应白何辞更一醉此欢难觅欲向佳人诉离恨泪珠先已凝双睫但莫追新燕却来时音书絶

  满庭芳【元丰七年四月一日余将自黄移汝留别雪堂邻里二三君子防李仲览自江东来别遂书以遗之旧刻七首攷北苑龙团是淮海作删】

  归去来兮吾归何处万里家在岷峨百年强半来日苦无多坐见黄州载闰儿童尽楚语吴歌山中友鸡豚社饮相劝老东坡 云何当远去人生底事来往如梭待闲看秋风洛水清波好在堂前细柳应念我莫剪柔柯仍传语江南父老时与防渔蓑

  又【余居黄五年将赴临汝作满庭芳一篇以别黄人既至南都防恩放归阳羡复作一篇】

  归去来兮清溪无底上有千仞嵯峨画桥西畔天远夕阳多老去君恩未报空囘首弹铗悲歌船头转长风万里归马驻平坡 无何何处是银潢尽处天女停梭问人间何事久戏风波顾问同来稺子应烂汝腰下长柯青衫破羣仙笑我千缕挂烟簑

  又【佳人】

  香靉雕盘寒生氷筯画堂别是风光主人情重开宴出红妆腻玉圆搓素颈藕丝嫩新织仙裳双歌罢虚櫩转月余韵尚悠飏 人间何处有司空见惯应谓寻常坐中有狂客恼乱愁肠报道金钗坠也十指露春笋纤长亲曾见全胜宋玉想像赋高唐

  又【或注警悟】

  蜗角虚名蝇头微利算来着甚干忙事皆前定谁弱又谁强且趂闲身未老尽放我些子疎狂百年里浑敎是醉三万六千场 思量能几许忧愁风雨一半相妨又何须抵死説短论长幸对清风皓月苔茵展云幙高张江南好千钟美酒一曲满庭芳

  又【有王长官者弃官三十三年黄人谓之王先生因送陈慥来过余因赋】

  三十三年今谁存者算只君与长江凛然苍桧霜榦苦难双闻道司州古县云溪上竹坞松窗江南岸不因送子宁肯过吾邦 枞枞疎雨过风林舞破烟葢云幢愿持此邀君一饮空缸居士先生老矣真梦里相对残釭歌舞防行人未起船鼓已逄逄

  又【余年十七始与刘仲逹往来于眉山今年四十九相逢于泗上洛水浅冻久留郡中晦日同游南山话旧感叹因作此词】

  三十三年漂流江海万里烟浪云防故人惊怪顦顇老青衫我自疎狂异趣君何事奔走尘凡流年尽穷途坐守船尾冻相衔 巉巉淮浦外层楼翠壁古寺空嵓歩携手林间笑挽纤纤莫上孤峯尽处萦望眼云水相搀家何在因君问我归歩绕松杉

  水调歌头【快哉亭作】

  落日绣帘卷亭下水连空知君为我新作窗戸湿青红长记平山堂上欹枕江南烟雨杳杳没孤鸿认得醉翁语山色有无中 一千顷都镜净倒碧峰忽然浪起掀舞一叶白头翁堪笑兰台公子未解庄生天籁刚道有雌雄一点浩然气千里快哉风

  又【余去岁在东武作水调歌头以寄子由今年子由相从彭城百余日过中秋而去作曲以别余以其语过悲乃为和之其意以不早退为戒以退而相从之乐为慰云耳】

  安石在东海从事鬓惊秋中年亲友难别丝竹缓离愁一旦功成名遂凖拟东还海道扶病入西州雅志因轩冕遗恨寄沧洲 岁云莫须早计要褐裘故乡归去千里佳处輙迟留我醉歌时君和醉倒须君扶我惟酒可忘忧一任刘德相对卧高楼

  又【丙辰中秋欢饮逹旦大醉作此篇兼懐子由】

  明月几时有把酒问青天不知天上宫阙今夕是何年我欲乘风归去又恐琼楼玉宇高处不胜寒起舞弄清影何似在人间 转朱阁低绮戸照无眠不应有恨何事长向别时圆人有悲欢离合月有阴晴圆缺此事古难全但愿人长乆千里共婵娟

  又【欧阳文忠公尝问余琴诗何者最善畣以退之颖师琴诗最善公曰此诗最竒丽然非听琴乃听琵琶也余深然之建安章质夫家善琵琶者乞为歌词余久不作特取退之词稍加櫽括使就声律以遗之】

  昵昵儿女语灯火夜微明恩寃尔汝来去弹指泪和声忽变轩昻勇士一鼓填然作气千里不留行囘首莫云远飞絮搅青冥 众禽里真彩凤独不鸣跻攀寸歩千险一落百寻轻烦子指间风置我肠中氷炭起坐不能平推手从归去无泪与君倾

  又【子由徐州中秋作】

  离别一何久七度过中秋去年东武今夕明月不胜愁岂意彭城山下同泛清河古汴船上载凉州鼓吹助清赏鸿雁起汀洲 坐中客翠羽被紫绮裘素娥无赖西去曾不为人留今夜清尊对客明夜孤防水驿依旧照离忧但恐同王粲相对永登楼

  雨中花慢【初至密州以旱蝗斋素者累月方春牡丹盛开不获一赏至九月忽开千叶一朶雨中为置酒作】

  今岁花时深院尽日东风荡漾茶烟但有绿苔芳草柳絮榆钱闻道城西长廊古寺甲第名园有国艳带酒天香染袂为我留连 清明过了残红无处对此泪洒尊前秋向晩一枝何事向我依然高防聊追短景清啇不假余妍不如留取十分春态付与明年

  又【元刻逸】

  防院重帘何处惹得多情愁对风光睡起酒阑花谢蝶乱蜂忙今夜何人吹笙北岭待月西厢空怅望处一株红杏斜倚低墙 羞顔易变傍人先觉到处被着猜防谁信道防儿恩爱无限凄凉好事若无间阻幽欢却是寻常一般滋味就中香美除是偷尝

  又【元刻逸】

  嫩脸羞蛾因甚化作行云却返巫阳但有寒灯孤枕皓月空牀长记当初乍谐云雨便学鸾皇又岂料正好三春桃李一夜风霜 丹青画无言无笑看了谩结愁肠襟袖上犹存残黛渐减余香一自醉中忘了奈何酒后思量算应负你枕前珠涙万防千行

  八声甘州【寄参寥子】

  有情风万里巻潮来无情送潮归问钱塘江上西兴浦口几度斜晖不用思量今古俯仰昔人非谁似东坡老白首忘机 记取西湖西畔正算山好处空翠烟霏算诗人相得如我与君稀约他年东还海道愿谢公雅志莫相违西州路不应囘首为我沾衣

  醉蓬莱【重九上君猷】

  笑劳生一梦羇旅三年又还重九华发萧萧对荒园搔首赖有多情好饮无事似古人贤守岁岁登高年年落帽物华依旧 此防应须烂醉仍把紫菊茱茰细看重嗅摇落霜风有手栽双柳来岁今朝为我西顾酹羽觞江口防与州人饮公遗爱一江醇酎

  三部乐【情景】

  美人如月乍见掩暮云更增妍絶算应无恨安用阴晴圆缺娇甚空只成愁待下床又嬾未语先咽数日不来落尽一庭红叶 今朝置酒强起问为谁减动一分香雪何事散花却病维摩无疾却低眉惨然不畣唱金缕一声怨切堪折便折且惜取少年花发

  念奴娇【赤壁怀古】

  大江东去浪淘尽千古风流人物故垒西边人道是三国周郎赤壁乱石穿空惊涛拍防卷起千堆雪江山如画一时多少豪杰 遥想公瑾当年小乔初嫁了雄姿英发羽扇纶巾谈笑间强虏灰飞烟灭故国神游多情应笑我早生华髪人间如梦一尊还酧江月

  又【中秋】

  慿高眺远见长空万里云无留迹桂魄飞来光射处冷浸一天秋碧玉宇琼楼乘鸾来去人在清凉国江山如画望中烟树历历 我醉拍手狂歌举杯邀月对影成三客起舞徘徊风露下今夕不知何夕便欲乘风翻然归去何用骑鹏翼水晶宫里一声吹断横笛

  水龙吟【昔谢自然欲过海求师蓬莱至海中或谓自然蓬莱隔弱水三十万里不可到天台有司马子微身居赤城名在绛阙可往从之自然乃还受道于子微白日仙去子防着坐忘论七篇枢一篇年百余将终谓弟子曰吾居玉霄峰东望蓬莱尝有真灵降焉今为东海青童君所召乃蝉脱而去其后李太白作大鹏赋云尝见子防于江陵谓余有仙风道骨可与神游八极之表元丰七年冬予过临淮而湛然先生梁公在焉童顔清彻如二三十许人然人亦有自少见之者善吹铁笛嘹然有穿云烈石之声乃作水龙吟一首记子微太白之事倚其声而歌之】

  古来云海茫茫蓬山绛阙知何处人间自有赤城居士龙蟠凤举清净无为坐忘遗照八篇竒语向玉霄东望蓬莱晻霭有云驾骖风驭 行尽九州四海笑纷纷落花飞絮临江一见谪仙风采无言心许八表神游浩然相对酒酣箕踞待垂天赋就骑鲸路稳约相将去又【岭南大守闾邱公显致仕居姑苏东坡每过必留连尝言过姑苏不游虎邱不谒闾邱乃二欠事其重之如此一日出其后房佐酒有懿卿者甚有才色善吹笛因作水龙吟赠之○一云赠赵晦之吹笛侍儿】

  楚山脩竹如云异材秀出千林表龙须半剪凤膺微涨玉肌匀绕木落淮南雨晴云梦月明风袅自中郎不见桓伊去后知辜负秋多少 闻道岭南太守后堂深緑珠娇小绮窗学弄梁州初遍霓裳未了嚼征含宫泛商流羽一声云杪为使君洗尽蛮风瘴雨作霜天晓

  又【次韵章质夫杨花词】

  似花还似非花也无人惜从教坠抛街傍路思量却是无情有思萦损柔肠困酣娇眼欲开还闭梦随风万里寻郎去处又还被莺呼起 不恨此花飞尽恨西园落红难缀晓来雨过遗踪何在一池萍碎春色三分二分尘土一分流水细看来不是杨花点点是离人泪又【闾邱大夫孝直公显尝守黄州作栖霞楼为郡中胜絶元丰五年予谪居于黄正月十七日梦扁舟渡江中流囘望楼中歌乐杂作舟中人言公显方防客也觉而异之乃作此词公显时已致仕在苏州】

  小舟横截春江卧看翠壁红楼起云间笑语使君高防佳人半醉危柱哀弦艳歌余响绕云萦水念故人老大风流未减独囘首烟波里 推枕惘然不见但空江月明千里五湖闻道扁舟归去仍携西子云梦南州武昌南防昔游应记料多情梦里端来见我也参差是

  又【元刻不载】

  小沟东接长江柳堤苇防连云际烟村潇洒人间一閧渔樵早市永昼端居寸阴虚度了成何事但丝莼玉藕珠秔锦鲤相留恋又经岁 因念浮邱旧侣惯瑶池羽觞沉醉青鸾歌舞铢衣摇曵壶中天地飘堕人间歩虚声防露寒风细抱素琴独向银蟾影里此懐难寄

  又【咏雁○元刻不载】

  露寒烟冷蒹葭老天外征鸿寥唳银河秋晩长门灯悄一声初至应念潇湘防遥人静水多菰米望极平田徘徊欲下依前被风惊起 须信衡阳万里有谁家锦书遥寄万里云外斜行横阵才疎又缀仙掌月明石头城下影摇寒水念征衣未捣佳人拂杵有盈盈泪

  归朝欢【旧刻归朝歌○公尝有诗与苏伯固其序曰昔有九江与苏伯固唱和其略曰我梦扁舟浮震泽雪浪横江千顷白觉来满眼是庐山倚天无数开青壁葢实梦也然公诗复云扁舟震泽定何时满眼庐山觉又非】

  我梦扁舟浮震泽雪浪摇空千顷白觉来满眼是庐山倚天无数开青壁此生长接淅与君同是江南客梦中游觉来清赏同作飞梭掷 明日西风还挂席唱我新词泪沾臆灵均去后楚山空澧阳兰芷无顔色君才如梦得武陵更在西南极竹枝词莫摇新唱谁谓古今隔

  永遇乐【寄孙巨源】

  长忆别时景疎楼下明月如水美酒清歌留连不住月随人千里别来三度孤光又满冷落共谁同醉卷珠帘凄然顾影共伊到明无寐 今朝有客来从淮上能道使君深意慿仗清淮分明到海中有相思泪而今何在西垣清禁夜永云华侵被此时看回廊晓月也应暗记

  又【夜宿燕子楼梦眄眄因作此词一云徐州梦觉北登燕子楼作】

  明月如霜好风如水清景无限曲港跳鱼圆荷泻露寂莫无人见沈沈三鼓飘然一叶黯黯梦云惊防夜茫茫重寻无觅处觉来小园行遍 天涯倦客山中归路望防故园心眼燕子楼空佳人何在空锁楼中燕古今如梦何曾梦觉但有旧欢新怨异时对南楼夜景为余浩叹

  又【眺望○时刻不载】

  天末山横半空箫鼓楼观高起指点裁成东风满院总是新桃李纶巾羽扇一尊饮罢目送防鸿千里揽清歌余音不防缥缈尚萦流水 年来自笑无情何事犹有多情遗思绿鬓朱顔匆匆了却记花前醉明年春到重寻幽梦应在乱莺声里拍防干斜阳转处有谁共倚无愁可解【国士范日新作越调解愁雒阳刘九伯寿闻而悦之戏作俚语之诗天下传咏以谓几于逹者龙邱子犹笑之此虽免乎愁犹有所解也者夫游于自然而托于不得已人乐亦乐人愁亦愁彼且恶乎解哉乃反其词作无愁可解】

  光景百年看便一世生来不识愁味问愁何处来更开解个甚底万事从来风过耳何用不着心里你唤做展却眉便是逹者也则恐未 此理夲不通言何曾道欢游胜如名利道则浑是错不道如何即是这里元无我与你甚唤做物情之外若须待醉了方开解时问无酒怎生醉

  沁园春

  孤馆灯青野店鸡号旅枕梦残渐月华収练晨霜耿耿云山摛锦朝露漙漙世路无穷劳生有限似此区区长鲜欢微吟罢凭征鞍无语往事千端 当时共客长安似二陆初来俱少年有笔头千字胷中万巻致君尧舜此事何难用舍由时行藏在我袖手何妨闲处看身长健但优游卒岁且鬬尊前

  贺新郎【余倅杭日府僚湖中高防羣妓毕集惟秀兰不来营将督之再三乃来仆问其故畣曰沐浴倦卧忽有扣门声急起询之乃营将催督也整妆趋命不觉稍迟时府僚有属意于兰者见其不来恚恨不已云必有私事秀兰含泪力辩而仆亦从旁冷语阴为之解府僚终不释然也适榴花开盛秀兰以一枝借手献座中府僚愈怒责其不恭秀兰进退无遽但低首垂泪而已仆乃作一曲名贺新郎令秀兰歌以侑觞声容妙絶府僚大悦剧饮而罢】

  乳燕飞华屋悄无人桐阴转午晩凉新浴手弄生绡白团扇扇手一时似玉渐困倚孤眠清熟帘外谁来推绣戸枉教人梦防瑶台曲又却是风敲竹 石榴半吐红巾蹙待浮花浪蕋都尽伴君幽独秾艳一枝细看取芳心千重似束又恐被秋风惊绿若待得君来向此花前对酒不忍触共粉泪两蔌蔌

  稍遍【陶渊明赋归去来有其词而无其声余治东坡筑雪堂于上人皆笑其陋独鄱阳董毅夫过而悦之有卜隣之意乃取归去来词稍加括使就声律以遗毅夫使家僮歌之时相从于东坡释耒而和之扣牛角而为之节不亦乐乎】

  为米折腰因酒弃家口体交相累归去来谁不遣君归觉从前皆非今是露未晞征夫指予归路门前笑语喧童稚嗟旧菊都荒新松暗老吾年今已如此但小窗容膝闭柴扉策杖看孤云暮鸿飞云出无心鸟倦知还夲非有意 噫归去来兮我今忘我兼忘世亲戚无浪语琴书中有真味歩翠麓﨑岖泛溪窈窕涓涓暗谷流春水观草木欣荣幽人自感吾生行且休矣念寓形宇内复几时不自觉皇皇欲何之委吾心去留谁计神仙知在何处富贵非吾愿但知临水登山啸咏自引壶觞自醉此生天命更何疑且乘流遇坎还止【其词葢世所谓般瞻之稍遍也般瞻兹语也华言为五声葢羽声也于五音之次为第五今世作般渉误矣稍遍三疉每疉加促字当为稍读去声世作哨或作涉皆非是】

  又【春词】

  睡起画堂银蒜押帘珠幙云垂地初雨歇洗出碧罗天正溶溶养花天气一霎防风回芳草荣光浮动巻皱银塘水方杏靥勺酥花须吐绣园林翠红排比见乳燕捎蝶过繁枝忽一线炉香逐游丝昼永人间独立斜阳晩来情味 便乗兴防将佳丽深入芳菲里拨胡琴语轻拢慢撚总伶俐看约罗裙急趣檀板霓裳入破惊鸿起颦月临眉醉霞横脸歌声悠扬云际任满头红雨落花飞坠渐鳷鹊楼西玉蟾低尚徘徊未尽欢意君看今古悠悠浮幻人间世这些百岁光阴几日三万六千而已醉乡路稳不妨行但人生要适情耳

  戚氏【此词详叙穆天子西王母事世不知所谓遂谓非东坡作李端叔跋云东坡在山中燕席间有歌戚氏调者坐客言调美而词不典以请于公公方观山海经卽叙其事为题使妓再歌之随其声填写歌竟篇就才点定五六字而己】

  玉山东皇灵嫓统羣仙绛阙岧嶤翠房深迥倚霏烟幽闲志萧然金城千里锁婵娟当时穆满巡狩翠华曾到海西边风露明霁鲸波极目势浮舆葢方圆正迢迢丽日圃清寂琼草芊绵 争解绣勒香鞯鸾辂驻跸八马戏芝田瑶池近画楼隐隐翠鸟翩翩肆华筵【缺】间作管鸣弦宛若帝所钧天稚头皓齿绿发方瞳圆极恬淡高妍 尽倒琼壶酒献金鼎药固大椿年缥缈飞琼妙舞命双成奏曲醉留连云璈韵响泻寒泉浩歌畅饮斜月低河汉渐渐倚霞天际红深浅动归思回兮尘寰烂熳游玉辇东还杏花风数里响鸣鞭望长安路依稀柳色翠点春妍
!西京赋 

  有冯虚公子者,心侈体忲,雅好博古,学乎旧史氏,是以多识前代之载。言于安处先生曰:夫人在阳时则舒,在阴时则惨,此牵乎天者也。处沃土则逸,处瘠土则劳,此系乎地者也。惨则鲜于欢□劳则褊于惠,能违之者寡矣。小必有之,大亦宜然。故帝者因天地以致化,兆人承上教以成俗,化俗之本,有与推移,何以核诸□秦据雍而强,周即豫而弱,高祖都西而泰,光武处东而约,政之兴衰,恒由此作。先生独不见西京之事欤□请为吾子陈之。 

  汉氏初都,在渭之涘,秦里其朔,实为咸阳。左有崤函重险、桃林之塞,缀以二华,巨灵赑屃,高掌远跖,以流河曲,厥迹犹存。右有陇坻之隘,隔阂华戎,岐梁汧雍,陈宝鸣鸡在焉。于前终南太一,隆崛崔萃,隐辚郁律,连冈乎嶓冢,抱杜含户,欱沣吐镐,爰有蓝田珍玉,是之自出。于后则高陵平原,据渭踞泾,澶漫靡迤,作镇于近。其远则九嵕甘泉,涸阴冱寒,日北至而含冻,此焉清暑。尔乃广衍沃野,厥田上上,实为地之奥区神皋。昔者,大帝说秦穆公而觐之,飨以钧天广乐。帝有醉焉,乃为金策,锡用此土,而翦诸鹑首。是时也,并为强国者有六,然而四海同宅西秦,岂不诡哉! 

  自我高祖之始入也,五纬相汁以旅于东井。娄敬委辂,斡非其议,天启其心,人惎之谋,及帝图时,意亦有虑乎神只,宜其可定以为天邑。岂伊不虔思于天衢□岂伊不怀归于枌榆□天命不滔,畴敢以渝! 

  于是量径轮,考广袤,经城洫,营郭郛,取殊裁于八都,岂启度于往旧。乃览秦制,跨周法,狭百堵之侧陋,增九筵之迫胁。正紫宫于未央,表峣阙于闻阖。疏龙首以抗殿,状巍峨以岌嶪。亘雄虹之长梁,结棼橑以相接。蔕倒茄于藻井,披红葩之狎猎。饰华榱与璧珰,流景曜之韡晔。雕楹玉磶,绣栭云楣。三阶重轩,镂槛文(媲换木旁)。右平左域,青琐丹墀。刊层平堂,设切厓隒。坻崿鳞眴,栈齴巉嶮。襄岸夷涂,修路陵险。重门袭固,奸宄是防。仰福帝居,阳曜阴藏。洪钟万钧,猛虡趪趪。负笋业而余怒,乃奋翅而腾骤。 

  朝堂承东,温调延北,西有玉台,联以昆德。嵯峨崨(山业),罔识所则。若夫长年神仙,宣室玉堂,麒麟朱鸟,龙兴含章,譬众星之环极,叛赫戏以辉煌。正殿路寝,用朝群辟。大夏耽耽,九户开辟。嘉木树庭,芳草如积。高门有闶,列坐金狄,内有常侍谒者,奉命当御。兰台金马,递宿迭居。次有天禄石渠校文之处,重以虎威章沟严更之署。徼道外周,千庐内附,卫尉八屯,警夜巡昼。植铩悬犬,用戒不虞。 

  后宫则昭阳飞翔,增成合欢,兰林披香,凤凰鸳鸾。群窈窕之华丽,嗟内顾之所观。故其馆室次舍,采饰纤缛。裛以藻绣,文以朱绿,翡翠火齐,络以美玉。流悬黎之夜光,缀随珠以为烛。金戺玉阶,彤庭辉辉。珊瑚林碧,瓀珉磷彬。珍物罗生,焕若昆仑。虽厥裁之不广,侈靡逾乎至尊。于是钩陈之外,阁道穹隆,属长乐与明光,径北通乎桂宫。命般尔之巧匠,尽变态乎其中。后宫不移,乐不徙悬,门卫供帐,官以物辨。恣意所幸,下辇成燕。穷年忘归,犹弗能遍。瑰异日新,殚所未见。 

  惟帝王之神丽,惧尊卑之不殊。虽斯宇之既坦,心犹凭而未搪…思比象于紫微,恨阿房之不可庐。覛往昔之遗馆。获林光于秦余。处甘泉之爽垲,乃隆崇而弘敷。既新作于迎风,增露寒与储胥。托乔基于山冈,直滞霓以高居。通天訬以竦峙,径百常而茎擢。上辩华以交纷,下刻哨其若削,翔鹤仰而不逮,况青鸟与簧雀。伏棂槛而頫听,闻雷霆之相激。 

  柏梁既灾,越巫陈方。建章是经,用厌火祥。营宇之制,事兼未央。圜阙竦以造天,若双碣之相望。凤骞翥于甍标,咸溯风甫欲翔。阊阖之内,别风嶕峣。何工巧之瑰玮,交绮豁以疏寮。干云雾而上达,状亭亭以苕苕。神明崛其特起,井干叠而百增。跱游极于浮柱,结重栾以相承。累层构而遂隮,望北辰而高兴。消氛埃于中宸,集重阳之清澄。瞰宛虹之长鬐,察云师之所凭。上飞闼而仰眺,正睹瑶光与玉绳。将乍往而未半,休悼栗而怂兢,非都卢之轻趫,孰能超而究升□ 

  驭娑骀荡□焘弄桔桀。枍诣承光,睽瓜庨豁。增桴重棼,锷锷列列。反宇业业,飞檐(车献)(车献)。流景内照,引曜日月。天梁之宫,实开高闱。旗不脱扃,结驷方蕲。轹辐轻骛,容于一扉。长廊广庑.途阁云蔓。闬庭诡异,门千户万。重闺幽闼,转相逾延。望(上穴下叫)窱以径延,眇不知其所返。既乃珍台蹇产以极壮,橙道逦倚以正东。似阆风之遐扳,横西洫而绝金墉。城尉不弛拆,而内外潜通。 

  前开唐中,弥望广橡。顾临太液,沧池漭沆。渐台立子中央;赫昈昈以弘敞。清渊洋洋,神山峨峨。列瀛洲与方丈,夹蓬莱而骈罗。上林岑以垒嶵,下崭严以岩龉。长风激于别岛,起洪涛而扬波。浸石菌于重涯,濯灵芝以朱柯。海若游于玄渚,鲸宜失流而蹉跎。于是采少君之端信,庶栾大之贞固。立修茎之仙掌,承云表之清露。屑琼蕊以朝飧,必性命之可度。美往普之松乔,要羡门乎天路。想升龙于鼎湖,岂时俗之足慕。若历世而长存,何遽营乎陵墓!徒观其城郭之制,则旁开三门,参涂夷庭,方轨十二□街衢相经。廛里端直,甍宇齐平。北阙甲第,当道直启。程巧致功,期不纮陊。木衣绨锦,士被朱紫。武库禁兵,设在兰锜。匪石匪董,畴能宅此□尔乃廓开九市,通阛带阓。旗亭五重,俯察百隧。周制大胥,今也惟尉。瓌货方至,鸟集鳞萃。鬻者兼赢,求者不匮。尔乃商贾百族,裨贩夫妇,鬻良杂普,蚩眩边鄙。何必昏于作劳,邪赢优而足恃。彼肆人之男女,丽美奢乎许史。若夫翁伯浊质,张里之家,击钟鼎食,连骑相过。东京公侯,壮何能加□都邑游侠,张赵之伦,齐志无忌,拟迹田文。轻死重气,结党连群□实蕃有徒,其从如云。茂陵之原,阳陵之朱。趫悍虓豁,如虎如貙。睚眦虿芥,尸僵路隅。丞相欲以赎子罪,阳石污而公孙诛。若其五县游丽辩论之士,街谈巷议,弹射臧否,剖析毫厘,擘肌分理。所好生毛羽,所恶成创痏。郊甸之内,乡邑殷赈。五都货殖,既迁既引。商旅联槅,隐隐展展。冠带交错,方辕接轸。封几千里,统以京尹。郡国宫馆,百四十五。右机盩屋,并卷酆鄠。左暨河华,遂至虢土。上林禁苑,跨谷弥阜。东至鼎湖,邪界细柳。掩长杨而联五柞,绕黄山而款牛首。缭垣绵联,四百余里。植物斯生,动物斯止。众鸟翩翻,群兽(马否)呆。散似惊波,聚以京峙,伯益不能名,隶首不能纪。林麓之饶,于何不有□木则枞括根楠,梓械楩枫。嘉卉灌丛,蔚若邓林。郁蓊薆薱,橚爽櫹椮。吐葩飓荣,布叶垂阴。草则箴莎营蒯,薇蕨荔苀,王蒭莔台,戎葵怀羊。苯莼蓬茸,弥皋被冈。筱荡敷衍,编町成篁。山谷原湿,泱漭无疆。乃有昆明灵沼,黑水玄阯。周以金堤,树以柳杞。豫章珍馆,揭焉中峙。牵牛立其左,织女处其右,日月于是乎出入□象扶桑与檬汜。其中则有鼋鼍巨鳖,鱣鲤鱮鮦,鲔鲵鲿鲨,修额短项,大日折鼻,诡类殊种。鸟则鹔鹴鸹鸨,鴐鹅鸿鹤。上春候来□季秋就温。南翔衡阳,北栖雁门。奋隼归凫,沸卉軿訇。众形殊声,不可胜论。于是孟冬作阴,寒风肃杀。雨雪飘飘,冰霜惨烈。百卉具零,刚虫搏击。尔乃振天维,衍地络,荡川滨,簸林薄。鸟毕骇,兽咸作,草伏木栖,寓居穴托。起彼集此,霍绎纷泊,在彼灵囿之中,前后无有垠锷,虞人掌焉,为之营域。焚莱平场,柞木剪棘。结置百里,迒杜蹊塞。麀鹿虞虞,骈田逼仄。天子乃驾雕轸,六骏驳。戴翠帽,倚金较。璿弁玉缨□遗光倏爚。建玄弋,树招摇。栖鸣鸢,曳云梢。弧旌枉矢,虹旃蜕旄。华盖承辰,天毕前驱。千乘雷动,万骑龙趋。属车之篷,载猃猲獢。匪唯玩好,乃有秘书。小说九百,本自虞初。从容之求,实侯实储。于是蚩尤秉钺,奋鬣被般。禁御不若,以知神奸,魑魅魍魉,莫能逢旃。陈虎旅于飞廉,正垒壁乎上兰。结部曲,整行伍。燎京薪,骇雷鼓。纵猎徒,赴长莽。迾卒清候,武士赫怒。缇衣韎韐,睢盱拔扈。光炎烛天庭,嚣声震海浦。河渭为之波荡,吴狱为之陁堵。百禽棱遽,骙瞿奔触。丧精亡魂,失归忘趋。投轮关辐,不邀自遇。飞罕潚箾,流镝(扌雹)(扌暴)。矢不虚舍,铤不苟跃。当足见蹍,值轮被轹。僵禽毙兽,烂若碛砾。但观置罗之所罥结,竿殳之所揘毕,叉簇之所搀捔,徒搏之所撞(扌必),白日未及移其晷,巳狝其十七八。若夫游鷮高翚,绝阬逾斥。巉兔联猭,陵峦超壑。比诸东郭,莫之能获。乃有迅羽轻足,寻景追括。鸟不暇举,兽不碍发。青(骨交)击于韝下,韩卢噬于緤末。及其猛毅髬髵,隅目高匡,威慑兕虎,莫之敢伉。乃使中黄之士,育获之俦,朱鬕髠髽,植发如竿。袒裼戟手,奎踽盘桓。鼻赤象,圈巨狿,摣狒猬,(扌此)窳狻,揩枳落,突棘藩。梗林为之靡拉,朴丛为之摧残。轻锐僄狡,趫捷之徒,赴洞穴,探封狐。陵重巘,猎昆駼。杪木末,攫獑猢。超殊榛,摕飞鼯。是时,后宫嬖人昭仪之伦,常亚子乘舆。慕贾氏之如皋,《北风》之同车。盘于游畋,其乐只且。于是鸟兽殚,目观穷。迁延邪睨,集乎长杨之宫。息行夫,展车马。收禽举胔,数课众寡。置互摆牲,颁赐获卤。割鲜野飨;镐勤赏功。五军六师,千列盲重。酒车酌醴,方驾授饔。升觞举燧,既釂鸣钟。膳夫驰骑,察贰廉空。炙炰伙,清酤(多攴)。皇恩溥怖,洪德施。'徒御悦,士忘罢。巾车命驾□回旆右移。相羊乎五柞之馆,旋憩乎昆明之池。登豫章,简矰红。蒲且发,弋高鸿。挂白鹊,联飞龙。磻不待絓,往必加双。于是命舟牧,为水嬉。浮鷁首,翳云芝。垂翟葆,建羽旗。齐枻女,纵悼歌。发引和,校鸣葭。奏《淮南》,度《阳阿》。感河冯,怀湘娥。惊蛔蛹,惮蚊蛇。然后钓鲂鳢,缅鰋鲉。摭紫贝,搏耆龟。捞水豹旱潜牛。泽虞是滥,何有春秋□擿漻澥,搜川渎。布九罭,设罣蔍。摧昆鲕,殄水族。蓬藕拔,蜃蛤剥。逞欲畋斁,效获麑麃。谬蓼浡浪,乾池涤薮。上无逸飞,下无遗走。攫胎拾卵,纸缘尽取。取乐今日,遑恤我后! 

  既定且宁,焉知倾陁□大驾幸乎平乐,张甲乙而袭翠被。攒珍宝之玩好,纷瑰丽以侈靡。临迥望之广场,程角抵之妙戏。乌获扛鼎,都卢寻撞。冲狭燕濯,胸突铦锋。跳丸剑之挥霍,走索上而相逢。华岳峨峨,冈峦参差。神木灵草,朱实离离.总会仙倡,戏豹舞罴。白虎鼓瑟,苍龙吹篪。女娥坐而长歌,声清畅而蜲蛇.洪涯立而指麾,被毛羽之襳襹。度曲未终,云起雪飞。初若飘飘,后遂霏霏。复陆重阁,转石成雷。礔砺激而增响,磅盖象乎天威。巨兽百寻,是为曼延。神山崔巍,欻从背见。熊虎升而挐攫,猿狖超而高援。怪兽陆梁,大雀踆踆。白象行孕,垂鼻磷囷。海鳞变而成龙,状婉婉以昷昷。舍利飏飏,化为仙车,骊驾四鹿,芝盖九葩。蟾蜍与龟,水人弄蛇。奇幻倏忽,易貌分形。吞刀吐火,云雾杏冥。画地成川,流渭通泾。东海黄公,赤刀粤祝。冀厌白虎,卒不能救。挟邪作蛊,于是不售。尔乃建戏车,树修旃。伥僮程材,上下翩翻。突倒投而跟絓,譬陨绝而复联。百马同辔,骋足并驰.撞末之技,态不可弥。弯弓射乎西羌,又顾发乎鲜卑。 

  于是众变尽,心酲醉。般乐极,怅怀萃。阴戒期门,微行要屈。降尊就卑,怀玺藏绂。便旋闾阎,周观郊遂。若神龙之变化,章后皇之为贵。然后历掖庭,适欢馆。捐衰色,从嬿婉。促中堂之狭坐,羽觞行而无算。秘舞更奏,妙材骋技。妖蛊艳夫夏姬,美声畅于虞氏。始徐进而嬴形,似不任乎罗绮。嚼清商而却转、增婵娟以此豸。纷纵体而迅赴,若惊鹤之群罢。振朱屣于盘樽,奋长袖之飒俪。要绍修态,丽服飏菁。眠藐流眄,一顾倾城。展季桑门,谁能不营□列爵十四,竟媚取荣。盛衰无常,唯爱所丁。卫后兴于鬓发,飞燕宠于体轻。尔乃逞志究欲,穷身极娱。鉴戒《唐诗》,他人是偷。自君作故,何礼之拘□增昭仪于婕妤,贤既公而又侯。许赵氏以无上,思致董于有虞。王闳争坐于侧,汉载安而不渝。 

  高祖创业,继体承基。暂劳永逸,无为而治。耽乐是从,何虑何思□多历年所,二百余期。徒以地沃野丰,百物殷阜;岩险周固,衿带易守。得之者强,据之者久。流长则难竭,柢深则难朽。故奢泰肆情,馨烈弥茂。鄙生生乎三百之外,传闻于未闻之者,曾仿佛其若梦,未一隅之能睹。此何与于殷人之屡迁,前八而后五,居相圮耿,不常厥土。盘庚作诰,帅人以苦。方今圣上,同天号于帝皇,掩四海而为家。富有之业,莫我大也。徒恨不能以靡丽为国华,独俭啬以龌龊。忘《蟋蟀》之谓何□岂欲之而不能,将能之而不欲欤□蒙窃惑焉,愿闻所以辩之之说也。 





!东京赋 


  安处先生于是似不能言,怃然有闲,乃莞尔而笑曰:“若客所谓末学肤受,贵耳而贱目者也。苟有胸而无心,不能节之以礼,宜其今而荣古矣。由余以西戎孤臣,而悝缪公于宫室,如之何其以温故而知新,研核是非,近于此惑?周姬之末,不能厥政,政用多僻,始于宫邻,卒于金虎。嬴氏搏翼,择肉西邑。是时也,七雄并争,竞相高以奢丽楚筑章华于前,赵建丛台于后。秦政利觜长距,终得擅场,思专其侈,以莫己若。乃构阿房,起甘泉,结云阁,冠南山征税尽,人力殚。然后收以太半之赋,威以参夷之刑。其遇民也,若□氏之芟草,既蕴崇之,又行火焉。〔A11C〕々黔首,岂徒□高天、□厚地而已哉!乃救死于其颈,驱以就役,唯力是视。百姓弗能忍,是用息肩于大汉,而欣戴高祖。高祖膺□受图,顺天行诛,杖朱旗而建大号。所推必亡,所存必固。埽项军于垓下,绁子婴于轵涂。因秦宫室,据其府库。作洛之制,我则未暇,是以西匠营宫,目玩阿房,规摹逾溢,不度不臧。损之又损之,然尚过于周堂。观者狭而谓之陋,帝已讥其泰而弗康。且高既受命建家,造我区夏矣,文又躯自菲薄,治致升平之德。武有大启土宇,纪禅肃然之功。宣重威以抚和戎狄,呼韩来享,咸用纪宗存主,飨祀不辍。铭勋彝器,历世弥光。今舍纯懿而论爽德,以《春秋》所讳而为美谈,宜无嫌于往初,故蔽善而扬恶,祗吾子之不知言也。必以肆奢为贤,则是黄帝合宫,有虞总期,固不如夏癸之瑶台,殷辛之琼室也,汤武谁革而用师哉!盍亦览东京之事以自寤乎?且天子有道,守在海外。守位以仁,不恃隘害。苟民志之不谅,何云岩险与襟带?秦负阻于二关,卒开项而受沛。彼偏据而规小,岂如宅中而图大?昔先王之经邑也,掩观九□奥,靡地不营。土圭测景,不缩不盈,总风雨之所交,然后以建王城。审曲面势,溯洛背河,左伊右□,西阻九阿,东门于旋。盟津达其后,太谷通其前。回行道乎伊阙,邪径捷乎に辕。大室作镇,揭以熊耳。底柱辍流,钅覃以大□丕。温液汤泉,黑丹石辎。王鲔岫居,能鳖三趾。宓妃攸馆,神用挺纪。龙图授羲,龟书畀姒。召伯相宅,卜惟洛食。周公初基,其绳则直。苌弘魏舒,是廓是极。经途九轨,城隅九雉。度堂以筵,度室以几。京邑翼翼,四方所视。汉初弗之宅,故宗绪中圮。巨猾闲□,窃弄神器,历载三六,偷安天位。于是蒸民,罔敢或贰,其取威也重矣。我世祖忿之,乃龙飞白水,凤翔参墟。授钺四七,共工是除。□枪旬始,群凶靡余。区宇□宁,思和求中。睿哲玄览,都兹洛宫。曰止曰时,昭明有融。既光厥武,仁洽道丰。登岱勒封,与黄比崇。逮至显宗,六合殷昌。乃新崇德,遂作德阳。启南端之特闱,立应门之将将。昭仁惠于崇贤,抗义声于金商。飞云龙于春路,屯神虎于秋方。建象魏之两观,旌六典之旧章。其内则含德、章台,天禄、宣明,温饬、迎春,寿安永宁。飞阁神行,莫我能形。濯龙芳林,九谷八溪。芙蓉覆水,秋兰被涯。渚戏跃鱼,渊游龟□□。永安离宫,修竹冬青。阴池幽流,玄泉冽清。鹎ス秋栖,鹘□鸟春鸣。且□鸠丽黄,关关嘤嘤。于南则前殿灵台,和欢安福。讠移门曲榭,邪阻城洫。奇树珍果,钩盾所职。西登少华,亭候修敕。九龙之内,实曰嘉德。西南其户,匪雕匪刻。我后好约,乃宴斯息。于东则洪池清□。渌水澹澹。内阜川禽外丰葭□。献鳖蜃与龟鱼,供蜗{庳虫}与菱芡。其西则有平乐都场,示远之观。龙雀蟠蜿,天马半汉。瑰异谲诡,灿烂炳焕。奢未及侈,俭而不陋。规遵王度,动中得趣。于是观礼,礼举仪具。经始勿亟,成之不日。犹谓为之者劳,居之者逸。慕唐虞之茅茨,思夏后之卑室,乃营三宫,布教颁常。复庙重屋,八达九房。规天矩地,授时顺乡。造舟清池,惟水泱泱。左制辟雍,右立灵台。因进距衰,表贤简能。冯相观□,祈褫禳灾。于是孟春元日,群后旁戾。百僚师师,于斯胥洎。藩国奉聘,要荒来质。具惟帝臣,献琛执贽。当觐乎殿下者,盖数万以二。尔乃九宾重,胪人列,崇牙张,镛鼓设。郎将司阶,虎戟交铩。龙辂充庭,云旗拂霓。夏正三朝,庭燎□□,撞洪钟伐灵鼓,旁震八,□平□盖隐訇,若疾霆转雷而激迅风也。是时称警跸已,下雕辇于东厢。冠通天,佩玉玺,纡皇组,要干将,负斧□,次席纷纯,左右玉几,而南面以听矣。然后百辟乃入,司仪辨等,尊卑以班。璧盖皮帛之贽既奠,天子乃以三揖之礼礼之。穆穆焉,皇皇焉,济济焉,将将焉,信天下之壮观也。乃羡公侯卿士,登自东除。访万机,询朝政,勤恤民隐,而除其眚。人或不得其所,若己纳之于隍。荷天下之重任,匪怠皇以宁静。发京仓,散禁财,赉皇寮,逮舆台。命膳夫以大飨,饔饩浃乎家陪。春醴惟醇,燔炙芬芬。君臣欢康,具醉熏熏。千品万官,已事而□□。勤屡省,懋乾乾。清风协于玄德,淳化通于自然。宪先灵而齐轨,必三思以顾愆。招有道于侧陋,开敢谏之直言。聘丘园之耿□,旅束帛之戋戋。上下通情,式宴且盘。及将祀天郊,报地功,祈福乎上玄,思所以为虔。肃肃之仪尽,穆穆之礼殚,然后以献精诚,奉□祀,曰允矣天子者也。乃整法服,正冕带,珩ヨ□纟延,玉笄綦会。火龙黼黻,藻纟率ひ厉。结飞云之袷辂,树翠羽之高盖。建辰旒之太常,纷焱悠以容裔。六玄虬之弈弈,齐腾骧而沛艾。龙□华□义,金锬镂锡。方钅乞左纛,钩膺玉瑰。銮声哕哕,和铃钅央钅央。重轮贰毂飞□令。羽盖威蕤,葩□蚤曲茎。顺时服而设副,咸龙□而繁缨。立戈迤戛,农舆辂木属车九九,乘轩并毂。是旃,朱旄青屋。奉引既毕,先辂乃发。鸾旗皮轩,通帛纟青旆。云罕九ヵ,□戟□□□葛。{髟耳}髦被绣,虎夫戴□。驸承华之蒲梢,飞流苏之骚杀。总轻武于后陈,奏严鼓之嘈□献。戎士介而扬挥,戴金钲而建黄钺。清道案列,天行星陈。肃肃习习,隐隐辚辚。殿未出乎城关,旆已反乎郊畛。盛夏后之致美,爰敬恭于明神。尔乃孤竹之管,云和之瑟雷鼓{渊鼓}々,六变既毕,冠华秉翟,列舞八佾。元祀惟称,群望咸秩。□□□燎之炎炀,致高烟乎太一。神歆馨而顾德,祚灵主以元吉。然后宗上帝于明堂,推光武以作配。辩方位而正则,五精帅而来摧。尊赤氏之朱光,四灵懋而允怀。于是春秋改节,四时迭代。蒸蒸之心,感物曾思。躬追养于庙祧,奉蒸尝与衤龠祠。物牲辩省,设其□□衡。毛い豚□白,亦有和羹。涤濯静嘉,礼仪孔明。万舞奕奕,钟鼓□皇□皇。灵祖皇考,来顾来飨。神具醉止,降福穰穰。及至农祥晨正,土膏脉起,乘銮辂而驾苍龙,介驭间以剡耜。躬三推于天田,修帝籍之千亩。供□郊之粢盛,必致思乎勤己。兆民劝于疆场,感懋力以耘耔。春日载阳,合射辟雍。设业设ね,宫悬金镛。{卉鼓}鼓路鼗,树羽幢幢。于是备物,物有其容。伯夷起而相仪,后夔坐而为工。张大侯,制五正,设三乏,□司旌。并夹既设,储乎广庭。于是皇舆夙驾,{差车}于东阶以须。消启明,埽朝霞,登天光于扶桑。天子乃抚玉辂,时乘六龙。发鲸鱼,铿华钟。大丙弭节,风后陪乘。摄提运衡,徐至于射宫。礼事展,乐物具。《王夏》阕,《驺虞》奏决拾既次,雕弓斯彀。达余萌于暮春,昭诚心以远喻。进明德而崇で,涤饕餮之贪欲。仁风衍而外流,谊方激而遐骛。日月会于龙犭ζ,恤民事之劳疚。因休力以息勤,政欢忻于春酒。执銮刀以袒割,奉觞豆于国叟。降至尊以训恭,送迎拜乎三寿。敬慎威仪,示民不偷我有嘉宾,其乐愉愉。声教布□,盈溢天区。文德既昭,武节是宣。三农之隙,曜威中原。岁惟仲冬,大阅西园。虞人掌焉,先期戒事。悉率百禽鸠诸灵囿。兽之所同,是谓告备。乃御小戎,抚轻轩,中畋四牡,既佶且闲。戈矛若林,牙旗缤纷。迄上林,结徒营。次和树表,司铎受钲。坐作进退,节以军声。三令五申,示戮斩牲陈师鞠旅,教达禁成。火列具举,武士星敷。鹅鹳鱼丽,箕张翼舒。轨尘掩□,匪疾匪徐。驭不诡遇,射不剪毛。升献六禽,时膳四膏。马足未极,舆徒不劳。成礼三殴,解罘放鳞。不穷乐以训俭,不殚物以昭仁。慕天乙之弛罟,因教祝以怀民。仪姬伯之渭阳,失熊罴而获人。泽浸昆虫,威振八宇。好乐无荒,允文允武。薄狩于敖,既琐琐焉,岐阳之□,又何足数。尔乃卒岁大傩,殴除群厉。方相秉钺,巫觋操□。亻辰子万童,丹首玄制。桃弧棘矢,所发无臬。飞砾雨散,刚瘅必弊。煌火驰而星流,逐赤疫于四裔。然后凌天池,绝飞梁,捎魑魅,斫犭□狂,斩□委蛇,脑方良。囚耕父于清泠,溺女魃于神潢。残夔<鬼虚>与罔像,殪野仲而歼游光。八灵为之震慑,况<鬼支>蜮与毕方。度朔作梗,守以郁垒,神荼副焉,对操索苇。目察区陬,司执遗鬼。京室密清,罔有不韪。于是阴阳交和,庶物时育。卜征考祥,终然允淑。乘舆巡乎岱岳,劝稼穑于原陆。同衡律而壹轨量,齐急舒于寒燠。省幽明以黜陟,及反旆而回复。望先帝之旧墟,慨长思而怀古。俟阊风而西遐,致恭祀乎高祖。既春游以发生,启诸蛰于潜户。度秋豫以收成,观丰年之多□余。嘉田□之匪懈,行致赉于九扈。左瞰□谷,右睨玄圃。眇天末以远期,规万世而大摹且归来以释劳,膺多福以安□。总集瑞命备致嘉祥。圉林氏之驺虞,扰泽马与腾黄。鸣女床之鸾鸟,舞丹穴之凤皇。植华平于春辅,丰朱草于中唐。惠风广被,泽洎幽荒。北燮丁令,南谐越裳,西包大秦,东过乐浪。重舌之人九译,佥稽首而来王。是以论其迁邑易京,则同规乎殷盘。改奢即俭,则合美乎斯干。登封降禅,则齐德乎黄轩。为无为,事无事,永有民以孔安。遵节俭,尚素朴,思仲尼之克己,履老氏之常足。将使心不乱其所在,目不见其可欲。贱犀象,简珠玉,藏金于山,抵璧于谷。翡翠不裂,玳瑁不蔟。所贵惟贤,所宝惟谷。民去末而反本,感怀忠而抱悫。于斯之时,海内同悦,曰:‘吁!汉帝之德,侯其□而。’盖□荚为难莳也,故旷世而不觌。惟我后能殖之,以至和平,方将数诸朝阶。然则道胡不怀,化胡不柔!声与风翔,泽从云游。万物我赖,亦又何求?德宇天覆,辉烈光烛。狭三王之<走录><走足>,轶五帝之长驱。踵二皇之遐武,谁谓驾迟而不能属?东京之懿未馨,值余有犬马之疾,不能穷其精详,故粗为宾言其梗概如此。若乃流遁忘反,放心不觉,乐而无节,后离其戚,一言几于丧国,我未之学也。且夫挈瓶之智,守不假器。况纂帝业而轻天位?瞻仰二祖,厥庸孔肆。常翘翘以危惧,若乘奔而无辔。白龙鱼服,见困豫且。虽万乘之无惧,犹怵惕于一夫。终日不离其辎重,独微行其焉如?夫君人者,【纩塞耳,车中不内顾。佩以制容,銮以节涂,行不变玉,驾不乱步。却走马以粪车,何惜□□与飞兔?方其用财取物,常畏生类之殄也。赋政任役,常畏人力之尽也。取之以道,用之以时。山无槎□,畋不{鹿夭}胎,草木蕃庑,鸟兽阜滋。民忘其劳,乐输其财。百姓同于饶衍,上下共其雍熙。烘恩素蓄,民心固结。执谊顾主,夫怀贞节。忿奸慝之干命,怨皇统之见替,玄谋设而阴行,合二九而成谲。登圣皇于天阶,章汉祚之有秩。若此,故王业可乐焉。今公子苟好剿民以□俞乐,忘民怨之为仇也,好殚物以穷宠,忽下叛而生忧也。夫水所以载舟,亦所以覆舟。坚冰作于履霜,寻木起于蘖栽。昧旦丕显,后世犹怠。况初制于甚泰,服者焉能改裁?故相如壮上林之观,扬雄骋羽猎之辞,虽系以ㄨ墙填堑,乱以收□解罘,卒无地风规,祗以昭其愆尤。臣济□以陵君,忘经国之长基。故函谷击柝于东西,朝颠覆而莫持。凡人心是所学,体安所习。鲍肆不知其臭,玩其所以先入。《咸池》不齐度于《<圭龟>咬》,而众听或疑。能不惑者,其唯子野乎!”客既醉于大道,饱于文义,劝德畏戒,喜惧交争。罔然若酲,朝罢夕倦,夺气褫魄之为者,忘其所以为谈,失其所以为夸。良久乃言曰:“鄙哉予乎!习非而遂迷也,幸见指南于吾子。若仆所闻,华而不实。先生之言,信而有征。鄙夫寡识,而今而后,乃知大汉之德馨,咸在于此。昔常恨《三坟》《五典》既泯,仰不睹炎帝帝魁之美,得闻先生之余论,则大庭氏何以尚兹!走虽不敏,庶斯达矣!”
陆游

赤壁词(招韩无咎游金山)

禁门钟晓,忆君来朝路,初翔鸾鹄。西府中台推独步,行对金莲宫烛。蹙绣华鞯,仙葩宝带,看即飞腾速。人生难料,一尊此地相属。 

回首紫陌青门,西湖闲院,锁千梢修竹。素壁栖鸦应好在,残梦不堪重续,岁月惊心,功名看镜,短鬓无多绿。一欢休惜,与君同醉浮玉。 

浣沙溪(和无咎韵)

谩向沙头醉玉瓶。唤君同赏小窗明。夕阳吹角最关情。 

忙日苦多闲日少,新愁常续旧愁生。客中无伴怕君行。 

浣沙溪(南郑席上)

浴罢华清第二汤。红棉扑粉玉肌凉。娉婷初试藕丝裳。 

凤尺裁成猩血色,螭奁熏透麝脐香。水亭幽处捧霞觞。 

青玉案(与朱景参会北岭)

西风挟雨声翻浪。恰洗尽、黄茅瘴。老惯人间齐得丧。千岩高卧,五湖归棹,替却凌烟像。 

故人小驻平戎帐。白羽腰间气何壮。我老渔樵君将相。小槽红酒,晚香丹荔,记取蛮江上。 

水调歌头(多景楼)

江左占形胜,最数占徐州。连山如画,佳处缥渺著危楼。鼓角临风悲壮,烽火连空明灭,往事忆孙刘。千里曜戈甲,万灶宿貔貅。 

露沾草,风落木,岁方秋。使君宏放,谈笑洗尽古今愁。不见襄阳登览,磨灭游人无数,遗恨黯难收。叔子独千载,名与汉江流。 

浪淘沙(丹阳浮玉亭席上作)

绿树暗长亭。几把离尊。阳关常恨不堪闻。何况今朝秋色里,身是行人。 

清泪浥罗巾。各自消魂。一江离恨恰平分。安得千寻横铁锁,截断烟津。 

定风波(进贤道上见梅赠王伯寿)

_帽垂鞭送客回。小桥流水一枝梅。衰病逢春都不记。谁谓。幽香却解逐人来。 

安得身闲频置酒。携手。与君看到十分开。少壮相从今雪鬓。因甚。流年_恨两相催。 

南乡子

归梦寄吴樯。水驿江程去路长。想见芳洲初系缆,斜阳。烟树参差认武昌。 

愁鬓点新霜。曾是朝衣染御香。重到故乡交旧少,凄凉。却恐它乡胜故乡。 

南乡子

早岁入皇州。尊酒相逢尽胜流。三十年来真一梦,堪愁。客路萧萧两鬓秋。 

蓬峤偶重游。不待人嘲我自羞。看镜倚楼俱已矣,扁舟。月笛烟蓑万事休。 

满江红

危堞朱栏,登览处、一江秋色。人正似、征鸿社燕,几番轻别。缱绻难忘当日语,凄凉又作它乡客。问鬓边、都有几多丝,真堪织。 

杨柳院,秋千陌。无限事,成虚掷。如今何处也,梦魂难觅。金鸭微温香缥渺,锦茵初展情萧瑟。料也应、红泪伴秋霖,灯前滴。 

满江红(夔州催王伯礼侍御寻梅之集)

疏蕊幽香,禁不过、晚寒愁绝。那更是、巴东江上,楚山千叠。_帽闲寻西瀼路,亸鞭笑向南枝说。恐使君、归去上銮坡,孤风月。 

清镜里,悲华发。山驿外,溪桥侧。凄然回首处,凤凰城阙。憔悴如今谁领略,飘零已是无颜色。问行厨、何日唤宾僚,犹堪折。 

感皇恩(伯礼立春日生日)

春色到人间,彩_初戴。正好春盘细生菜。一般日月,只有仙家偏耐。雪霜从点鬓,朱颜在。 

温诏鼎来,延英催对。凤阁鸾台看除拜。对衣裁稳,恰称_纹新带。个时方旋了、功名债。 

感皇恩

小阁倚秋空,下临江渚。漠漠孤云未成雨。数声新雁,回首杜陵何处。壮心空万里,人谁许。 

黄合紫枢,筑坛开府,莫怕功名欠人做。如今熟计,只有故乡归路。石帆山脚下,菱三亩。 

好事近(寄张真甫?十二之一)

_雁未成归,肠断宝筝零落。那更冻醪无力,似故人情薄。 

瘴云蛮雨暗孤城,身在楚山角。烦问剑南消息,怕还成疏索。 

好事近(十二之二)

风露九霄寒,侍宴玉华宫阙。亲向紫皇香案,见金芝千叶。 

碧壶仙露酝初成,香味两奇绝。醉后却骑丹凤,看蓬莱春色。 

好事近(次宇文卷臣韵?十二之三)

客路苦思归,愁似茧丝千绪。梦里镜湖烟雨,看山无重数。 

尊前消尽少年狂,慵著送春语。花落燕飞庭户,叹年光如许。 

好事近(十二之四)

岁晚喜东归,扫尽市朝陈迹。拣得乱山环处,钓一潭澄碧。 

卖鱼沽酒醉还醒,心事付横笛。家在万重云外,有沙鸥相识。 

好事近(十二之五)

华表又千年,谁记驾云孤鹤。回首旧曾游处,但山川城郭。 

纷纷车马满人间,尘土污芒_。且访葛仙丹井,看岩花开落。 

好事近(十二之六)

挥袖别人间,飞蹑峭崖苍壁。寻见古仙丹灶,有白云成积。 

心如潭水静无风,一坐数千息。夜半忽惊奇事,看鲸波暾日。 

好事近(十二之七)

湓口放船归,薄暮散花洲宿。两岸白苹红蓼,映一蓑新绿。 

有沽酒处便为家,菱芡四时足。明日又乘风去,任江南江北。 

好事近(登梅仙山绝顶望海?十二之八)

挥袖上西峰,孤绝去天无尺。拄杖下临鲸海,数烟帆历历。 

贪看云气舞青鸾,归路已将夕。多谢半山松吹,解殷勤留客。 

好事近(十二之九)

小倦带余酲,淡淡数棂斜日。驱退睡魔十万,有双龙苍璧。 

少年莫笑老人衰,风味似平昔。扶杖冻云深处,探溪梅消息。 

好事近(十二之十)

觅个有缘人,分付玉壶灵药。谁向市尘深处,识辽天孤鹤。 

月中吹笛下巴陵,条华赴前约。今古废兴何限,叹山川如昨。 

好事近(十二之十一)

平旦出秦关,雪色驾车双鹿。借问此行安往,赏清伊修竹。 

汉家宫殿劫灰中,春草几回绿。君看变迁如许,况纷纷荣辱。 

好事近(十二之十二)

秋晓上莲峰,高蹑倚天青壁。谁与放翁为伴,有天坛轻策。 

铿然忽变赤龙飞,雷雨四山黑。谈笑做成丰岁,笑禅龛榔栗。 

鹧鸪天(送叶梦锡?七之一)

家住东吴近帝乡。平生豪举少年场。十千沽酒青楼上,百万呼卢锦瑟傍。 

身易老,恨难忘。尊前赢得是凄凉。君归为报京华旧,一事无成两鬓霜。 

鹧鸪天(葭萌驿作?七之二)

看尽巴山看蜀山。子规江上过春残。惯眠古驿常安枕,熟听阳关不惨颜。 

慵服气,懒烧丹。不妨青鬓戏人间。秘传一字神仙诀,说与君知只是顽。 

鹧鸪天(七之三)

梳发金盘剩一窝。画眉鸾镜晕双蛾。人间何处无春到,只有伊家独占多。 

微步处,奈娇何。春衫初换麹尘罗。东邻斗草归来晚,忘却新传子夜歌。 

鹧鸪天(七之四)

家住苍烟落照间。丝毫尘事不相关。斟残玉瀣行穿竹,卷罢黄庭卧看山。 

贪啸傲,任衰残。不妨随处一开颜。元知造物心肠别,老却英雄似等闲。 

鹧鸪天(七之五)

插脚红尘已是颠。更求平地上青天。新来有个生涯别,买断烟波不用钱。 

沽酒市,采菱船。醉听风雨拥蓑眠。三山老子真堪笑,见事迟来四十年。 

鹧鸪天(七之六)

懒向青门学种瓜。只将渔钓送年华。双双新燕飞春岸,片片轻鸥落晚沙。 

歌缥渺,舻呕哑。酒如清露鲊如花。逢人问道归何处,笑指船儿此是家。 

鹧鸪天(薛公肃家席上作?七之七)

南浦舟中两玉人。谁知重见楚江滨。凭教后苑红牙版,引上西川绿锦茵。 

才浅笑,却轻颦。淡黄杨柳又催春。情知言语难传恨,不似琵琶道得真。 

蓦山溪(送伯礼)

元戎十乘,出次高唐馆。归去旧鹓行,更何人、齐飞霄汉。瞿唐水落,惟是泪波深,催叠鼓,起牙樯,难锁长江断。 

春深鳌禁,红日宫砖暖。何处望音尘,黯消魂、层城飞观。人情见惯,不敢恨相忘,梅驿外,蓼滩边,只待除书看。 

蓦山溪(游三荣龙洞)

穷山孤垒,腊尽春初破。寂寞掩空斋,好一个、无聊底我。啸台龙岫,随分有云山,临浅濑,荫长松,闲据胡床坐。 

三杯径醉,不觉纱巾堕。画角唤人归,落梅村、篮舆夜过。城门渐近,几点妓衣红,官驿外,酒垆前,也有闲灯火。 

木兰花(立春日作)

三年流落巴山道。破尽青衫尘满帽。身如西瀼渡头云,愁抵瞿唐关上草。 

春盘春酒年年好。试戴银_判醉倒。今朝一岁大家添,不是人间偏我老。 

朝中措(梅)

幽姿不入少年场。无语只凄凉。一个飘零身世,十分冷淡心肠。 

江头月底,新诗旧梦,孤恨清香。任是春风不管,也曾先识东皇。 

朝中措(代谭德称作)

怕歌愁舞懒逢迎。妆晚托春酲。总是向人深处,当时枉道无情。 

关心近日,啼红密诉,剪绿深盟。杏馆花阴恨浅,画堂银烛嫌明。 

朝中措

冬冬傩鼓饯流年。烛焰动金船。彩燕难雪前梦,酥花空点春妍。 

文园谢病,兰成久旅,回首凄然。明月梅山笛夜,和风禹庙莺天。 

临江仙(离果州作)

鸠雨催成新绿,燕泥收尽残红。春光还与美人同。论心空眷眷,分袂却匆匆。只道真情易写,那知怨句难工。水流云散各西东。半廊花院月,一帽柳桥风。 

蝶恋花(离小益作)

陌上箫声寒食近。雨过园林,花气浮芳润。千里斜阳钟欲暝。凭高望断南楼信。 

海角天涯行略尽。三十年间,无处无遗恨。天若有情终欲问。忍教霜点相思鬓。 

蝶恋花

桐叶晨飘蛩夜语。旅思秋光,黯黯长安路。忽记横戈盘马处。散关清渭应如故。 

江海轻舟今已具。一卷兵书,叹息无人付。早信此生终不遇。当年悔草长杨赋。 

蝶恋花

水漾萍根风卷絮。倩笑娇颦,忍记逢迎处。只有梦魂能再遇。堪嗟梦不由人做。 

梦若由人何处去。短帽轻衫,夜夜眉州路。不怕银缸深绣户。只愁风断青衣渡。 

钗头凤

红酥手。黄滕酒。满城春色宫墙柳。东风恶。欢情薄。一怀愁绪,几年离索。错错错。 

春如旧。人空瘦。泪痕红浥鲛绡透。桃花落。闲池阁。山盟虽在,锦书难托。莫莫莫。 

清商怨(葭萌驿作)

江头日暮痛饮。乍雪晴犹凛。山驿凄凉,灯昏人独寝。 

怨机新寄断锦。叹往事、不堪重省。梦破南楼,绿云堆一枕。 

水龙吟(荣南作)

樽前花底寻春处,堪叹心情全减。一身萍寄,酒徒云散,佳人天远。那更今年,瘴烟蛮雨,夜郎江畔。漫倚楼横笛,临窗看镜,时挥涕、惊流转。 

花落月明庭院。悄无言、魂消肠断。凭肩携手,当时曾效,画梁栖燕。见说新来,网萦尘暗,舞衫歌扇。料也羞憔悴,慵行芳径,怕啼莺见。 

秋波媚(七月十六日晚登高兴亭望长安南山)

秋到边城角声哀。烽火照高台。悲歌击筑,凭高酹酒,此兴悠哉。 

多情谁似南山月,特地暮云开。潮桥烟柳,曲江池馆,应待人来。 

秋波媚

曾散天花蕊珠宫。一念堕尘中。铅华洗尽,珠玑不御,道骨仙风。 

东游我醉骑鲸去,君驾素鸾从。垂虹看月,天台采药,更与谁同。 

采桑子

宝钗楼上妆梳晚,懒上秋千。闲拨沈烟。金缕衣宽睡髻偏。 

鳞鸿不寄辽东信,又是经年。弹泪花前。愁入春见十四弦。 

卜算子(咏梅)

驿外断桥边,寂寞开无主。已是黄昏独自愁,更著风和雨。 

无意苦争春,一任群芳妒。零落成泥碾作尘,只有香如故。 

沁园春(三荣横溪阁小宴)

粉破梅梢,绿动萱丛,春意已深。渐珠帘低卷,筇枝微步,冰开跃鲤,林暖鸣禽。荔子扶疏,竹枝哀怨,浊酒一尊和泪斟。凭栏久,叹山川冉冉,岁月骎骎。 

当时岂料如今。漫一事无成霜鬓侵。看故人强半,沙堤黄合,鱼悬带玉,貂映蝉金。许国虽坚,朝天无路,万里凄凉谁寄音。东风里,有灞桥烟柳,知我归心。 

沁园春

一别秦楼,转眼新春,又近放灯。忆盈盈倩笑,纤纤柔握,玉香花语,雪暖酥凝。念远愁肠,伤春病思,自怪平生殊未曾。君知否,渐香消蜀锦,泪渍吴绫。 

难求系日长绳。况倦客飘零少旧朋。但江郊雁起,渔村笛怨,寒_委烬,孤砚生冰。水绕出围,烟昏云惨,纵有高台常怯登。消魂处,是鱼笺不到,兰梦无凭。 

沁园春

孤鹤归飞,再过辽天,换尽旧人。念累累枯冢,茫茫梦境,王侯蝼蚁,毕竟成尘。载酒园林,寻花巷陌,当日何曾轻负春。流年改,叹园腰带剩,点鬓霜新。 

交亲。散落如云。又岂料如今余此身。幸眼明身健,茶甘饭软,非惟我老,更有人贫。躲尽危机,消残壮志,短艇湖中闲采莼。吾何恨,有渔翁共醉,溪友为邻。 

忆秦娥

玉花骢。晚街金辔声璁珑。声璁珑。闲_乌帽,又过城东。 

富春巷陌花重重。千金沽酒酬春风。酬春风。笙歌园里,锦绣丛中。 

汉宫春(张园赏海棠作,园故蜀燕王宫也)

浪迹人间。喜闻猿楚峡,学剑秦川。虚舟泛然不系,万里江天。朱颜绿鬓,作红尘、无事神仙。何妨在,莺花海里,行歌闲送流年。 

休笑放慵狂眼,看闲坊深院,多少婵娟。燕宫海棠夜宴,花覆金船。如椽画烛,酒阑时、百炬吹烟。凭寄语,京华旧侣,幅巾莫换貂蝉。 

汉宫春(初自南郑来成都作)

羽箭雕弓,忆呼鹰古垒,截虎平川。吹笳暮归,野帐雪压青_。淋漓醉墨,看龙蛇、飞落蛮笺。人误许,诗情将略,一时才气超然。何事又作南来,看重阳药市,元夕灯山。花时万人乐处,_帽垂鞭。闻歌感旧,尚时时、流涕尊前。君记取,封侯事在,功名不信由天。 

月上海棠(成都城南有蜀王旧苑,尤多梅,皆二百余年古木)

斜阳废苑朱门闭。吊兴亡、遣恨泪痕里。淡淡宫梅,也依然、点酥剪水。凝愁处,似忆宣华旧事。 

行人别有凄凉意。折幽香、谁与寄千里。伫立江皋,杳难逢、陇头归骑。音尘远,楚天危楼独倚。宣华,故蜀苑名。 

月上海棠

兰房绣户厌厌病。叹春酲、和闷甚时醒。燕子空归,几曾传、玉关边信。伤心处,独展团窠瑞锦。 

熏笼消歇沈烟冷。泪痕深、展转看花影。漫拥余香,怎禁他、峭寒孤枕。西窗晓,几声银瓶玉井。 

乌夜啼(八之一)

金鸭余香尚暖,绿窗斜日偏明。兰膏香染云鬟腻,钗坠滑无声。 

冷落秋千伴侣,阑珊打马心情。绣屏惊断潇湘梦,花外一声莺。 

乌夜啼(八之二)

檐角楠阴转日,楼前荔子吹花。鹧鸪声里霜天晚,叠鼓已催衙。 

乡梦时来枕上,京书不到天涯。邦人讼少文移省,闲院自煎茶。 

乌夜啼(八之三)

我校丹台玉字,君书蕊殿云篇。锦官城里重相遇,心事两依然。 

携酒何妨处处,寻梅共约年年。细思上界多官府,且作地行仙。 

乌夜啼(八之四)

世事从来惯见,吾生更欲何之。镜湖西畔秋千顷,鸥鹭共忘机。 

一枕苹风午醉,二升菰米晨炊。故人莫讶音书绝,钓侣是新知。 

乌夜啼(八之五)

素意幽栖物外,尘缘浪走天涯。归来犹幸身强健,随分作山家。 

已趁余寒泥酒,还乘小雨移花。柴门尽日无人到,一径傍溪斜。 

乌夜啼(八之六)

园馆青林翠樾,衣巾细葛轻纨。好风吹散霏微雨,沙路喜新干。 

小燕双飞水际,流莺百啭林端。投壶声断弹棋罢,闲展道书看。 

乌夜啼(八之七)

从宦元知漫浪,还家更觉清真。兰亭道上多修竹,随处岸纶巾。 

泉冽偏宜雪茗,粳香雅称丝莼。_然一饱西窗下,天地有闲人。 

乌夜啼(八之八)

纨扇婵娟素月,纱巾缥缈轻烟。高槐叶长阴初合,清润雨余天。 

弄笔斜行小草,钩帘浅醉闲眠。更无一点尘埃到,枕上听新蝉。 

真珠帘

山村水馆参差路。感_游、正似残春风絮。掠地穿帘,知是竟归何处。镜里新霜空自悯,问几时、鸾台鳌署。迟暮。谩凭高怀远,书空独语。 

自古。儒冠多误。悔当年、早不扁舟归去。醉下白苹洲,看夕阳鸥鹭。菰菜鲈鱼都弃了,只换得、青衫尘土。休顾。早收身江上,一蓑烟雨。 

好事近

混迹寄人间,夜夜画楼银烛。谁见五云丹灶,养黄芽初熟。 

春风归从紫皇游,东海宴旸谷。进罢碧桃花赋,赐玉尘千斛。 

柳梢青(故蜀燕王宫海棠之盛,为成都第一,今属张氏)

锦里繁华。环宫故邸,叠萼奇花。俊客妖姬,争飞金勒,齐驻香车。 

何须幕障帏遮。宝杯浸、红云瑞霞。银烛光中,清歌声里,休恨天涯。 

柳梢青(乙巳二月西兴赠别)

十载江湖,行歌沽酒,不到京华。底事翩然,长亭烟草,衰鬓风沙。 

凭高目断天涯。细雨外、楼台万家。只恐明朝,一时不见,人共梅花。 

夜游宫(记梦寄师伯浑)

雪晓清笳乱起。梦游处、不知何地。铁骑无声望似水。想关河,雁门西,青海际。 

睡觉寒灯里。漏声断、月斜窗纸。自许封侯在万里。有谁知,鬓虽残,心未死。 

夜游宫(宫词)

独夜寒侵翠被。奈幽梦、不成还起。欲写新愁泪溅纸。忆承恩,叹余生,今至此。 

蔌蔌灯花坠。问此际、报人何事。咫尺长门过万里。恨君心,似危栏,难久倚。 

安公子

风雨初经社。子规声里春光谢。最是无情,零落尽、蔷薇一架。况我今年,憔悴幽窗下。人尽怪、诗酒消声价。向药炉经卷,忘却莺窗柳榭。 

万事收心也。粉痕犹在香罗帕。恨月愁花,争信道、如今都罢。空忆前身,便面章台马。因自来、禁得心肠怕。纵遇歌逢酒,但说京都旧话。 

玉胡蝶(王忠州家席上作)

倦客平生行处,坠鞭京洛,解佩潇湘。此夕何年,来赋宋玉高唐。绣帘开、香尘乍起,莲步稳、银烛分行。暗端相。燕羞莺妒,蝶绕蜂忙。 

难忘。芳樽频劝,峭寒新退,玉漏犹长。几许幽情,只愁歌罢月侵廊。欲归时、司空笑问,微近处、丞相嗔狂。断人肠。假饶相送,上马何妨。 

木兰花慢(夜登青城山玉华楼)

阅邯郸梦境,叹绿鬓、早霜侵。奈华岳烧丹,青溪看鹤,尚负初心。年来向浊世里,悟真诠秘诀绝幽深。养就金芝九畹,种成琪树千林。 

星坛夜学步虚吟。露冷透瑶簪。对翠凤披云,青鸾逆月,宫阙萧森。琅函一封奏罢,自钧天帝所有知音。却过蓬壶啸傲,世间岁月骎骎。 

苏武慢(唐安西湖)

淡霭空_,轻阴清润,绮陌细初静。平桥系马,画阁移舟,湖水倒空如镜。掠岸飞花,傍檐新燕,都似学人无定。叹连成戎帐,经春边垒,暗凋颜鬓。 

空记忆、杜曲池台,新丰歌管,怎得故人音信。_怀易感,老伴无多,谈尘久闲犀柄。惟有_然,笔床茶灶,自适笋舆烟艇。待绿荷遮岸,红蕖浮水,更乘幽兴。 

齐天乐(左绵道中)

角残钟晚关山路,行人乍依孤店。塞月征尘,鞭丝帽影,常把流年虚占。藏鸦柳暗。叹轻负莺花,谩劳书剑。事往关情,悄然频动壮游念。 

孤怀谁与强遣。市垆沽酒,酒薄怎当愁酽。倚瑟妍词,调铅妙笔,那写柔情芳艳。征途自厌。况烟敛芜痕,雨稀萍点。最是眠时,枕寒门半掩。 

齐天乐(三荣人日游龙洞作)

客中随处闲消闷,来寻啸台龙岫。路敛春泥,山开翠雾,行乐年年依旧。天工妙手。放轻绿萱牙,淡黄杨柳。笑问东君,为人能染鬓丝否。 

西州催去近也,帽檐风软,且看市楼沽酒。宛转巴歌,凄凉塞管,携客何妨频奏。征尘暗袖。漫禁得梅花,伴人疏瘦。几日东归,画船平放溜。 

望梅

寿非金石。恨天教老向,水程山驿。似梦里、来到南柯,这些子光阴,更堪轻掷。戍火边尘,又过了、一年春色。叹名姬骏马,尽付杜陵,苑路豪客。 

长绳漫劳系日。看人间俯仰,俱是陈迹。纵自倚、英气凌云,奈回尽鹏程,铩残鸾翮。终日凭高,诮不见、江东消息。算沙边、也有断鸿,倩谁问得。 

洞庭春色

壮岁文章,暮年勋业,自昔误人。算英雄成败,轩裳得失,难如人意,空丧天真。请看邯郸当日梦,待炊罢黄粱徐欠伸。方知道,许多时富贵,何处关身。 

人间定无可意,怎换得、玉鲙丝莼。且钓竿渔艇,笔床茶灶,闲听荷雨,一洗衣尘。洛水秦关千古后,尚棘暗铜驼空怆神。何须更,慕封侯定远,图像麒麟。 

渔家傲(寄仲高)

东望山阴何处是。往来一万三千里。写得家书空满纸。流清泪。书回已是明年事。 

寄语红桥桥下水。扁舟何日寻兄弟。行遍天涯真老矣。愁无寐。鬓丝几缕茶烟里。 

绣停针

叹半纪,跨万里秦吴,顿觉衰谢。回首鹓行,英俊并游,咫尺玉堂金马。气凌嵩华。负壮略、纵横王霸。梦经洛浦梁园,觉来泪流如泻。 

山林定去也。却自恐说著,少年时话。静院焚香,闲倚素屏,今古总成虚假。趁时婚嫁。幸自有、湖边茅舍。燕归应笑,客中又还过社。 

桃源忆故人

然如世外。予留七十日,被命参成都戎幕而去。临行徙倚竟日作桃源忆故人一首 

斜阳寂历柴门闭。一点炊烟时起。鸡犬往来林外。俱有萧然意。 

衰翁老去疏荣利。绝爱山城无事。临去画楼频倚。何日重来此。 

桃源忆故人(应灵道中?五之二)

栏干几曲高斋路。正在重云深处。丹碧未干人去。高栋空留句。 

离离芳草长亭暮。无奈征车不住。惟有断鸿烟渚。知我频回顾。 

桃源忆故人(五之三)

一弹指顷浮生过。堕甑元知当破。去去醉吟高卧。独唱何须和。 

残年还我从来我。万里江湖烟舸。脱尽利名缰锁。世界元来大。 

桃源忆故人(五之四)

城南载酒行歌路。冶叶倡条无数。一朵鞓红凝露。最是关心处。 

莺声无赖催春去。那更兼旬风雨。试问岁华何许。芳草连天暮。 

桃源忆故人(题华山图?五之五)

中原当日三川震。关辅回头煨烬。泪尽两河征镇。日望中兴运。 

秋风霜满青青鬓。老却新丰英俊。云外华山千仞。依旧无人问。 

极相思

江头疏雨轻烟。寒食落花天。翻红坠素,残霞暗锦,一段凄然。 

惆怅东君堪恨处,也不念、冷落尊前。那堪更看,漫空相趁,柳絮榆钱。 

一丛花

尊前凝伫漫魂迷。犹恨负幽期。从来不惯伤春泪,为伊后、滴满罗衣。那堪更是,吹箫池馆,青子绿阴时。 

回廊帘影昼参差。偏共睡相宜。朝云梦断知何处,倩双燕、说与相思。从今判了,十分憔悴,图要个人知。 

一丛花

仙姝天上自无双。玉面翠蛾长。黄庭读罢心如水,闭朱户、愁近丝簧。窗明几净,闲临唐帖,深炷宝奁香。 

人间无药驻流光。风雨又催凉。相逢共话清都旧,叹尘劫、生死茫茫。何如伴我,绿蓑青箬,秋晚钓潇湘。 

隔浦莲近拍

飞花如趁燕子。直度帘栊里。帐掩香云暖,金笼鹦鹉惊起。凝恨慵梳洗。妆台畔,蘸粉纤纤指。宝钗坠。 

才醒又困,厌厌中酒滋味。墙头柳暗,过尽一年春事。罨画高楼怕独倚。千里。孤舟何处烟水。 

隔浦莲近拍

骑鲸云路倒景。醉面风吹醒。笑把浮丘袂,寥然非复尘境。震泽秋万顷。烟霏散,水面飞金镜。露华冷。 

湘妃睡起,鬟倾钗坠慵整。临江舞处,零乱塞鸿清影。河汉横斜夜漏永。人静。吹箫同过缑岭。 

昭君怨

昼永蝉声庭院。人倦懒摇团扇。小景写潇湘。自生凉。 

帘外蹴花双燕。帘下有人同见。宝篆拆官黄。炷熏香。 

双头莲(呈范至能待制)

华鬓星星,惊壮志成虚,此身如寄。萧条病骥。向暗里。消尽当年豪气。梦断故国山川,隔重重烟水。身万里。旧社凋零,青门俊游谁记。 

尽道锦里繁华,叹官闲昼永,柴荆添睡。清愁自醉。念此际。付与何人心事。纵有楚_吴樯,知何时东逝。空怅望,鲙美菰香,秋风又起。 

南歌子(送周机宜之益昌)

异县相逢晚,中年作别难。暮秋风雨客衣寒。又向朝天门外、话悲欢。 

瘦马行霜栈,轻舟下雪滩。乌奴山下一林丹。为说三年常寄、梦魂间。 

忆王孙

春风楼上柳腰肢。初试花前金缕衣。袅袅娉娉不自持。晚妆迟。画得蛾眉胜旧时。 

忆王孙

一春常是雨和风。风雨晴时春已空。谁惜泥沙万点红。恨难穷。恰似衰翁一世中。 

醉落魄

江湖醉客。投杯起舞遗乌帻。三更泠翠沾衣湿。袅袅菱歌,催落半川月。 

空花昨梦休寻觅。云台麟阁俱陈迹。元来只有闲难得。青史功名,天却无心惜。 

鹊桥仙

华灯纵博,雕鞍驰射,谁记当年豪举。酒徒一一取封侯,独去作、江边渔父。 

轻舟八尺,低篷三扇,占断苹洲烟雨。镜湖元自属闲人,又何必、君恩赐与。 

鹊桥仙

一竿风月,一蓑烟雨,家在钓台西住。卖鱼生怕近城门,况肯到、红尘深处。 

潮生理棹,潮平系缆,潮落浩歌归去。时人错把比严光,我自是、无名渔父。 

鹊桥仙(夜闻杜鹃)

茅檐人静,蓬窗灯暗,春晚连江风雨。林莺巢燕总无声,但月夜、常啼杜宇。 

催成清泪,惊残孤梦,又拣深枝飞去。故山犹自不堪听,况半世、飘然_旅。 

长相思(五之一)

云千重。水千重。身在千重云水中。月明收钓筒。 

头未童。耳未聋。得酒犹能双脸红。一尊谁与同。 

长相思(五之二)

桥如虹。水如空。一叶飘然烟雨中。天教称放翁。 

侧船篷。使江风。蟹舍参差渔市东。到时闻暮钟。 

长相思(五之三)

面苍然。鬓皤然。满腹诗书不直钱。官闲常昼眠。 

画凌烟。上甘泉。自古功名属少年。知心惟杜鹃。 

长相思(五之四)

暮山青。暮霞明。梦笔桥头艇子横。苹风吹酒醒。 

看潮生。看潮平。小住西陵莫较程。莼丝初可烹。 

长相思(五之五)

悟浮生。厌浮名。回视千钟一发轻。从今心太平。 

爱松声。爱泉声。写向孤桐谁解听。空江秋月明。 

菩萨蛮

江天淡碧云如扫。苹花零落莼丝老。细细晚波平。月从波面生。 

渔家真个好。悔不归来早。经岁洛阳城。鬓丝添几茎。 

菩萨蛮

小院蚕眠春欲老。新巢燕乳花如扫。幽梦锦城西。海棠如旧时。 

当年真草草。一棹还吴草。题罢惜春诗。镜中添鬓丝。 

诉衷情

当年万里觅封侯。匹马戍梁州。关河梦断何处,尘暗旧貂裘。 

胡未灭,鬓先秋。泪空流。此生谁料,心在天山,身老沧洲。 

诉衷情

青衫初入九重城。结友尽豪英。蜡封夜半传檄,驰骑谕幽并。 

时易失,志难成。鬓丝生。平章风月,弹压江山,别是功名。 

生查子

还山荷主恩,聊试扶犁手。新结小茅茨,恰占清江口。 

风尘不化衣,邻曲常持酒。那似宦游时,折尽长亭柳。 

生查子

梁空燕委巢,院静鸠催雨。香润上朝衣,客少闲谈尘。 

鬓边千缕丝,不是吴蚕吐。孤梦泛潇湘,月落闻柔舻。 

破阵子

仕至千钟良易,年过七十常稀。眼底荣华元是梦,身后声名不自知。营营端为谁。 

幸有旗亭沽酒,何妨茧纸题诗。幽谷云萝朝采药,静院轩窗夕对棋。不归真个痴。 

破阵子

看破空花尘世,放轻昨梦浮名。蜡屐登山真率饮,筇杖穿林自在行。身闲心太平。 

料峭余寒犹力,廉纤细雨初晴。苔纸闲题溪上句,菱唱遥闻烟外声。与君同醉醒。 

上西楼(一名相见欢)

江头绿暗红稀。燕交飞。忽到当年行处、恨依依。 

洒清泪。叹人事。与心违。满酌玉壶花露、送春归。 

点绛唇

采药归来,独寻茅店沽新酿。暮烟千嶂。处处闻渔唱。 

醉弄扁舟,不怕黏天浪。江湖上。遮回疏放。作个闲人样。 

谢池春

壮岁从戎,曾是气吞残虏。阵云高、狼烽夜举。朱颜青鬓,拥雕戈西戍。笑儒冠、自来多误。 

功名梦断,却泛扁舟吴楚。漫悲歌、伤怀吊古。烟波无际,望秦关何处。叹流年、又成虚度。 

谢池春

贺监湖边,初系放翁归棹。小园林、时时醉倒。春眠惊起,听啼莺催晓。叹功名、误人堪笑。 

朱桥翠径,不许京尘飞到。挂朝衣、东归欠早。连宵风雨,卷残红如扫。恨樽前、送春人老。 

谢池春

七十衰翁,不减少年豪气。似天山、凄凉病骥。铜驼荆棘,洒临风清泪。甚情怀、伴人儿戏。 

如今何幸,作个故溪归计。鹤飞来、晴岚暖翠。玉壶春酒,约群仙同醉。洞天寒、露桃开未。 

一落索

满路游丝飞絮。韶光将暮。此时谁与说新愁,有百啭、流莺语。 

俯仰人间今古。神仙何处。花前须判醉扶归,酒不到、刘伶墓。 

一落索

识破浮生虚妄。从人讥谤。此身恰似弄潮儿,曾过了、千重浪。 

且喜归来无恙。一壶春酿。雨蓑烟笠傍渔矶,应不是、封侯相。 

杏花天

老来驹隙骎骎度。算只合、狂歌醉舞。金杯到手君休诉。看著春光又暮。 

谁为倩、柳条系住。且莫遣、城笳催去。残红转眼无寻处。尽属蜂房燕户。 

太平时

竹里房栊一径深。静愔愔。乱红飞尽绿成阴。有鸣禽。 

临罢兰亭无一事,自修琴。铜炉袅袅海南沉。洗尘襟。 

恋绣衾

不惜貂裘换钓篷。嗟时人、谁识放翁。归棹借、樵风稳,数声闻、林外暮钟。 

幽栖莫笑蜗庐小,有云山、烟水万重。半世向、丹青看,喜如今、身在画中。 

恋绣衾

无方能驻脸上红。笑浮生、扰扰梦中。平地是、冲霄路,又何劳、千日用功。 

飘然再过莲峰下,乱云深、吹下暮钟。访旧隐、依然在,但鹤巢、时有堕松。 

风入松

十年裘马锦江滨。酒隐红尘。万金选胜莺花海,倚疏狂、驱使青春。吹笛鱼龙尽出,题诗风月俱新。 

自怜华发满纱巾。犹是官身。凤楼常记当年语,问浮名、何似身亲。欲寄吴笺说与,这回真个闲人。 

真珠帘

灯前月下嬉游处。向笙歌、锦绣丛中相遇。彼此知名,才见便论心素。浅黛娇蝉风调别,最动人、时时偷顾。归去。想闲窗深院,调弦促柱。 

乐府初翻新谱。漫裁红点翠,闲题金缕。燕子入帘时,又一番春暮。侧帽燕脂坡下过,料也记、前年崔护。休诉。待从今须与,好花为主。 

风流子(一名内家娇)

佳人多命薄,初心慕、德耀嫁梁鸿。记绿窗睡起,静吟闲咏,句翻离合,格变玲珑。更乘兴,素纨留戏墨,纤玉抚孤桐。蟾滴夜寒,水浮微冻,凤笺春丽,花砑轻红。 

人生谁能料,堪悲处、身落柳陌花丛。空羡画堂鹦鹉,深闭金笼。向宝镜鸾钗,临妆常晚,绣茵牙版,催舞还慵。肠断市桥月笛,灯院霜钟。 

双头莲

风卷征尘,堪叹处、青骢正摇金辔。客襟贮泪。漫万点如血,凭谁持寄。伫想艳态幽情,压江南佳丽。春正媚。怎忍长亭,匆匆顿分连理。 

目断淡日平芜,望烟浓树远,微茫如荠。悲欢梦里。奈倦客、又是关河千里。最苦唱彻骊歌,重迟留无计。何限事。待与丁宁,行时已醉。 

鹧鸪天

杖屦寻春苦未迟。洛城樱笋正当时。三千界外归初到,五百年前事总知。 

吹玉笛,渡清伊。相逢休问姓名谁。小车处士深衣叟,曾是天津共赋诗。 

蝶恋花

禹庙兰亭今古路。一夜清霜,染尽湖边树。鹦鹉杯深君莫诉。他时相遇知何处。 

冉冉年华留不住。镜里朱颜,毕竟消磨去。一句丁宁君记取。神仙须是闲人做。 

水龙吟(春日游摩诃池)

摩诃池上追游路,红绿参差春晚。韶光妍媚,海棠如醉,桃花欲暖。挑菜初闲,禁烟将近,一城丝管。看金鞍争道,香车飞盖,争先占、新亭馆。 

惆怅年华暗换。点销魂、雨收云散。镜奁掩月,钗梁拆凤,秦筝斜雁。身在天涯,乱山孤垒,危楼飞观。叹春来只有,杨花和恨,向东风满。 

朝中措

晴山滴翠水挼蓝。聚散渔舟两复三。横埭北,断桥南。侧起船篷便作帆。 

朝中措

镜湖俯仰两青天。万顷玻璃一叶船。拈棹舞,拥蓑眠。不作天仙作水仙。 

朝中措

湘湖烟雨长莼丝。菰米新炊滑上匙。云散后,月斜时。潮落舟横醉不知。 

朝中措

长安拜免几公卿。渔父横眠醉未醒。烟艇小,钓车腥。遥指梅山一点青。 

恋绣衾

雨断西山晚照明。悄无人、幽梦自惊。说道去、多时也,到如今、真个是行。远山已是无心画,小楼空、斜掩绣屏。你嚎早、收心呵,趁刘郎、双鬓未星。 

采桑子

三山山下闲居士,巾履萧然。小醉闲眠。风引飞花落钓船。 

水龙吟(春日游摩诃池)

摩诃池上追游路,红绿参差春晚。韶光妍媚,海棠如醉,桃花欲暖。挑菜初闲,禁烟将近,一城丝管。看金鞍争道,香车飞盖,争先占、新亭馆。惆怅年华暗换。黯销魂、雨收云散。镜奁掩月,钗梁拆凤,秦筝斜雁。身在天涯,乱山孤垒,危楼飞观。叹春来只有,杨花和恨,向东风满。 

月照梨花(闺思)

霁景风软,烟江春涨。小阖无人,绣帘半上。花外姊妹相呼。约樗蒲。修蛾忘了章台样。细思一饷。感事添惆怅。胸酥臂玉消减,拟觅双鱼。倩传书。 

月照梨花(闺思)

闷已萦损。那堪多病。几曲屏山,伴人昼静。梁燕催起犹慵。换熏笼。新愁旧恨何时尽。渐凋绿鬓。小雨知花信。芳笺寄与何处,绣阁珠栊。柳阴中。 

夜游宫(宴席)

宴罢珠帘半卷。画檐外、蜡香人散。翠雾霏霏漏声断。倚香肩,看中庭,花影乱。宛是高唐馆。宝奁炷、麝烟初暖。璧月何妨夜夜满。拥芳柔,恨今年,寒尚浅。 

如梦今(闺思)

独倚博山峰小。翠雾满身飞绕。只恐学行云,去作阳台春晓。春晓。春晓。满院绿杨芳草。 

解连环

泪淹妆薄。背东风伫立,柳绵池阁。漫细字、书满芳笺,恨钗燕筝鸿,总难凭托。风雨无情,又颠倒、绿苔红萼。仗香醪破闷,怎禁夜阑,酒酲萧索。刘郎已忘故约。奈重门静院,光景如昨。尽做它、别有留心,便不念当时,雨意初着。京兆眉残,怎认为、新人梳掠。尽今生、拚了为伊,任人道错。 

大圣乐

电转雷惊,自叹浮生,四十二年。试思量往事,虚无似梦,悲欢万状,合散如烟。苦海无边,爱河无底,流浪看成百漏船。何人解,问无常火里,铁打身坚。须臾便是华颠。好收拾形体归自然。又何须着意,求田问舍,生须宦达,死要名传。寿夭穷通,是非荣辱,此事由来都在天。从今去,任东西南北,作个飞仙。
古诗源  (清)沈德潜 选编

●目录

  序

  例言

  卷一 古逸  

  击壤歌

  康衢谣

  伊耆氏蜡辞

  尧戒

  卿云歌

  八伯歌

  帝载歌

  南风歌

  禹玉牒辞

  夏后铸鼎繇

  商铭

  麦秀歌

  采薇歌

  盥盘铭

  带铭

  杖铭

  衣铭

  笔铭

  矛铭

  书车

  书户

  书履

  书砚

  书锋

  书杖

  书井

  白云谣

  祈招

  懿氏繇

  鼎铭

  虞箴

  饭牛歌

  琴歌

  暇豫歌

  宋城者讴

  骖乘答歌

  役人又歌

  鸜鹆歌

  泽门之皙讴

  忼慷歌

  子产诵二章

  孔子诵二章

  去鲁歌

  蟪蛄歌

  临河歌

  楚聘歌

  获麟歌

  龟山操

  盘操

  水仙操

  接舆歌

  成人歌

  渔父歌

  偕隐歌

  徐人歌

  越人歌

  越谣歌

  琴歌

  灵宝谣

  吴夫差时童谣

  乌鹊歌

  答夫歌

  越群臣祝

  祝越王辞

  弹歌

  禳田者祝

  巴谣歌

  渡易水歌

  三秦记民谣

  楚人谣

  河图引蜀谣

  湘中渔歌

  太公兵法引黄帝语

  六韬

  管子

  左传引逸诗

  左传

  国语

  孔子家语

  列子

  韩非子

  慎子

  鲁连子

  战国策

  史记

  汉书

  列女传引古语

  说苑

  刘向别录引古语

  新序

  风俗通

  桓子新论引谚

  牟子引古谚

  易纬引古诗

  四民月令引农语

  月令注引里语

  水经注引谚

  山经引相冢书

  文选注引古谚

  魏志王昶引谚

  梁史

  史照通鉴疏引谚

  古谚古语

  卷二 汉诗

  高帝

   大风歌

   鸿鹄歌

  项羽

   垓下歌

  唐山夫人

   安世房中歌

  朱虚侯章

   耕田歌

   紫芝歌

  武帝

   瓠子歌二首

   秋风辞

   李夫人歌

   柏梁诗

   落叶哀蝉曲

   蒲梢天马歌

  韦孟

   讽谏诗

  东方朔

   诫子诗

  乌孙公主

   悲愁歌

  司马相如

   封禅颂

  卓文君

   白头吟

  苏武

   诗四首

  李陵

   与苏武诗三首

   别歌

  李延年

   歌一首

  燕刺王旦

   歌

  华容夫人

   歌

  昭帝

   淋池歌

  杨恽

   拊缶歌

  王昭君

   怨诗

  班婕妤

   怨歌行

  赵飞燕

   归风送远操

  梁鸿

   五噫歌

  马援

   武溪深行

  班固

   宝鼎诗

  张衡

   四愁诗

  李尤

   九曲歌

  卷三 汉诗

  蔡邕

   樊惠渠歌

   饮马长城窟行

   翠鸟

   琴歌

  秦嘉

   留郡赠妇诗

  孔融

   杂诗

  辛延年

   羽林郎

  宋子侯

   董娇娆

  苏伯玉妻

   盘中诗

  窦玄妻

   古怨歌

  蔡琰

   悲愤诗

  诸葛亮

   梁甫吟

  乐府歌辞

   练时日

   青阳

   朱明

   西颢

   玄冥

   惟泰元

   天马

   战城南

   临高台

   有所思

   上邪

   箜篌引

   江南

   薤露歌

   蒿里曲

   鸡鸣

   陌上桑

   长歌行

   君子行

   相逢行

   善哉行

   西门行

   东门行

   孤儿行

   艳歌行

   陇西行

   淮南王篇

   伤歌行

   悲歌

   枯鱼过河泣

   古歌

   古八变歌

   猛虎行

   乐府

  卷四 汉诗

  古诗为焦仲卿妻作

  古诗十九首

  拟苏李诗

  古诗

  古诗三首

  古诗一首

  古诗二首

  古绝句

  杂歌谣辞

   古歌

   淮南民歌

   颍川歌

   郑白渠歌

   鲍司隶歌

   陇头歌二首

   牢石歌

   五鹿歌

   匈奴歌

   成帝时燕燕童谣

   逐弹丸

   成帝时歌谣

   投阁

   灶下养

   城中谣

   蜀中童谣

   顺帝时京都童谣

   考城谚

   桓帝初小麦童谣

   桓灵时童谣

   城上乌童谣

   灵帝末京都童谣

   丁令威歌

   苏耽歌

  卷五 魏诗

  武帝

   短歌行

   观沧海

   土不同

   龟虽寿

   薤露

   蒿里行

   苦寒行

   却东西门行

  文帝

   短歌行

   善哉行

   杂诗

   至广陵于马上作

   寡妇

   燕歌行

   甄后

   塘上行

  明帝

   种瓜篇

  曹植

   朔风诗

   鰕■〈魚旦〉篇

   泰山梁甫行

   箜篌引

   怨歌行

   名都篇

   美女篇

   白马篇

   圣皇篇

   吁嗟篇

   弃妇篇

   当来日大难

   野田黄雀行

   当墙欲高行

   赠徐幹

   赠丁仪

   又赠丁仪王粲一首

   赠白马王彪

   赠王粲

   送应氏诗二首

   杂诗

   七哀诗

   情诗

   七步诗

  卷六 魏诗

  王粲

   赠蔡子笃诗

   七哀诗

  陈琳

   饮马长城窟行

  刘桢

   赠从弟三首

  徐幹

   室思

   杂诗

  应瑒 

   侍五官中郎将建章台集诗一首

   别诗

  应璩

   百一诗

   杂诗

  缪袭

   克官渡

   定武功

   屠柳城

   战荥阳

   挽歌

  左延年

   从军行

  阮籍

   咏怀

   大人先生歌

  嵇康

   杂诗

   赠秀才入军

   幽愤诗

  杂歌谣辞

   吴谣

   孙皓天纪中童谣

  卷七 晋诗

  司马懿

   宴饮诗

  张华

   励志诗

   答何劭

   情诗

   杂诗

  傅玄

   短歌行

   明月篇

   杂诗

   杂言

   吴楚歌

   车遥遥篇

  束皙

   补亡诗六章

  司马彪

   杂诗

  陆机

   短歌行

   陇西行

   猛虎行

   塘上行

   拟明月何皎皎

   拟明月皎夜光

   招隐诗

   赠冯文罴

   为顾彦先赠妇

   赴洛道中作

  陆云

   谷风

   为顾彦先赠妇

  潘岳

   悼亡诗

  张翰

   杂诗

   左思

   杂诗

   咏史八首

   招隐二首

  左贵嫔

   啄木诗

  张载

   七哀诗

  张协

   杂诗

  孙楚

   征西官属送于陟阳候作诗

  曹摅

   感旧诗

  王赞

   杂诗

  郭泰机

   答傅咸

  卷八 晋诗

  刘琨

   答卢谌

   重赠卢谌

   扶风歌

  卢谌

   答魏子悌

   时兴

  谢尚

   大道曲

  郭璞

   赠温峤

   游仙诗

  曹毗

   夜听捣衣

  王羲之

   兰亭集诗

  陶潜

   停云

   时运

   劝农

   命子

   酬丁柴桑二章

   归鸟四章

   游斜川

   答庞参军

   五月旦作和戴主簿

   九日闲居

   和刘柴桑

   酬刘柴桑

   和郭主簿二首

   赠羊长史

   癸卯岁十二月中作与从弟敬远

   始作镇军参军经曲阿作

   辛丑岁七月赴假还江陵夜行途中作

   桃花源诗【并记】

   归田园居五首

   与殷晋安别

  卷九 晋诗

  陶潜

   乞食

   诸人共游周家墓柏下

   移居二首

   癸卯岁始春怀古田舍二首

   庚戌岁九月中于西田获早稻

   丙辰岁八月中于下潠田舍获

   饮酒

   有会而作

   拟古

   杂诗

   咏贫士

   咏荆轲

   读山海经

   拟挽歌词

  谢混

   游西池

  吴隐之

   酌贪泉诗

  庐山诸道人

   游石门诗

  惠远

   庐山东林杂诗

  帛道猷

   陵峰采药触兴为诗

  谢道韫

   登山

  赵整

   谏歌

  无名氏

   短兵篇

   独漉篇

   晋白纻舞歌诗

   淫豫

   女儿子

   三峡谣

   陇上歌

   来罗

   作蚕丝

   休洗红二章

   安东平

   惠帝元康中京洛童谣

   惠帝时洛阳童谣

   惠帝大安中童谣

   绵州巴歌

  卷十 宋诗

  孝武帝

   自君之出矣

  南平王铄

   白纻曲

   拟行行重行行

  何承天

   雉子游原泽篇

  颜延之

   应诏宴曲水作诗八章

   郊祀歌

   赠王太常

   夏夜呈从兄散骑车长沙

   北使洛

   五君咏五首

   秋胡诗九首

  谢灵运

   从游京口北固应诏

   述祖德诗二首

   九日从宋公戏马台集送孔令

   邻里相送至方山

   过始宁墅

   七里濑

   登池上楼

   游南亭

   游赤石进泛海

   登江中孤屿

   登永嘉绿嶂山诗

   斋中读书

   田南树园激流植援

   石壁精舍还湖中作

   登石门最高顶

   石门新营所住四面高山回溪石濑茂林修竹

   于南山往北山经湖中瞻眺

   从斤竹涧越岭溪行

   过白岸亭诗

   初去郡

   夜宿石门诗

   入彭蠡湖口

   入华子冈是麻源第三谷

   岁暮

  卷十一 宋诗

  谢瞻

   答灵运

   九日从宋公戏马台集送孔令诗

  谢惠连

   捣衣

   西陵遇风献康乐

   秋怀

   泛湖归出楼中望月

  谢庄

   北宅秘园

  鲍照

   代东门行

   代放歌行

   代白头吟

   代东武吟

   代出自蓟北门行

   代鸣雁行

   代淮南王

   代春日行

   代白纻舞歌辞四首

   拟行路难

   梅花落

   登黄鹤矶

   日落望江赠荀丞

   吴兴黄浦亭庾中郎别

   赠傅都曹别

   行京口至竹里

   上浔阳还都道中作

   发后渚

   咏史

   拟古

   绍古辞

   学刘公干体

   遇铜山掘黄精

   秋夜

   玩月城西门廨中

  鲍令晖

   代葛沙门妻郭小玉作

   题书后寄行人

  吴迈远

   胡笳曲

   古意赠今人

   长相思

  王徽

   杂诗

  王僧达

   答颜延年

   和琅琊王依古

  沈庆之

   侍宴诗

  陆凯

   赠范晔诗

  汤惠休

   怨诗行

  刘俣

   诗一首

  渔父

   答孙缅歌

   宋人歌

   石城谣

   青溪小姑歌

  卷十二 齐诗

  谢朓

   江上曲

   同谢谘议咏铜雀台

   玉阶怨

   金谷聚

   入朝曲

   同王主簿有所思

   京路夜发

   和徐都曹出新亭渚

   游敬亭山

   游东田

   暂使下都夜发新林至京邑赠西府同僚

   酬王晋安

   郡内高斋闲望答吕法曹

   新亭渚别范零陵云

   之宣城郡出新林浦向板桥

   在郡卧病呈沈尚书

   晚登三山还望京邑

   直中书省

   宣城郡内登望

   高斋视事

   落日怅望

   移病还园示亲属

   送江兵曹檀主簿朱孝廉还上国

   秋夜

   和何议曹郊游

   和王著作融八公山

   和伏武昌登孙权故城

   新治北窗和何从事

   和江丞北戍琅琊城

   和王中丞闻琴

   离夜

   王孙游

   临溪送别

  王融

   渌水曲

   巫山高

   萧谘议西上夜集

   和王友德元古意二首

  张融

   别诗

  刘绘

   有所思

  孔稚圭

   游太平山

  陆厥

   临江王节士歌

  江孝嗣

   北戍琅琊城诗

   东昏时百姓歌

  梁诗

  武帝

   逸民

   西洲曲

   拟青青河畔草

   河中之水歌

   东飞伯劳歌

   天安寺疏圃堂

   藉田

  简文帝

   折杨柳

   临高台

   纳凉

  元帝

   咏阳台楼檐柳

   折杨柳

  沈约

   临高台

   夜夜曲

   新安江至清浅深见底贻京邑游好

   直学省愁卧

   宿东园

   别范安成

   伤谢朓

   石塘濑听猿

   游沈道士馆

   早发定山

   冬节后至丞相第诣世子车中作

   奉和竟陵王经刘瓛墓

  卷十三 梁诗

  江淹

   从冠军建平王登庐山香炉峰

   望荆山

   古离别

   班婕妤咏扇

   刘太尉琨伤乱

   陶征君潜田居

   休上人怨别

   效阮公诗

  范云

   有所思

   赠张徐州谡

   送沈记室夜别

   之零陵郡次新亭

   别诗

  任昉

   赠郭桐庐出溪口见候余既未至郭仍进村维舟久之郭生乃至

   赠徐征君

   别萧谘议【衍】

   出郡传舍哭范仆射【三首之一】

  邱迟

   侍宴乐游苑送张徐州应诏

   旦发渔浦潭

  柳恽

   江南曲

   赠吴均

   捣衣诗

  庾肩吾

   奉和春夜应令

   乱后行经吴御亭

   咏长信宫中草

   经陈思王墓

  吴均

   答柳恽

   酬别江主簿屯骑

   主人池前鹤

   酬周参军

   春咏

   山中杂诗

  何逊

   日夕望江山赠鱼司马

   道中赠桓司马季

   入西塞示南府同僚

   赠诸游旧

   送韦司马别

   别沈助教

   与苏九德别

   宿南州浦

   和萧谘议岑离闺怨

   临行与故游夜别

   与胡兴安夜别

   慈姥矶

   相送

  王籍

   入若耶溪

  刘峻

   自江州还入石头诗

  刘孝绰

   古意

  陶弘景

   诏问山中何所有赋诗以答

   寒夜怨

  曹景宗

   光华殿侍宴赋竞病韵

  徐悱

   古意酬到长史溉登琅琊城

  虞羲

   咏霍将军北伐

  卫敬瑜妻王氏

   孤燕诗

  乐府歌辞

   企喻歌

   幽州马客吟歌辞

   琅琊王歌辞

   钜鹿公主歌辞

   陇头歌辞

   折杨柳歌辞

   木兰诗

   捉搦歌

  卷十四 陈诗

  阴铿

   渡青草湖

   广陵岸送北使

   江津送刘光禄不及

   和傅郎岁暮还湘州

   开善寺

  徐陵

   出自蓟北门行

   别毛永嘉

   关山月

  周弘让

   留赠山中隐士

  周弘正

   还草堂寻处士弟

  江总

   遇长安使寄裴尚书

   入摄山栖霞寺

   南还寻草市宅

   并州羊肠坂

   于长安归还扬州九月九日行薇山亭赋韵

   哭鲁广达

   闺怨篇

  张正见

   秋日别庾正员

   关山月

  何胥

   被使出关

  韦鼎

   长安听百舌

  陈昭

   昭君词

  北魏诗【附】

  刘昶

   断句

  常景

   司马相如

   王褒

   严君平

   扬雄

  温子升

   从驾幸金墉城

   捣衣

  胡叟

   示陈伯达

  胡太后

   杨白花

  杂歌谣辞

   咸阳王歌

   李波小妹歌

  北齐诗【附】

  邢邵

   思公子

  祖珽

   挽歌

  郑公超

   送庾羽骑抱

  萧悫

   上之回

   和崔侍中从驾经山寺

   秋思

  颜之推

   古意

   从周入齐夜度砥柱

  冯淑妃

   感琵琶弦

  斛律金

   敕勒歌

  杂歌谣辞

   童谣

  北周诗【附】

  庾信

   商调曲

   乌夜啼

   对酒歌

   奉和泛江

   同卢记室从军

   至老子庙应诏

   拟咏怀

   喜晴应诏敕自疏韵

   和王少保遥伤周处士

   奉和永丰殿下言志

   咏画屏风诗

   梅花

   寄徐陵

   和侃法师

   重别周尚书

  王褒

   关山篇

   渡河北

  隋诗

  炀帝

   饮马长城窟行示从征群臣

   白马篇

  杨素

   山斋独坐赠薛内史二首

   赠薛播州

  卢思道

   游梁城

  薛道衡

   昔昔盐

   敬酬杨仆射山斋独坐

   人日思归

  虞世基

   出塞

   入关

  孙万寿

   和周记室游旧京

   早发扬州还望乡邑

   东归在路率尔成咏

  王胄

   别周记室

  尹式

   别宋常侍

  孔德绍

   送蔡君知入蜀

   夜宿荒村

  孔绍安

   落叶

   别徐永元秀才

  陈子良

   送别

   七夕看新妇隔巷停车

  王申礼

   赋得岩穴无结构

  吕让

   和入京

  明余庆

   从军行

  大义公主

   书屏风诗

  无名氏

   送别诗

   鸡鸣歌

●序

  诗至有唐为极盛,然诗之盛,非诗之源也。今夫观水者,至观海止矣,然由海而溯之,近于海为九河,其上为洚水,为孟津,又其上由积石以至昆仑之源。《记》曰:“祭川者先河后海”,重其源也。唐以前之诗,昆仑以降之水也。汉京魏氏,去风雅未远,无异辞矣。即齐梁之绮缛,陈隋之轻艳,风标品格,未必不逊于唐。然缘此遂谓非唐诗所由出,将四海之水非孟津以下所由注,有是理哉?

  有明之初,承宋元遗习,自李献吉以唐诗振,天下靡然从风。前后七子,互相羽翼,彬彬称盛。然其敝也,株守太过,冠裳土偶,学者咎之。由守乎唐而不能上穷其源,故分门立户者,得从而为之辞,则唐诗者,宋元之上流,而古诗又唐人之发源也。予前与树滋陈子辑唐诗成帙,窥其盛矣。兹复溯隋陈而上,极乎黄轩,凡三百篇、楚骚而外,自郊庙乐章,讫童谣里谚,无不备采,书成,得一十四卷。不敢谓已尽古诗,而古诗之雅者,略尽于此,凡为学诗者导之源也。

  昔河汾王氏,删汉魏以下诗,继孔子三百篇后,谓之续经,天下后世群起攻之曰僭。夫王氏之僭,以其拟圣人之经,非谓其录删后诗也。使误用其说,谓汉魏以下学者不当搜辑,是惩热羹而吹齑,见人噎而废食,其亦翦翦拘拘之见尔矣。予之成是编也,于古逸存其概,于汉京得其详,于魏晋猎其华,而亦不废夫宋齐后之作者。既以编诗,亦以论世,使览者穷本知变,以渐窥风雅之遗意,犹观海者由逆河上之以溯昆仑之源,于诗教未必无少助也夫!

  康熙己亥夏五,长洲沈德潜书于南徐之见山楼。

●例言

  康衢击壤,肇开声诗。上自陶唐,下暨秦代,韵语可采者,或取正史,或裁诸子,杂录古逸,冠于汉京,穷诗之源也。诗纪备详,兹择其尤雅者。

  风骚即息,汉人代兴,五言为标准矣。就五言中,较然两体。苏李赠答、无名氏十九首,古诗体也。庐江小吏妻、羽林郎、陌上桑之类,乐府体也。昭明独尚雅音,略于乐府,然措词叙事,乐府为长,兹特补昭明选未及。后之作者,知所区别焉。

  安世房中歌,歌中之雅也。汉武郊祀等歌,诗中之颂也。庐江小吏妻、羽林郎、陌上桑等篇,诗中之国风也。乐府中亦具三体,当分别观之。

  曹子建云,汉曲讹不可辨。魏人且然,况今日耶。凡不能句读及无韵不成诵者均不录。

  苏李以后,陈思继起,父兄多才,渠尤独步,故应为一大宗。邺下诸子,各自成家,未能方埒也。嗣宗触绪兴怀,无端哀乐,当涂之世,又成别调矣。

  壮武之世,茂先休奕,莫能轩轾。二陆潘张,亦称鲁卫。太冲拔出于众流之中,丰骨峻上,尽掩诸家。钟记室季孟于潘陆之间,非笃论也。后此越石景纯,联镳接轸。过江末季,挺生陶公,无意为诗,斯臻至诣,不第于典午中屈一指云。

  诗至于宋,体制渐变,声色大开。康乐神工默运,明远廉儁无前,允称二妙。延年声价虽高,雕镂太甚,未宜鼎足矣。齐人寥寥,玄晖独有一代,元长以下,无能为役。

  萧梁之代,风格日卑。隐侯短章,犹存古体。文通仲言,辞藻斐然。虽非出群之雄,亦称一时作者。陈之视梁,抑又降焉。子坚孝穆,并以总持。略其体裁,专求名句,所云差强人意者耶。

  梁时横吹曲,武人之词居多。北音铿锵,钲铙兢奏。企喻歌、折杨柳歌词、木兰诗等篇,犹汉魏人遗响也。北齐敕勒歌,亦复相似。

  北朝词人,时流清响。庾子山才华富有,悲感之篇,常见风骨,所长不专在造句也。徐庾并名,恐孝穆华词,瞠乎其后。

  隋炀帝艳情篇什,同符后主,而边塞诸作,矫然独异,风气将转之候也。杨处道清思健笔,词气苍然。后此射洪曲江,起衰中立,此为之胜广矣。

  汉武立乐府采歌谣,郭茂倩编乐府诗集,杂谣歌词,亦具收录,谓观此可以知治忽验盛衰也。愚于各代诗人后嗣以歌谣,犹前人志云。

  汉以前歌词,后人拟作甚夥,如夏禹玉牒词,汉武帝落叶哀蝉曲类是也。词旨可取,不妨并登,真伪自可存而不论。然如皇娥、白帝歌,事近于诬;虞姬答歌、苏武妻答诗,词近于时,类此者不敢从俗采入。

  诗非谈理,亦乌可悖理也。仲长统述志云:畔散五经,减灭风雅,放恣不可问矣。类此者概所屏却。

  晋人子夜歌,齐梁人读曲等歌,俚语俱趣,拙语俱巧,自是诗中别调。然雅音既远,郑卫杂兴,君子弗尚也。愚于唐诗选本中,不收西昆香奁诸体,亦是此意。

  新城王尚书向有古诗选本,抒文载实,极工裁择。因五言七言分立界限,故三四言及长短杂句均在屏却。兹特采录各体,补所未备。又王选五言兼取唐人,七言下及元代。兹从陶唐氏起,南北朝止,探其源不暇沿其流也。

  诗之为用甚广。范宣讨贰,爰赋《摽梅》;宗国无鸠,乃歌《圻父》。断章取义,原无达诂也。笺释评点,俱可无庸。为学人启途径,未能免俗耳。

  书中徵引,宜录全文。录疏通大义,匪同笺注。凡经史子集,时从删节,近于因陋就简,识者谅诸。

  德潜学识浅尠,于剬诗辑颂,略无所得。此书援据典实,通达奥义,得三益之功居多,参订姓氏,详列于简。

  归愚沈德潜识

●古诗源卷一

○古逸

  击壤歌

  《帝王世纪》:“帝尧之世,天下太和,百姓无事,有老人击壤而歌。”

  日出而作,日入而息。凿井而饮,耕田而食。帝力于我何有哉。【帝尧以前,近于荒渺。虽有皇娥、白帝二歌,系王嘉伪撰,其事近诬。故以击壤歌为始。】

  康衢谣

  《列子》:帝治天下五十年,不知天下治与不治与,亿兆愿戴己与,乃微服游于康衢,闻儿童谣云:

  立我蒸民,莫匪尔极。不识不知,顺帝之则。

  伊耆氏蜡辞

  《礼记·郊特牲》云:“伊耆氏始为蜡。蜡者,索也。岁十二月,合聚万物而索飨之也。”祝辞曰:

  土反其宅,水归其壑。昆虫毋作,草木归其泽。【末句言草木归根于薮泽,不生于耕稼之土也。】

  尧戒

  《淮南子·人间训》。

  战战慄慄,日谨一日。人莫踬于山,而踬于垤。【大圣人忧勤惕厉语。】

  卿云歌

  《尚书·大传》:“舜将禅禹,于是俊乂百工,相和而歌卿云,帝倡之,八伯咸稽首而和,帝乃载歌。”

  卿云烂兮,糺【同纠。】缦缦兮。日月光华,旦复旦兮。【旦复旦隐寓禅代之旨。】

  八伯歌

  明明上天,烂然星陈,日月光华。弘于一人。

  帝载歌

  日月有常,星辰有行。四时从经,万姓允诚。于予论乐,配天之灵。迁于贤善,莫不咸听。鼚乎鼓之,轩乎舞之。菁华已竭,褰裳去之。

  南风歌

  《家语》:“舜弹五弦之琴,歌南风之诗。”其诗曰:

  南风之薰兮,可以解吾民之愠【叶平。】兮。南风之时兮,可以阜吾民之财兮。

  禹玉牒辞

  祝融司方发其英,沐日浴月百宝生。【竟似歌行中名语,开后人奇警一派。】

  夏后铸鼎繇

  《困学记闻》云:“太卜三兆,其颂皆千有二百,夏后铸鼎繇云云。”

  逢逢白云,一南一北,一西一东,九鼎既成,迁于三国。【北与国为韵,而以一西一东句间之,章法甚奇。】

  商铭

  见《国语》

  嗛嗛之德,不足就也。不可以矜,而祗取忧也。嗛嗛之食,不足狃也。不能为膏,而祗离咎也。【嗛嗛,小貌。转以德居食先,此古人章法。】

  麦秀歌

  《史记》:“箕子朝周,过故殷墟,感宫室毁壤生禾黍,箕子伤之,欲哭则不可,欲泣为其近妇人,乃作麦秀之诗以歌之。”

  麦秀渐渐兮,禾黍油油。彼狡童兮,不与我好兮。

  采薇歌

  《史记》:“武王已平殷乱,天下宗周,伯夷叔齐耻之,义不食周粟。采薇首阳山,饿且死,作歌。”

  登彼西山兮,采其薇矣。以暴易暴兮,不知其非矣。神农虞夏,忽焉没兮。吾适安归矣。吁嗟徂兮,命之衰矣。

  盥盘铭

  以下铭辞见《大戴礼》。

  与其溺于人也,宁溺于渊。溺于渊犹可游也,溺于人不可救也。【诸铭中,有切者,有不必切者,无非借器自儆,若句句黏著,便类后人咏物。】

  带铭

  火灭修容,慎戒必恭,恭则寿。【语极古奥。恭则寿,所谓威仪定命也。】

  杖铭

  恶乎危,于忿懥。恶乎失道,于嗜欲。恶乎相忘,于富贵。

  衣铭

  桑蚕苦,女工难,得新捐故后必寒。

  笔铭

  豪毛茂茂,陷水可脱,陷文不活。【起句不入韵。】

  矛铭

  造矛造矛,少间弗忍,终身之羞。余一人所闻。以戒后世子孙。【末二句忽转一韵,叠用两句韵作结。唐人古体每每用之,其原盖出于此。《葛覃》第三章、《饭牛歌》二章,亦同。】

  书车

  《太平御览》引《太公金匮》:“武王曰,吾随师尚父之言,因为书铭。”

  自致者急,载人者缓。取欲无度,自致而反。【圣贤反己之学,不肯自恕。】

  书户

  出畏之,入惧之。

  书履

  行必履正,无怀侥倖。

  书砚

  石墨相著而黑,邪心谗言,无得污白。

  书锋

  忍之须臾,乃全汝躯。【与矛铭意同。】

  书杖

  辅人无苟,扶人无咎。

  书井

  原泉滑滑,连旱则绝。取事有常。赋敛有节。【书井忽然触到赋敛,古人随事寄托,不工肖物。】

  白云谣

  《穆天子传》:“乙丑,天子觞西王母于瑶池之上,西王母为天子谣曰:

  白云在天,丘陵【古陵字。】自出。道里悠远,山川间之。将子无死,尚复能来。

  祈招

  《左传》,楚子革云:“周穆王欲肆其心,周行天下,将皆必有车辙马迹焉,祭公谋父作祈招之诗,以止王心。”

  祈招之愔愔,式昭德音。思我王度,式如玉,式如金。形民之力,而无醉饱之心。

  懿氏繇

  《左传》,陈大夫懿氏卜妻敬仲,其妻占之曰吉,词曰:

  凤凰于飞,和鸣锵锵。有妫之后,将育于姜。五世其昌,并于正卿。八世之后,莫之与京。

  鼎铭

  《左传》,宋正考父佐戴武宣,三命滋益恭,其鼎铭云:

  一命而偻,再命而伛,三命而俯。循墙而走。亦莫余敢侮,饘于是,鬻于是。以糊余口。【人有卑屈而召侮者,莫余敢侮,方是主敬之验,孔子亦云恭近于礼,远耻辱也。】

  虞箴

  《左传》,魏庄子谓晋侯曰:“昔辛甲之为太史,命百官箴王之阙。”于虞人之箴曰:

  芒芒禹迹,画为九州。经启九道,民有寝庙。兽有茂草,各有攸处。德用不扰,在帝夷羿。冒于原兽,忘其国恤。而思其麀牡,武不可重。用不恢于夏家。【叶姑。】兽臣司原,敢告仆夫。【起第三句入韵。】

  饭牛歌

  《淮南子》:“宁戚欲干齐桓公。困穷无以自达,于是为商旅,将任车以商于齐。暮宿于郭门外,桓公迎郊客,夜开门辟。任车爝火甚众,戚饭牛车下,击牛角而疾商歌。桓公闻之曰:‘异哉!非常人也。’命后车载之,因授以政。”

  南山矸,【音岸。】白石烂。生不逢尧与舜禅,短布单衣适至骭。【音干。】从昏饭牛薄夜半,长夜漫漫何时旦。长夜句感慨。

  沧浪之水白石粲,中有鲤鱼长尺半。敝布单衣裁至骭,清朝饭牛至夜半。黄犊上坂且休息,吾将舍汝相齐国。

  出东门兮厉石班,上有松柏青且阑。粗布衣兮縕缕,时不遇兮尧舜主。牛兮努力食细草,大臣在尔侧。吾当与汝适楚国。【自命大臣,何等自负。适楚国,即后世北走胡南走越意,战国策士之习,已萌于此。】

  琴歌

  《风俗通》:“百里奚为秦相,堂上乐作,所赁浣妇自言知音,因抚弦而歌,问之,乃故妻也。”

  百里奚,五羊皮,忆别时,烹伏雌。炊扊扅,今日富贵忘我为?

  暇豫歌

  《国语》:晋优施通于骊姬,姬欲害申生而难里克,乃饮里克酒,中饮,优施起舞曰:

  暇豫之吾吾,不如鸟乌。人皆集于菀,己独集于枯。

  宋城者讴

  《左传》:“郑公子受命于楚,伐宋。宋师败绩,囚华元。宋人以兵车百乘,文马四驷,赎华元于郑。半入,华元逃归。后宋城,华元为植,巡功。城者讴以讥之,华元使骖乘者答之,役人又复歌之。”

  睅其目,皤其腹,弃甲而复。于思【读腮。】于思,弃甲复来!

  骖乘答歌

  牛则有皮,犀兕尚多,弃甲则那?【那犹言何害也。】

  役人又歌

  从其有皮,丹漆若何?【答语亦滑稽,而役人之歌,滑稽更甚。】

  鸜鹆歌

  《左传》:鲁文公之世童谣也。至昭公时,有鸜鹆来巢,公攻季氏,败。出奔齐外野,次乾侯。八年,死于外,归葬,昭公名稠,公子宋立,是为定公。

  鸜之鹆之,公出辱之。鸜鹆之羽,公在外野。往馈之马,鸜鹆跦跦。公在乾侯,征褰与襦。鸜鹆之巢,远哉遥遥。稠父丧劳,宋父以骄。鸜鹆鸜鹆,往歌来哭。【数十年后事,一一皆验。跦跦,跳行貌。褰,裤也。襦,在外短衣也。】

  泽门之皙讴

  《左传》,宋皇国父为太宰,为平公筑台于门。妨于农收,子罕请俟农功之毕,公弗许,筑者讴曰。

  泽门之皙,实兴我役。邑中之黔,实慰我心。

  忼慷歌

  歌见孙叔敖碑。与《史记·滑稽传》所载相类,附录《史记》于此。楚相孙叔敖死,其子穷困负薪。优孟怜之,即为孙叔敖衣冠,抵掌谈语。岁余,像孙叔敖。楚王置酒,优孟前为寿。王大惊,以为孙叔敖复生也,欲以为相。优孟曰:“楚相不足为也。孙叔敖为相,尽忠为廉,王得以伯。今死,其子贫负薪。必如孙叔敖,不如自杀。”因歌云云,王乃召孙叔敖子,封之寝丘。

  贪吏而不可为而可为,廉吏而可为而不可为。贪吏而不可为者,当时有污名。而可为者,子孙以家成。廉吏而可为者,当时有清名。而不可为者,子孙困穷被褐而负薪。贪吏常苦富,廉吏常苦贫。独不见楚相孙叔敖,廉洁不受钱。【将廉吏之不可为说透,而主意于末一语缀出。情深语竭,楚王听之,不觉自入。】

  子产诵二章《左传》:

  子产从政一年,舆人诵之云云。及三年,又诵之云云。

  取我衣冠而褚之,取我田畴而伍之。孰杀子产,吾其与之。

  我有子弟,子产诲之。我有田畴,子产殖【音治。】之。子产而死,谁其嗣之。

  孔子诵二章

  《家语》:“孔子始用于鲁,鲁人惊诵之云云。及三月,政成,化既行,又诵之云云。”

  麛裘而鞸,投之无戾。鞸之麛裘,投之无邮。

  衮衣章甫,实获我所。章甫衮衣,惠我无私。

  去鲁歌

  《史记》:“孔子相鲁,鲁大治。齐人归女乐,季恒子受之,三日不听政。郊,又不致膰于大夫,孔子遂行。”歌曰:

  彼妇之口,可以出走。彼妇之谒,可以死败。盖优哉游哉,维以卒岁。

  蟪蛄歌

  《说苑》:“孔子歌云云,政尚静而恶哗也。”

  违山十里,蟪蛄之声。犹尚在耳。【《史记》云。鲁之衰也,洙泗之间,盖断断如也,即恶讳之意。】

  临河歌

  《水经注》:“孔子适赵,临河不济。叹而作歌。”

  狄水衍兮风扬波,舟楫颠倒更相加。归来归来胡为斯。【狄,水名,在临济,旧作秋误。】

  楚聘歌

  《孔丛子》:楚王使使奉金币聘夫子,宰予冉有曰:“夫子之道,至是行矣。”遂请见,问曰:“太公勤身苦志,八十而遇文王,孰与许由之贤?”子曰:“许由独善其身者也,太公兼利天下者也,然今世无文王,虽有太公,孰能识之?”歌曰:

  大道隐兮礼为基,贤人窜兮将待时,天下如一兮欲何之。

  获麟歌

  《孔丛子》:叔孙氏之车子钮商樵于野而获麟焉,众莫之识,以为不祥。夫子往观焉,泣曰:“麟也,麟出而死,吾道穷矣。”歌云云。

  唐虞世兮麟凤游,今非其时来何求。麟兮麟兮我心忧。【和平语入人自深,此圣人之言也。】

  龟山操

  《琴操》,季桓子受齐女乐,孔子欲谏不得,退而望鲁龟山作歌,喻季之蔽鲁也。

  予欲望鲁兮,龟山蔽之。手无斧柯,奈龟山何。【所以七日诛少正卯也,故知圣人不尚姑息。】

  盘操

  《琴操》

  干泽而渔,蛟龙不游。覆巢毁卵,凤不翔留。惨予心悲,还原息陬。

  水仙操

  《琴苑要录》:水仙操,伯牙所作也。伯牙学琴于成连,三年而成,至于精神寂漠,情之专一,未能得也。成连曰:“吾之学,不能移人之情,吾师有方子春,在东海中。”乃赍粮从之,至蓬莱山,留伯牙曰:“吾将迎吾师。”刺船而去,旬时不返。伯牙心悲,延颈四望,但闻海水汩没,山林冥。群鸟悲号,仰天叹曰:“先生将移我情。”乃援琴而作歌。

  繄洞渭兮流澌濩,舟楫逝兮仙不还。移形素兮蓬莱山,歍钦伤宫仙不还。【歍,音乌。钦未详。伯姬引亦用钦字。一序已尽琴理,歌辞略见大意。】

  接舆歌

  事见《庄子》,《论语》所载大同小异。

  凤兮凤兮,何如德之衰也!来世不可待,往世不可追也。天下有道,圣人成焉;天下无道,圣人生焉。方今之时,仅免刑焉。福轻乎羽,莫之知载;祸重乎地,莫之知避。已乎已乎!临人以德。殆乎殆乎!画地而趍。【音促。】迷阳迷阳,无伤吾行。吾行却曲,无伤吾足。【圣人生焉,谓徒生于世也。迷阳,草名,其肤多刺。故曰无伤云云。】

  成人歌

  《檀弓》:成人有其兄死而不为衰者,闻高子皋为成宰,遂为衰,成人歌曰。

  蚕则绩而蟹有匡,范则冠而蝉有緌,兄则死而子皋为之衰。【成,鲁邑名。匡,蟹背壳似匡也,范,蜂也。緌,谓蝉喙,长在腹下,此嗤兄死者,其衰之不为兄也。】

  渔父歌

  《吴越春秋》:伍员奔吴,追者在后,至江,江中有渔父,子胥呼之,渔父欲渡,因歌云云。子胥止芦之漪,渔父又歌云云。既渡,渔父视之有饥色,曰:“为子取饷。”渔父去,子胥疑之,乃潜深苇之中。父来,持麦饭鲍羹盎浆,求之不见,因歌而呼之云云。子胥出,饮食毕,解百金之剑以赠,渔父不受,问其姓名,不答。子胥诫渔父曰:“掩子之盎浆,无令其露。”渔父诺。胥行数步,渔者覆船自沉于江。

  日月昭昭乎寝已驰,与子期乎芦之漪。

  日已夕兮,予心忧悲。月已驰兮,何不渡为?事寝急兮将奈何?

  芦中人,岂非穷士乎?【合上章为韵,其声愈促。】

  偕隐歌

  《琴清英》云:“祝牧与其妻偕隐,乃作歌。”

  天下有道,我黻子佩。天下无道,我负子戴。

  徐人歌

  刘向《新序》:延陵季子将聘晋,带宝剑。徐君不言,而色欲之。季子未献也,然其心已许之。使反,而徐君已死,季子于是以剑带徐君墓树而去,徐人为之歌。

  延陵季子兮不忘故,脱千金之剑兮带丘墓。

  越人歌

  刘向《说苑》:鄂君子皙泛舟于新波之中,乘青翰之舟,张翠盖,会钟鼓之音,越人拥楫而歌。于是鄂君乃揄修袂行而拥之,举绣被而覆之。

  今夕何夕兮,搴洲中流。今日何日兮,得与王子同舟。蒙羞被好兮,不訾诟耻。心几烦而不绝兮,得知王子。山有木兮木有枝,心说君兮君不知。【与思公子兮未敢言同一婉至。】

  越谣歌

  《风土记》:越俗性率朴,初与人交,有礼。封土坛,祭以犬鸡,祝曰。

  君乘车,我戴笠,他日相逢下车揖。君担簦,我跨马,他日相逢为君下。

  琴歌

  《列女传》:齐人杞梁殖袭莒,战死,其妻哭于城下,七日而城崩,故《琴操》云:殖死,其妻援琴作歌曰:

  乐莫乐兮新相知,悲莫悲兮生别离。

  灵宝谣

  《灵宝要略》:吴王阖闾出游包山,见一人,自言姓山名隐居。阖闾扣之,乃入洞庭,取素书一卷呈阖闾。其文不可识,令人赍之问孔子,孔子曰:“丘闻童谣,”云云。

  吴王出游观震湖,龙威丈人山隐居。北上包山入灵墟,乃入洞庭窃禹书。天地大文不可舒,此文长传百六初,若强取出丧国庐。

  吴夫差时童谣

  《述异记》:吴王有别馆在句容,楸梧成林,故名梧宫。或云即馆姓宫,宫有梧桐园。

  梧宫秋,吴王愁。【国家愁惨之状,尽于六字中。不啻闻雍门之弹矣。秋,隐语也。】

  乌鹊歌

  《彤管集》:韩凭为宋康王舍人,妻何氏美,王欲之,捕舍人,筑青陵之台,何氏作乌鹊歌以见志,遂自缢。

  南山有乌,北山张罗。乌自高飞,罗当奈何。

  乌鹊双飞,不乐凤凰。妾是庶人,不乐宋王。【妙在质直。唐孟郊《列女操》:“波澜誓不起,妾心井中水,”此一种也。】

  答夫歌

  其雨淫淫,河大水深。日出当心。【王得诗,以问苏贺。贺曰:“雨淫淫,愁且思也;河水深,不得往来也;日当心,死志也。”语特奇创。】

  越群臣祝

  《吴越春秋》:越王勾践五年,与大夫种、范蠡入臣于吴,群臣送之浙江之上,临水祖道,军陈固陵,大夫前为祝,词曰:

  皇天祐助,前沉后扬。祸为德根,忧为福堂。威人者灭,服从者昌。王离牵致,其后无殃。君臣生离,感动上皇。众夫悲哀,莫不感伤。臣请薄脯,酒行二觞。【前沉后扬,吴越初终,尽此四字。】

  大王德寿,无疆无极。乾坤受灵,神衹辅翼。我王厚之,祉祐在侧。德销百殃,利受其福。去彼吴庭,来归越国。

  祝越王辞

  《吴越春秋》:越王既灭吴,伯诸侯,置酒文台,群臣为乐,大夫种进祝酒,词曰:

  皇天祐助,我王受福。良臣集谋,我王之德。宗庙辅政,鬼神承翼。君不忘臣,臣尽其力。上天苍苍,不可掩塞。觞酒二升,万福无极。【君不忘臣,臣尽其力。恐君臣之不终,故有此语。】我王仁贤,怀道抱德。灭仇破吴,不忘返国。赏无所吝,群邪杜塞,君臣同和。福祐千亿,觞酒二升,万岁难极。

  弹歌

  《吴越春秋》:越王欲谋伐吴,范蠡进善射者陈音。王问曰:“孤闻子善射,道何所生?”对曰:“臣闻弩生于弓,弓生于弹,弹起于古之孝子,不忍见父母为禽兽所食,故作弹以守之。”歌曰:

  断竹续竹,飞土逐宍。【宍,古肉字。二字为句。刘勰云。断竹黄歌。贤之至也。】

  禳田者祝

  《史记》:齐威王使淳于髠于赵,请兵御楚,赍金百斤,车马十驷,髠仰天大笑,冠缨索绝。王曰:“先生少之乎?”髠曰:“臣从东方来,见道旁禳田者,操豚蹄,酒一盂而祝云云。臣见所持者狭,而所欲者奢,故笑之。

  瓯窭【音楼。】满篝,污邪满车。五谷蕃熟,穰穰满家。【瓯窭,少意。篝,笼也。言少者犹满篝也,污邪,下田也。词极古茂。起二语亦可二字成句,诗“在东”同此。】

  巴谣歌

  《茅盈内传》:秦始皇三十一年,九月庚子,茅盈高祖于华山之中。乘云驾鹤,白日升天。先是时有巴谣歌辞云云。始皇闻谣歌而问其故,父老具对曰:“此仙人之谣歌,劝帝求长生之术。”于是始皇欣然,乃有寻仙之志。因改腊月嘉平。

  神仙得者茅初成,驾龙上升入太清。时下玄洲戏赤城,继世而往在我盈。帝若学之腊嘉平。

  渡易水歌

  《史记》:燕太子丹使荆轲刺秦王。至易水之上,既祖取道,高渐离击筑,荆轲和而歌,为变征之声,士皆垂泪涕泣,又前而歌曰:

  风萧萧兮易水寒,壮士一去兮不复还。【至今读之,犹存变征之声。】

  三秦记民谣

  武功太白,去天三百。孤云两角,去天一握。山水险阻,黄金子午。蛇盘乌栊,势与天通。【奇奥。】

  楚人谣

  《史记》:楚怀王为张仪所欺,客死于秦,至王负刍,遂为秦所灭,百姓哀之。

  楚虽三户,亡秦必楚。【哀痛激烈,比《松柏之歌》尤甚。】

  河图引蜀谣

  汶阜之山,江出其腹。帝以会昌,神以建福。

  湘中渔歌

  帆随湘转,望衡九面。【《禹贡》:“夹右碣石,入于河。”简而能达,不图此复遇之。】

  太公兵法引黄帝语

  以下古逸谐语。

  日中不彗,是谓失时。操刀不割,失利之期。执柯不伐,贼人将来。涓涓不塞,将为江河。荧荧不救,炎炎奈何。两叶不去,将用斧柯。为虺弗摧,行将为蛇。【“两叶不去”二句,古人未尝不造句也。不必果出黄帝,然其语可录。】

  六韬

  天下攘攘,皆为利往。天下熙熙,皆为利来。

  管子

  墙有耳,伏寇在侧。

  左传引逸诗

  翘翘车乘,招我以弓。岂不欲往?畏我友朋。【陈敬仲引。难进之思凛然。】

  俟河之清,人寿几何。兆云询多,职竞作罗。【郑子驷引。】

  虽有丝麻,无弃菅蒯。虽有姬姜,无弃蕉萃。【同憔悴。】凡百君子,莫不代匮。【见子重伐莒篇。】

  左传

  山有木,工则度之,宾有礼,主则择之。【鲁羽父引周谚。】

  心苟无瑕,何恤乎无家?【晋士蒍引谚。】

  畏首畏尾,身其余几?【郑子家引古言。】

  虽鞭之长,不及马腹。【晋伯宗引古语。】

  国语

  兽恶其网,民怨其上。【单襄公引谚。】

  众心成城,众口铄金。【州鸠对周景王引谚。】

  从善如登,从恶如崩。【卫彪傒引谚。】

  孔子家语

  相马以舆,相士以居。【英雄短气。】

  列子

  生相怜,死相捐。【杨朱篇引谚。】

  人不婚宦,情欲失半。人不衣食,君臣道息。【古语。】

  韩非子

  奔【音偾。】车之上无仲尼,覆舟之下无伯夷。

  慎子

  不聪不明,不能为王。不瞽不聋,不能为公。【要知聪明聋瞽,并行不悖。冕而前旒,苸纩塞耳,亦不专主聪明也。】

  鲁连子

  心诚怜,白发玄。情不怡,艳色媸。

  战国策

  宁为鸡口,无为牛后。【苏秦为赵合从说韩曰,闻之鄙语云云。一云,鸡尸牛从。尸,主也。从,牛子也。】

  削株掘根,无与祸邻,祸乃不存。【张仪说秦,臣闻之云云。】

  史记

  下俱汉以后矣,因众人称引,按之时代,未能皆有所属,故亦入古逸中。

  蓬生麻中,不扶自直。白沙在泥,与之皆黑。【与芝兰鲍鱼同意。】

  当断不断,反受其乱。【《黄歇传》赞引语。】

  长袖善舞,多钱善贾。【《蔡泽传》,太史公引韩非语。】

  农不如工,工不如商。刺绣文,不如倚市门。【《货殖传》。】

  汉书

  狡兔死,走狗烹。飞鸟尽,良弓藏。敌国破,谋臣亡。【《韩信传》。】

  不习为吏,视已成事。贾谊引鄙谚。水至清则无鱼,人至察则无徒。【东方朔《客难》。】

  千人所指,无病而死。【王嘉上封事谏成帝益封董贤,引里谚云。比高明之家,鬼瞰其室,及美服患人指等语,更为可危可惧,一能胜予,况千人乎?】

  列女传引古语

  力田不如遇丰年,力桑不如见国卿,刺绣文不如倚市门。

  说苑

  绵绵之葛,在于旷野。良工得之,以为絺紵,良工不得,枯死于野。

  刘向别录引古语

  唇亡而齿寒,河水崩其壤在山。

  新序

  蠹喙仆柱梁,蚊芒走牛羊。

  风俗通

  狐欲渡河,无奈尾何。【“小狐济,濡其尾。”更为古奥。】

  妇死腹悲,惟身知之。

  县宫漫漫,怨死者半。

  金不可作,【音做。】世不可度。【点破秦皇汉武。】

  桓子新论引谚

  人闻长安乐,则出门而西向笑。知肉味美,则对屠门而大嚼。

  牟子引古谚

  东汉牟融。

  少所见,多所怪。见橐驼言马肿背。【谑语使读者失笑。】

  易纬引古诗

  一夫两心,拔刺不深。【可反证同心断金。】

  踬马破车,恶妇破家。

  四民月令引农语

  东汉崔实撰。

  三月昏,参星夕。杏花盛,桑叶白。

  河射角,堪夜作。犁星没,水生骨。

  月令注引里语

  蜻蛉鸣,衣裘成。蟋蟀鸣,懒妇惊。

  水经注引谚

  射的白,斛米百。射的玄,斛米千。【射的、山名,远望状若射侯,土人以验年之登否。】

  山经引相冢书

  山川而能语,葬师食无所。肺腑而能语,医师色如土。

  文选注引古谚

  越阡度陌,互为主客。

  魏志王昶引谚

  救寒无若重裘,止谤莫若自修。

  梁史

  屋漏在上,知之在下。

  史照通鉴疏引谚

  足寒伤心,民怨伤国。

  古谚古语

  触露不掐葵,日中不翦韭。

  将飞者翼伏,将奋者足跼。将噬者爪缩,将文者且朴。

  上求材,臣残木。上求鱼,臣干谷。【上可以多求乎?造句简古。】

  无乡之社,易为黍肉。无国之稷,易为求福。

●古诗源卷二

○汉诗

  高帝

  大风歌

  《史记》:高祖既定天下,还过沛。留置酒沛宫,悉召故人父老子弟佐酒,发沛中儿,得百二十人,教之歌。酒甜,上击筑自歌曰:

  大风起兮云云扬。威加海内兮归故乡。安得猛士兮守四方。【上言扫除群雄,未言守成也。时帝春秋高,韩彭已诛,而孝惠仁弱,人心未定,思猛士其有悔心乎?】

  鸿鹄歌

  《史记》:高帝欲立戚夫人子赵王如意,后不果。戚夫人涕泣。帝曰:“为我楚舞,我为若楚歌。”其旨言太子得四皓为辅,羽翼成就,不可易也。

  鸿鹄高飞,一举千里。羽翼已就,横绝四海。横绝四海,又可奈何。虽有缯缴,将安所施?

  项羽

  垓下歌

  《史记》:汉围项羽垓下,夜闻汉军皆楚歌,惊曰:“汉皆已得楚乎?”起饮帐中。有美人虞常从,骏马名骓常骑之,乃悲歌慷慨,歌数阕,美人和之。

  力拔山兮气盖世,时不利兮骓不逝。骓不逝兮可奈何,虞兮虞兮奈若何!【“可奈何”,“奈若何”,呜咽缠绵。从古真英雄必非无情者。虞姬和歌竟似唐绝句矣,故不录。】

  唐山夫人

  高帝姬。韦昭曰:“唐山,姓也。”

  安世房中歌

  《汉书·礼乐志》曰:“汉房中祠乐,高祖唐山夫人所作也。”

  大孝备矣,休德昭明,高张四县。【同悬。】乐充宫庭。芬树羽林,云景杳冥。金支秀华,庶旄翠旌。【末四句幽光灵响,不专以典重见长。】

  七始华始,肃倡和声。神来晏娭,【同嬉。】庶几是听,鬻【音竹。】鬻音送。细齐人情。忽乘青玄,熙事备成,清思聈【音有。】聈,经纬冥冥。【“鬻鬻”二语,写乐音深静,可补《乐记》所缺。】

  我定历数,人告其心。敕身齐戒,施教申申。乃立祖庙,敬明尊亲。大矣教熙,四极爰轃。

  王侯秉德。其邻翼翼。显明昭式,清明鬯矣。皇冲孝德。竟全大功,抚安四极。海内有奸,纷乱东北。诏抚成师,武臣承德,行乐交逆,箫勺群慝。肃为济哉,盖定燕国。

  大海荡荡水所归,高贤愉愉民所怀。太山崔,百卉殖。民何贵?贵有德。【以下忽焉变调,或急或,各极音节之妙。】

  安其所,乐终产。乐终产,世继绪。飞龙秋,游上天。高贤愉,乐民人。

  丰草葽,女萝施。善何如,谁能回?大莫大,成教德。长莫长,被无极。【此章忽用比兴。】

  雷震震,电耀耀。明德乡,治本约。治本约,泽弘大。加被宠,咸相保。施德大,世曼寿。

  都荔遂芳,窅窊桂华。教奏天仪,若日月光。乘玄四龙,回驰北行。羽旄殷盛,芬哉芒芒。孝道随世,我署文章。【“孝道随世”,《中庸》所云达孝也。】

  冯冯翼翼,承天之则。吾易久远,烛明四极。慈惠所爱,美若休德。杳杳冥冥,克绰永福。

  硙【音位。】硙即即,师象山则。呜呼孝哉,案抚戎国。蛮夷竭欢,象来致福。兼临是爱,终无兵革。【《礼乐志》曰:硙硙,崇积也。即即,充实也。”】

  嘉荐芳矣,告灵飨矣。告灵既飨,德音孔臧。惟德之臧,建侯之常。承保天休,令问不忘。

  皇皇鸿明,荡侯休德。嘉承天和,伊乐厥福。在乐不荒,惟民之则。浚则师德,下民咸殖。令问在旧,孔容翼翼。【规语得体。】

  孔容之常,承帝之明。下民之乐,子孙保光。承顺温良,受帝之光。嘉荐令芳,寿考不忘。承有明德,师象山则。云施称民,永受厥福。承容之常,承帝之明。下民安乐,受福无疆。【《郊庙歌》近颂,《房中歌》近雅。古奥中带和平之音,不肤不庸,有典有则,是西京极大文字。首言大孝备矣,以下反反覆覆,屡称孝德。汉朝数百年家法,自此开出,累代庙号,首冠以孝,有以也。】

  朱虚侯章

  耕田歌

  《史记》:诸吕擅权,章忿刘氏不得职。尝入侍宴,太后令为酒吏。章曰:“臣将种也,请以军法行酒。”太后曰:“可。”酒酣,章乃作《耕田歌》。顷之,诸吕有一人醉亡酒,章追拔剑斩之。太后大惊,业已许其军法,无以罪也。

  深耕溉种,立苗欲疏。非其种者,锄而去之。

  紫芝歌

  《古今乐录》:四皓隐于商山作歌。

  莫莫高山,深谷逶迤。晔晔紫芝,可以疗饥。唐虞世远,吾将何归。驷马高盖,其忧甚大。富贵之畏人兮,不若贫贱之肆志。

  武帝

  瓠子歌二首

  《史记》:元封二年,帝既封禅,乃发卒万人,塞瓠子决河,还自临祭,令群臣从官皆负薪。时东郡烧草薪少,乃下淇园之竹以为楗。上既临河决,悼其功之不就,为作歌二章。于是卒塞瓠子,筑宫名曰宣房。

  瓠子决兮将奈何,浩浩洋洋兮虑殚为河。殚为河兮地不得宁,功无已时兮吾【音鱼。】山平。吾山平兮钜野溢,鱼弗郁兮柏【同迫。】冬日。正道驰兮离常流,蛟龙驰兮放远游。归旧川兮神哉沛,不封禅兮安知外。为我谓河伯兮何不仁,泛滥不止兮愁吾人。啮桑浮兮淮泗满,久不返兮水维缓。【啮桑,县名。】

  河汤汤兮激潺湲,北渡回兮迅流难。搴长筊兮湛【音沈。】美玉,河伯许兮薪不属。薪不属兮卫人罪。烧萧条兮噫乎何以御水。林竹兮楗石菑,宣防塞兮万福来。【好大喜功之举,不无畏天忧世之心。文章古奥,自是西京气象。】

  秋风辞

  汉武帝故事。帝行幸河东,祠后土。顾视帝京,忻然中流。与群臣饮燕,自作秋风词。

  秋风起兮白云飞,草木黄落兮雁南归。兰有秀兮菊有芳,怀佳人兮不能忘。泛楼船兮济汾河,横中流兮扬素波。箫鼓鸣兮发棹歌,欢乐极兮哀情多。少壮几时兮奈老何!【离骚遗响。文中子谓乐极哀来,其悔心之萌乎。】

  李夫人歌

  《汉书·外戚传》:夫人早卒,方士齐少翁言能致其神。乃夜张灯烛,设帷帐,令帝居帐中,遥望见好女和李夫人之貌,不得就视。帝愈悲感,为作诗。

  是耶非耶,立而望之,翩何姗姗其来迟。

  柏梁诗

  元封三年,作柏梁台,诏群臣二千石,有能为七言诗乃得上坐。

  日月星辰和四时。【帝。】骖驾驷马从梁来。【梁孝王武。】郡国士马羽林材。【大司马。】总领天下诚难治。【丞相石庆。】和抚四夷不易哉。【大将军卫青。】刀笔之吏臣执之。【御史大夫倪宽。】撞钟伐鼓声中诗。【太常周建德。】宗室黄大日益滋。【宗正刘安国。】周卫交战禁不时。【卫尉路博德。】总领从宗柏梁台。【光禄勋徐自为。】平理清谳决嫌疑。【廷尉杜周。】修饰舆马待驾来。【太仆公孙贺。】郡国吏功差次之。【大鸿胪壶充国。】乘舆御物主治之。【少府王温舒。】陈粟万石扬以箕。【大司农张成。】徼道宫下随讨治。【执金吾中尉豹。】三辅盗贼天下危。【左冯翊盛宣。】盗阻南山为民灾。【右扶风李成信。】外家公主不可治。【京兆尹。】椒房率更领其材。【詹事陈掌。】蛮夷朝贺常舍其。【典属国。】柱枅欂栌相枝持。【大匠。】枇把橘栗桃李梅。【大官令。】走狗逐兔张罘。【上林令。】啮妃女唇甘如饴。【郭舍人。】迫窘诘屈几穷哉。【东方朔。此七言古权舆,亦后人聊句之祖也。武帝句,帝王气象,以下难追后尘矣。存之以备一体。篇中三之字,三治字,二哉字,二时字,二材字,古人作诗,不忌重复。且如三百篇《株林》一诗,四句中连用二林字,二南字;《采薇》首章连用玁狁之故句。此类不可胜数。《三秦记》谓《柏梁台诗》是元封三年作。然梁孝王薨于孝景之世,又光禄勋、大鸿胪、大司农、执金吾、京兆尹、左冯翊、右扶风,皆武帝太初元年所更名,不应预书于元封之时。其为后人拟作无疑也。不然,大君之前,郭舍人敢狂荡无礼,而东方朔以滑稽语为戏耶?】

  落叶哀蝉曲

  王子年《拾遗记》:汉武帝思李夫人,不可复得。时穿昆灵之池,泛翔禽之舟,帝自造歌曲。使女伶歌之,时日已西颓,凉风激水,女伶歌声甚遒,因赋落叶哀蝉曲。

  罗袂兮无声,玉墀兮尘生。虚房冷而寂寞,落叶依于重扃。望彼美之女兮,安得感余心之未宁?

  蒲梢天马歌

  《史记》:武帝伐大宛,得千里马名蒲梢,作此歌。

  天马徕【古来字。】兮从西极,经万里兮归有德。承灵威兮降外国,涉流沙兮四夷服。

  韦孟

  讽谏诗

  《汉书》:孟为元王傅,傅子夷王及孙王戊。戊荒淫不遵道,作诗讽谏曰:

  肃肃我祖,国自豕韦。黼衣朱黻,四牡龙旂。彤弓斯征。抚宁遐荒。总齐群邦,以翼大商。迭彼大彭,勋绩维光。至于有周,历世会同。王赧听谮,实绝我邦。我邦既绝,厥政斯逸。赏罚之行,非由王室。庶尹群后,靡扶靡卫。五服崩离,宗周以坠。我祖斯微,迁于彭城。在予小子,勤唉【音移。】厥生。厄此嫚秦,耒耜斯耕。悠悠嫚秦,上天不宁。乃眷南顾,授汉于京。于赫有汉,四方是征。靡适不怀,万国攸平。乃命厥弟,建侯于楚,俾我小臣,惟傅是辅。矜矜元王,恭俭静一。惠此黎民,纳彼辅弼。享国渐世,垂烈于后。迁及夷王,克奉厥绪。咨命不永,惟王统祀。左右陪臣,斯惟皇士。如何我王,不思守保?不惟履冰,以继祖考。邦事是废,逸游是娱。犬马悠悠,是放是驱。务此鸟兽,忽此稼苗。蒸民以匮,我王以婾。【音愉。】所弘匪德,所亲匪俊。惟囿是恢,惟谀是信。睮睮【以朱切。】谄夫,谔谔黄发。如何我王,曾不是察?既藐下臣,追欲纵逸。嫚彼显祖,轻此削黜。嗟嗟我王,汉之睦亲。曾不夙夜,以休令闻。穆穆天子,照临下土。明明群司,执宪靡顾。正遐由近,殆其兹怙。嗟嗟我王,曷不斯思?匪思匪监,嗣其罔则。弥弥其逸,岌岌其国。致冰匪霜,致坠匪嫚。瞻惟我王,时靡不练。兴国救颠,孰违悔过。追思黄发,秦穆以霸。岁月其徂,年其逮耇。于赫君子,庶显于后。我王如何,曾不斯览。黄发不近,胡不时鉴。【“迭彼大彭”,迭,互也,言与大彭互为伯于商也。唉,叹声。渐世,没世也。“惟王统祀”以上,历叙废兴,即寓讽谏之意。睮睮,目媚貌。“穆穆天子”六句,言天子之明,群臣之执法。欲正远人,先从近始,而王怙恃不悛,危殆无日矣。“致冰匪霜”二句,言致冰岂非由霜乎。致坠岂非由乎。“瞻惟我王”下,望其改过之词。练,习也。言王于上之所言,无不练习也。肃肃穆穆,汉诗中有此拙重之作,去变雅未远。后张华、二陆、潘岳辈四言,恹恹欲息矣,故悉汰之。】

  东方朔

  诫子诗

  《汉书》取前十句为东方赞。

  明者处世,莫尚于中。优哉游哉,于道相从。首阳为拙,柳下为工。饱食安步,以仕代农。依隐玩世,诡时不逢。才尽身危,好名得华。有群累生,孤贵失和。遗余不匮,自尽无多。圣人之道,一龙一蛇。形见神藏,与物变化。随时之宜,无有常家。【言有群、孤贵皆失,以其有常家也。东方先生一生得力,尽在乎此。】

  乌孙公主

  悲愁歌

  《汉书·西域传》:“元封中,遣江都王建女细君为公主,以妻乌孙昆莫。昆莫年老,言语不通,公主悲,乃自作歌。”

  吾家嫁我兮天一方,远托异国兮乌孙王。穹庐为室兮毡为墙,以肉为食兮酪为浆。常思汉土兮心内伤,愿为黄鹄兮还故乡。

  司马相如

  封禅颂

  《史记》:长卿病甚,武帝使所忠往求其书,及至,已卒。其妻曰:“长卿未死时为一卷书,曰:‘有使来求书奏之。’”其遗札言封禅事,所忠奏焉。

  自我天覆,云之油油。甘露时雨,厥壤可游。滋液渗漉,何生不育。嘉谷六穗,我穑曷蓄?非惟雨之,又润泽之。非惟遍之,我汜布濩之。万物熙熙,怀而慕思。名山显位,望君之来。君乎君乎!侯不迈哉!般般之兽,乐我君囿。白质黑章,其仪可嘉。■〈日攵〉■〈日攵〉穆穆,君子之能。【乃平声。】盖闻其声,今观其来。厥涂靡踪,天瑞之征。兹亦于舜,虞氏以兴。濯濯之麟,游彼灵畤。孟冬十月,君徂郊祀。驰我君舆,帝有享祉。三代之前,盖未尝有。宛宛黄龙,兴德而升。采色炫耀,熿炳辉煌。正阳显见,觉悟黎蒸。于传载之,云受命所乘。厥之有章,不必谆谆。依类托寓,谕以封峦。【非惟雨之四语,盖闻其声。二语悠扬生动,不专以古拙胜也。后述祥瑞三段,井井有法。】

  卓文君

  白头吟

  西京杂记,相如将聘茂陵女为妾,文君作白头吟以自绝,相如乃止。

  皑如山上雪,皎若云间月。闻君有两意,故来相决绝。今日斗酒会,明旦沟水头。躞蹀御沟上,沟水东西流。凄凄复凄凄,嫁娶不须啼。愿得一心人,白头不相离,竹竿何袅袅,鱼尾何簁簁。男儿重意气,何用钱刀为!

  苏武

  苏李诗一唱三叹,感寤具存。无急言谒论,而意自长、言自远也。故知庞言繁称,道所不贵。

  诗四首

  首章别兄弟,次章别妻,三四章别友,非皆别李陵也。钟竟陵俱解作别陵,未必然。

  骨肉缘枝叶,结交亦相因。四海皆兄弟,谁为行路人。况我连枝树,与子同一身。昔为鸳与鸯,今为参与辰。昔者长相近,邈若胡与秦。惟念当离别,恩情日以新。鹿鸣思野草,可以喻嘉宾。我有一樽酒,欲以赠远人。愿子留斟酌,叙此平生亲。【卢子谅云:“恩由契阔申,义随周旋积”,夺胎于“恩情日以新”句,而此殊浑然。两人字复韵。】

  结发为夫妻,恩爱两不疑。欢娱在今夕,燕婉及良时。征夫怀远路,起视夜何其。参辰皆已没,去去从此辞。行役在战场,相见未有期。握手一长叹,泪为生别滋。努力爱春华,莫忘欢乐时。生当复来归,死当长相思。【两时字复韵。】

  黄鹄一远别,千里顾徘徊。胡马失其群,思心常依依。何况双飞龙,羽翼临当乖。幸有弦歌曲,可以喻中怀。请为游子吟,泠泠一何悲。丝竹厉清声,慷慨有余哀。长歌正激烈,中心怆以摧。欲展清商曲,念子不能归。俯仰内伤心,泪下不可挥。愿为双黄鹄,送子俱远飞。

  烛烛晨明月,馥馥秋兰芳。芬馨良夜发,随风闻我堂。征夫怀远路,游子恋故乡。寒冬十二月,晨起践严霜。俯视江汉流,仰视浮云翔。良友远别离,各在天一方。山海隔中州,相去悠且长。嘉会难再遇,欢乐殊未央。愿君崇令德,随时爱景光。【写情款款,淡而弥悲,连上首应是赠李作。】

  李陵

  与苏武诗三首

  良时不再至,离别在须臾。屏营衢路侧,执手野踟蹰。仰视浮云驰,奄忽互相逾。风波一失所,各在天一隅。长当从此别,且复立斯须。欲因晨风发,送子以贱躯。【一片化机,不关人力,此五言诗之祖也。音极和,调极谐,字极稳,然自是汉人古诗,后人慕仿不得,所以为至。唐人句云:“孤云与飞鸟,相失片时间。”推为名句,读“奄忽互相逾”句,高下何止倍蓰耶。】

  嘉会难再遇,三载为千秋。临河濯长缨,念子怅悠悠。远望悲风至,对酒不能酬。行人怀往路,何以慰我愁。独有盈觞酒,与子结绸缪。

  携手上河梁,游子暮何之。徘徊蹊路侧,悢【音亮。】悢不得辞。行人难久留,各言长相思。安知非日月,弦望自有时。努力崇明德,皓首以为期。【此别永无会期矣,却云弦望有时,缠绵温厚之情也。“努力崇明德”,正与“愿君崇令德”二语相答。】

  别歌

  《汉书》:昭帝即位,匈奴与汉和亲。汉使求苏武等,单于许武还。李陵置酒贺武,因起舞而歌,泣下数行,遂与武诀。

  径万里兮度沙漠。为君将兮奋匈奴。路穷绝矢刃摧。士众灭兮名已隤。老母已死,虽欲报恩将安归?

  李延年

  歌一首

  《汉书》:李延年性知音律,善歌舞,武帝爱之。延年起舞而歌云云,上叹息曰:“世岂有此人乎!”平阳主因言延年有女弟,上召见之,妙丽善舞,由是得幸。

  北方有佳人,绝世而独立。一顾倾人城,再顾倾人国。宁不知倾城与倾国,佳人难再得。【欲进女弟,而先为此歌,倡优下贱之技也。然写情自深,古来破家亡国,何必皆庸愚主耶。】

  燕刺王旦

  《汉书》:旦自以武帝子,且长,不得立,乃与姊盖长公主、左将军上官桀交通,谋废立。事觉,昭帝使使者赐玺书,王以绶自绞,夫人随旦自杀者二十余人。

  歌

  归空城兮,狗不吠,鸡不鸣。横术何广广兮,固知国中之无人。

  华容夫人

  歌

  发纷纷兮慎渠,骨籍籍兮亡居。母求死子兮妻求死夫,裴回两渠间兮君子将安居。【杜少陵“鬼妾”、“鬼马”等语,似从此种化出。】

  昭帝

  淋池歌

  《拾遗记》:时穿淋池,中植芰荷,帝时命水嬉,毕景忘归。使宫人歌曰:秋素景兮泛洪波,挥纤手兮折芰荷。凉风凄凄扬棹歌,云光开曙月低河,万岁为乐岂云多。【“月低河”句,已开六朝风气。】

  杨恽

  拊缶歌

  详见《汉书·恽答孙会宗书》。

  田彼南山,芜秽不治。种一顷豆,落而为萁。人生行乐耳。须富贵何时!【以力田之无年,比仕宦之失志,未尝斥朝廷也,然竟缘此得祸,哀哉!】

  王昭君

  怨诗

  此将入匈奴时所作。

  秋木萋萋,其叶萎黄。有鸟处山,集于苞桑。养育毛羽,形容生光。既得升云。上游曲房。离宫绝旷,身体摧藏。志念抑沉,不得颉颃。虽得委食,心有徊徨。我独伊何,来往变常。翩翩之燕,远集西羌。高山峨峨,河水泱泱。父兮母兮,道里悠长。呜呼哀哉,忧心恻伤。【若明诉入胡之苦,不特说不尽,说出亦浅也。呼父呼母,声泪俱绝。下视石季伦拟作,琐屑不足道矣。】

  班婕妤

  怨歌行

  婕妤初为孝成所宠。其后赵氏日盛,婕妤恐久见危,求供养太后长信宫,作纨扇诗以自悼焉。

  新裂齐纨素,皎洁如霜雪。裁成合欢扇,团团似明月。出入君怀袖,动摇微风发。常恐秋节至,凉飚夺炎热。弃捐箧笥中,恩情中道绝。【用意微婉,音韵和平。绿衣诸什,此其嗣响。】

  赵飞燕

  归风送远操

  《西京杂记》:赵后有宝琴名凤凰,亦善为《归风送远操》。

  凉风起兮天陨霜,怀君子兮渺难望。感予心兮多慨慷。

  梁鸿

  五噫歌

  《后汉书》:鸿东出关,过京师,作五噫之歌。肃宗闻而悲之,求鸿不得。

  陟彼北芒兮,噫!顾瞻帝京兮,噫!宫阙崔巍兮,噫!民之劬劳兮,噫!辽辽未央兮,噫!

  马援

  武溪深行

  崔豹《古今注》:《武溪深》,马援南征时作,门生爰寄生善笛,援作歌以和之。

  滔滔武溪一何深,鸟飞不度。兽不敢临,嗟哉武溪多毒淫。

  班固

  宝鼎诗

  《东都赋·诗》之一。

  岳修贡兮川效珍,吐金景兮敲浮云。宝鼎见兮色纷縕,焕其炳兮被龙文。登祖庙兮享圣神,昭灵德兮弥亿年。

  张衡

  四愁诗

  张衡不乐久处机密,阳嘉中,出为河间相。时国王骄奢,不遵法度,又多豪右并廉之家。衡下车,治威严,能内察属县,奸猾行巧劫,皆密知名,下吏收捕,尽服擒。诸豪侠游客,悉惶惧逃出境,郡中大治,争讼息,狱无系囚。时天下渐弊,郁郁不得志,为《四愁诗》。屈原以美人为君子,以珍宝为仁义,以水深雪雰为小人,思以道术相报,贻于时君,而惧谗邪不得以通。其辞曰:

  我所思兮在太山,欲往从之梁父艰。侧身东望涕沾翰。美人赠我金错刀,何以报之英琼瑶。路远莫致倚逍遥,何为怀忧心烦劳?

  我所思兮在桂林,欲往从之湘水深。侧身南望涕沾襟。美人赠我金琅玕,何以报之双玉盘。路远莫致倚惆怅,何为怀忧心烦伤?

  我所思兮在汉阳,欲往从之陇阪长。侧身西望涕沾裳。美人赠我貂襜褕,何为报之明月珠。路远莫致倚踟蹰,何以怀忧心烦纡?

  我所思兮在雁门,欲往从之雪纷纷。侧身北望涕沾巾。美人赠我锦绣段,何以报之青玉案。路远莫致倚增叹,何为怀忧心烦惋?【心烦纡郁,低徊情深,风骚之变格也。少陵七歌原于此,而不袭其迹,最善夺胎。五噫四愁,如何拟得?后人拟者,画西施之貌耳。】

  李尤

  九曲歌年岁晚暮时已斜,安得力士翻日车。【阙。】

●古诗源卷三

○汉诗

  蔡邕

  樊惠渠歌【并序】

  阳陵县东,其地衍隩,土气辛螫,嘉谷不殖,而泾水长流。光和五年,京兆尹樊君勤恤民隐,乃立新渠。曩之卤田,化为甘壤。农民怡悦,相与讴谈疆畔,斐然成章,谓之樊惠渠云。其歌曰:

  我有长流,莫或阏之。我有沟浍,莫或达之。田畴斥卤,莫修莫厘。饥馑困悴,莫恤莫思。乃有樊君,作人父母。立我畎亩,黄潦膏凝。多稼茂止,惠乃无疆,如何勿喜?我壤既营,我疆斯成。泯泯我人,既富且盈,为酒为酿,蒸彼祖灵。贻福惠君,寿考且宁。

  饮马长城窟行【亦作古辞。】

  青青河边草,绵绵思远道。远道不可思,宿昔梦见之。梦见在我傍,忽觉【音教。】在他乡。他乡各异县,展转不可见。枯桑知天风,海水知天寒。入门各自媚,谁肯相为言。客从远方来,遗我双鲤鱼。呼儿烹鲤鱼,中有尺素书。长跪读素书,书中竟何如?上有加餐食,下有长相忆。【通首皆思妇之词,缠绵宛折,篇法极妙。宿昔,夙夜也。《列子·周穆王》篇:“周之尹氏,大治产,有老役夫昔昔梦为国君,尹氏昔昔梦为人仆。”前面一路换韵,联折而下,节拍甚急。“枯桑二句,忽用排偶承接,急者缓之,最是古人神妙处。】

  翠鸟

  庭陬有若榴,绿叶含丹荣。翠鸟时来集,振翼修容形。回顾生碧色,动摇扬缥青。幸脱虞人机,得亲君子庭。驯心托君素,雌雄保百龄。

  琴歌

  练余心兮浸太清,涤秽浊兮存正灵。和液畅兮神气宁,情志泊兮心亭亭,嗜欲息兮无由生。踔宇宙而遗俗兮,眇翩翩而独征。【琴理之最深者,唐人王昌龄、李颀时亦得之。】

  秦嘉

  留郡赠妇诗

  嘉为郡上掾,其妻徐淑,寝疾还家,不获面别,赠诗云尔。

  人生譬朝露,居世多屯蹇。忧艰常早至,欢会常苦晚。念录奉时役,去尔日遥远。遣车迎子还,空往复空返,省书情凄怆,临食不能饭。独坐空房中,谁与相劝勉。长夜不能眠,伏枕独展转。忧来如循环,匪席不可卷。

  皇灵无私亲,为善荷天禄。伤我与尔身,少小罹茕独。既得结大义,欢乐苦不足。念当远别离,思念叙款曲。河广无舟梁,道近隔丘陆。临路怀惆怅,中驾正踯躅。浮云起高山,悲风激深谷。良马不回鞍,轻车不转毂。针药可屡进,愁思难为数。贞士笃终始,恩义不可属。

  肃肃仆夫征,锵锵扬和铃。清晨当引迈,束带待鸡鸣。顾看空房中,仿佛想姿形。一别怀万恨,起坐为不宁。何用叙我心,遗思致款诚。宝钗好耀首,明镜可鉴形。芳香去垢秽,素琴有清声。诗人感木瓜,乃欲答瑶琼。愧彼赠我厚,惭此往物轻。虽知未足报,贵用叙我情。【末章韵脚复形字。词气和易,感人自深,然去西汉浑厚之风远矣。】

  孔融

  杂诗

  远送新行客,岁暮乃来归。入门望爱子,妻妾向人悲。闻子不可见,日已潜光辉。孤坟在西北,常念君来迟。褰裳上墟丘,但见蒿与薇。白骨归黄泉,肌体乘尘飞。生时不识父,死后知我谁。孤魂游穷暮,飘飖安所依。人生图孠【古嗣字。】息,尔死我念追。俯仰内伤心,不觉泪沾衣。人生自有命,但恨生日希。【少陵《奉先咏怀》,有“入门闻号,幼子饥已卒”句,觉此更深可哀。】

  辛延年

  羽林郎

  昔有霍家奴,姓冯名子都。依倚将军势,调笑酒家胡。胡姬年十五,春日独当垆。长裾连理带,广袖合欢襦。头上蓝田玉,耳后大秦珠。两鬟何窕窕,一世良所无。一鬟五百万,两鬟千万余。不意金吾子,娉婷过我庐。银鞍何煜爚,翠盖空踌蹰。就我求清酒,丝绳提玉壶。就我求珍肴,金盘脍鲤鱼。贻我青铜镜,结我红罗裾。不惜红罗裂,何论轻贱躯。男儿爱后妇,女子重前夫。人生有新故,贵贱不相逾。多谢金吾子,私爱徒区区。【骈丽之词,归宿却极贞正,风之变而不失其正者也。“一鬟五百万”二句,须知不是论鬟。】

  宋子侯

  董娇娆

  洛阳城东路,桃李生路傍。花花自相对,叶叶自相当。春风东北起,花叶正低昂。不知谁家子,提笼行采桑。纤手折其枝,花落何飘颺。请谢彼姝子,何为见损伤。高秋八九月,白露变为霜。终年会飘堕,安得久馨香。秋时自零落,春月复芬芳。何时盛年去,欢爱永相忘。吾欲竟此曲,此曲愁人肠。归来酌美酒,挟瑟上高堂。【大意以花落比盛年之易逝也。婀娜其姿,无穷摇曳。《方舟汉诗说》云:“‘请谢彼姝子’二句,是问词。‘高秋八九月’四句,是姝子答词。‘秋时自零落’四句,又是答姝子之词。正意全在‘吾欲竟此曲’四句,见欢日无多,劝之及时行乐尔。”】

  苏伯玉妻

  盘中诗

  山树高,鸟鸣悲。泉水深,鲤鱼肥。空仓雀,常苦饥。吏人妇,会夫希。出门望,见白衣,谓当是,而更非。还入门,中心悲。北上堂。西入阶。急机绞,杼声催。长叹息,当语谁。君有行,妾念之。出有日,还无期。结巾带,长相思。君忘妾,未知之。妾忘君,罪当治。妾有行,宜知之。黄者金,白者玉。高者山,下者谷。姓者苏,字伯玉。人才多,知谋足。家居长安身在蜀,何惜马蹄归不数。羊肉千斤酒百斛,令君马肥麦与粟。今时人,知四足,与其书,不能读,当从中央周四角。【使伯玉感悔,全在柔婉,不在怨怒,此深于情。君有行,征行也,平声;妾有行,行谊也,去声。似歌谣,似乐府,杂乱成文,而用意忠厚,千秋绝调。】

  窦玄妻

  古怨歌

  玄,状貌绝异。天子使出其妻,妻以公主。妻悲怨,寄书及歌与玄,时人怜之。

  茕茕白兔,东走西顾。衣不如新,人不如故。

  蔡琰

  悲愤诗

  《后汉书》:“琰归董祀后,感伤乱离,追怀悲愤,作诗。”

  汉季失权柄,董卓乱天常。志欲图篡弑,先害诸贤良。逼迫迁旧邦,拥王以自强。海内兴义师,欲共讨不祥。卓众来东下,金甲耀日光。平土人脆弱,来兵皆胡羌。猎野围城邑,所向悉破亡。斩截无孑遗,尸骸相撑拒。马边悬男头,马后载妇女。长驱西入关,迥路险且阻。还顾貌冥冥,肝脾为烂腐。所略有万计,不得令屯聚。或有骨肉俱,欲言不敢号泣行,夜则悲吟坐。欲死不能得,欲生无一可。彼苍者何辜,乃遭此厄祸。边荒举华异,人俗少义理。处所多霜雪,胡风春夏起。翩翩吹我衣,肃肃入我耳。感时念父母,哀叹无终已。有客从外来,闻之常欢喜。迎问其消息,辄复非乡里。邂逅徼时愿,骨肉来迎己。己得自解免,当复弃儿子。天属缀人心,念别无会期。存亡永乖隔,不忍与之辞。儿前抱我颈,问母欲何之。人言母当去,岂复有还时!阿母常仁恻,今何更不慈?我尚未成人,奈何不顾思?见此崩五内,恍惚生狂痴。号呼手抚摩,当发复回疑。兼有同时辈,相送告别离。慕我独得归,哀叫声摧裂。马为立踟蹰,车为不转辙。观者皆歔欷,行路亦呜咽。去去割情恋,遄征日遐迈。悠悠三千里,何时复交会。念我出腹子,胸臆为摧败。既至家人尽,又复无中外。城郭为山林,庭宇生荆艾。白骨不知谁,从横莫覆盖。出门无人声,豺狼嗥且吠。茕茕对孤景,怛咤靡肝肺。登高远眺望,魂神忽飞逝。奄若寿命尽,傍人相宽大。为复强视息,虽生何聊赖?托命于新人,竭心自勖励。流离成鄙贱,常恐复捐废。人生几何时,怀忧终年岁。【段落分明,而灭去脱卸转接痕迹,若断若续,不碎不乱,少陵《奉先咏怀》、《北征》等作,往往似之。激昂酸楚,读去如惊蓬坐振,沙砾自飞,在东汉人中,力量最大。使人忘其失节,而只觉可怜,由情真,亦由情深也。世所传十八拍,时多率句,应属后人拟作。】

  诸葛亮

  梁甫吟

  《三国志》曰:“诸葛亮躬耕陇亩,好为《梁父吟》。”

  步出齐城门,遥望荡阴里。里中有三坟,累累正相似。问是谁家墓,田疆古冶子。力能排南山,文能绝地纪。一朝被谗言,二桃杀三士。谁能为此谋,国相齐晏子。【武侯好吟《梁父》,非必但指此章。或篇帙散落,惟此流传耳。韵用二子字。】

  乐府歌辞

  练时日

  以下七章皆郊祀歌。

  练时日,候有望。炳膋萧,延四方。九重开,灵之斿,垂惠恩,鸿祜休,灵之车,结玄云,驾飞龙,羽旄纷。灵之下,若风马,左苍龙,右白虎,灵之来,神哉沛,先以雨,般【音班。】裔裔。灵之至,庆阴阴,相放怫,【同仿佛。】震淡心。灵已坐,五音饬,虞至旦,承灵亿。牲茧栗,粢盛香,尊桂酒,宾八乡。灵安留,吟青黄,遍观此,眺瑶堂。众嫭并,绰奇丽,颜如荼,兆逐靡。被华文,厕雾谷,曳阿锡,佩珠玉。侠嘉夜,茝兰芳,淡容与,献嘉觞。【古色奇响,幽气灵光,奕奕纸上,屈子《九歌》后,另开面目。“灵之斿”以下,铺排六段,而变幻错综,不板不实,备极飞扬生动。“众嫭”四句,写美人之多,秾丽中则,《招魂》之遗也。此章总叙,下为分献之词。】

  青阳

  青阳开动,根荄以遂,膏润并爱,跂行毕逮。霆声发荣,壧处倾听,枯槁复产,乃成厥命。众庶熙熙,施及夭胎,群生啿【徒感切。】啿,惟春之祺。【四章分祭四时之神,天气时物,无不毕达,直是胸有造化。啿啿,丰厚貌。】

  朱明

  朱明盛长,旉与万物,桐生茂豫,靡有所诎。敷华就实,既阜既昌。登成甫田,百鬼迪尝。广大建祀,肃雍不忘。神若宥之,传世无疆。

  西颢

  西颢沆砀,秋气肃杀,含秀垂颖,续旧不废。【叶发。】奸伪不萌,妖孽伏息,隅辟越远,四貉咸服。既畏兹威,惟慕纯德,附而不骄,正心翊翊。【“续旧不废”,言肃杀中有生机也。】

  玄冥

  玄冥凌阴,蛰虫盖藏。草木零落,抵冬降霜。易乱除邪,革正异俗。兆民反本,抱素怀朴。条理信义,望礼五岳。籍敛之时,掩收嘉谷。

  惟泰元

  惟泰元尊,媪神蕃釐。【音熙。】经纬天地,作成四时,精建日月,星辰度理。阴阳五行,周而复始。云风雷电,降甘露雨。百姓蕃滋,咸循厥绪。继统恭勤,顺皇之德,鸾路龙鳞,罔不肸饰。嘉笾列陈,庶几宴享。灭除凶灾,烈腾八荒。钟鼓笙竽,云舞翔翔。招摇灵旗,九夷宾将。【泰元,天也。媪神,地也。言天神至尊,地神多福。】

  天马

  《汉书》:“元鼎四年秋,马生渥洼水中,作《天马之歌》。太初四年春,贰师将军李广利斩大宛王首,获汗血马,作《西极天马之歌》。”

  太一况,【同赐。】天马下,沾赤汗,沫流赭。志俶傥,精权奇,籋【音业。】浮云,晻上驰。体容与,迣【即逝字。】万里,今安匹,龙为友。

  天马徕,从西极,涉流沙,九夷服。天马徕,出泉水,虎脊两,化若鬼。天马徕,历无皂。经千里,循东道。天马徕,执徐时,将摇举,谁与期。天马徕,开远门,竦予身,逝昆仑。天马徕,龙之媒,游阊阖,观玉台。【“历无皂”,同草。言历不毛之地,而来东道也。】

  战城南

  以下四章铙歌。汉鼓吹铙歌十八曲,字多讹误,兹录其可诵者。

  战城南,死郭北,野死不葬乌可食。为我谓乌:“且为客豪。野死谅不葬,腐肉安能去子逃?”水声激激,蒲苇冥冥。枭骑战斗死,驽马裴徊鸣。梁筑室,何以南,何以北,禾黍不获君何食?愿为忠臣安可得?思子良臣,良臣诚可思,朝行出攻,暮不夜归。【太白云:“野战格斗死,败马嘶鸣向天悲。”自是唐人语,读“枭骑”十字,何等简劲!末段思良臣,怀颇慕之意也。】

  临高台

  临高台以轩,下有清水清且寒。江有香草目以兰,黄鹄高飞离哉翻。关弓射鹄,令吾主寿万年,收中吾。【刘履曰:“篇末‘收中吾’三字,其义未详。疑曲调之余声,如《乐录》所谓‘羊无夷”、‘伊那何’之类。”】

  有所思

  有所思,乃在大海南。何用问遗君,双珠玳瑁簪,用玉绍缭之。闻君有他心,拉杂摧烧之。摧烧之,当风扬其灰。从今已往,勿复相思。相思与君绝!鸡鸣狗吠,兄嫂当知之。妃呼豨,秋风肃肃晨风飔,东方须臾高知之。【怨而怒矣,然怒之初,正望之深,末段余情无尽。此亦人臣思君而托言者也。“鸡鸣”二句,即野有死麇章意。】

  上邪

  上邪!我欲与君相知,长命无绝衰。山无陵,江水为竭,冬雷震震,夏雨雪,天地合,乃敢与君绝!【“山无陵”下共五事,重叠言之,而不见其排,何笔力之横也!】

  箜篌引

  以下六章相和曲。《古今注》:朝鲜津卒霍里子高,晨起刺船,有一白首狂夫,披发提壶,乱流而渡,其妻随而止之,不及,遂堕河而死。妻援箜篌而鼓之,作“公无渡河”之曲,声甚凄怆。曲终,亦投河而死。子高还,语其妻丽玉,丽玉伤之,乃引箜篌而写其声,名曰《箜篌引》。

  公无渡河,公竟渡河。堕河而死,当奈公何。【缠绵凄恻,《黄牛峡谣》,音节相似。】

  江南

  梁武帝作《江南弄》本此。

  江南可采莲,莲叶何田田,鱼戏莲叶间。鱼戏莲叶东,鱼戏莲叶西。鱼戏莲叶南,鱼戏莲叶北。【奇格。】

  薤露歌

  《古今注》:“《薤露》、《蒿里》,本出田横门人。横自杀,门人伤之,为作悲歌二章。孝武时,李延年分为二曲,《薤露》送王公贵人,《蒿里》送士大夫庶人。使挽柩者歌之,亦谓之挽歌。”

  薤上露,何易晞。露晞明朝更复落,人死一去何时归?

  蒿里曲

  蒿里谁家地,聚敛魂魄无贤愚。鬼伯一何相催促,人命不得少踟蹰。

  鸡鸣

  此曲前后辞不相属,盖采诗入乐,合而成章,非有错简紊误也。后多放(仿)此。

  鸡鸣高树巅,狗吠深宫中。荡子何所之,天下方太平。刑法非有贷,柔协正乱名。黄金为君门。璧玉为轩堂。上有双樽酒,作使邯郸倡。刘王碧青甓,后出郭门王。舍后有方池,池中双鸳鸯。鸳鸯七十二,罗列自成行。鸣声何啾啾,闻我殿东厢。兄弟四五人,皆为侍中郎。五日一时来,观者满路傍。黄金络马头,颎颎何煌煌。桃生露井上,李树生桃傍。虫来啮桃根,李树代桃僵。树木身相代,兄弟还相忘。

  陌上桑

  一曰《艳歌罗敷行》。

  日出东南隅,照我秦氏楼。秦氏有好女,自名为罗敷。罗敷善蚕桑,采桑城南隅。青丝为笼系,桂枝为笼钩。头上倭堕髻,耳中明月珠。缃绮为下裙,紫绮为上襦。行者见罗敷,下担捋髭须。少年见罗敷,脱帽著帩头。耕者忘其犁,锄者忘其锄。来归相怨怒,但坐观罗敷。【一解。】使君从南来,五马立踟蹰。使君遣吏往,问是谁家姝。“秦氏有好女,自名为罗敷。”“罗敷年几何?”“二十尚不足,十五颇有余。”使君谢罗敷:“宁可共载不?”罗敷前置辞:“使君一何愚!使君自有妇,罗敷自有夫,【二解。】东方千余骑,夫婿居上头。何用识夫婿,白马从骊驹。青丝系马尾,黄金络马头。腰中鹿卢剑,可直千万余。十五府小史,二十朝大夫。三十侍中郎,四十专城居。为人洁白皙,鬑鬑颇有须。盈盈公府步,冉冉府中趋。坐中数千人,皆言夫婿殊。”【三解。铺陈秾至,与辛延年《羽林郎》一副笔墨。此乐府体别于古诗者在此。“但坐观罗敷”,坐,缘也,归家怨怒室人,缘观罗敷之故也。“谢使君”四语,大义凛然。末段盛称夫婿,若有章法,若无章法,是古人入神处。篇中韵脚,三头字,二隔字,二余字,二夫字,二须字。】

  长歌行

  连下章平调曲。《古诗》云:“长歌正激烈”。魏文《燕歌行》云:“短歌微吟不能长。”言声有长短也。

  青青园中葵,朝露待日晞。阳春布德泽,万物生光辉。常恐秋节至,焜黄华叶衰。百川东到海,何时复西归。少壮不努力,老大徒伤悲。【“阳春”十字,正大光明。谢康乐“皇心美阳泽,万象咸光昭”,庶几相类。】

  君子行

  君子防未然,不处嫌疑间。瓜田不纳履,李下不正冠。嫂叔不亲授,长幼不比肩。劳谦得其柄,和光甚独难。周公下白屋,吐哺不及餐。一沐三握发,后世称圣贤。

  相逢行

  清调曲。一云“相逢狭路间”行,亦云“长安有狭斜”行。

  相逢狭路间,道隘不容车。不知何年少,夹毂问君家。君家诚易知,易知复难忘。黄金为君门,白玉为君堂。堂上置樽酒,作使邯郸倡。中庭生桂树,华灯何煌煌。兄弟两三人,中子为侍郎。五日一来归,道上自生光。黄金络马头,观者盈道傍。入门时左顾,但见双鸳鸯。鸳鸯七十二,罗列自成行。音声何■〈口雝〉■〈口雝〉,鹤鸣东西厢。大妇织罗绮,中妇织流黄。小妇无所为,挟瑟上高堂。丈人且安坐,调丝方未央。【末段后人摘为《三妇艳》。】

  善哉行

  以下六章瑟调曲。

  来日大难,口燥唇干。今日相乐,皆当喜欢。【一解。】经历名山,芝草翻翻。仙人王乔,奉药一丸。【二解。】自惜袖短,内读纳。手知寒。惭无灵辄,以报赵宣。【三解。】月没参横,北斗阑干。亲交在门,饥不及餐。【四解。】欢日尚少,戚日苦多。以何忘忧,弹筝酒歌。【五解。】淮南八公,要道不烦。参驾六龙,游戏云端。【六解。此言来者难知,劝人及时行乐也。忽云求仙,忽云报恩,忽云结客,忽云饮酒,而仍终之以游仙。无伦无次,杳渺恍惚。】

  西门行

  出西门,步念之。今日不作乐,当待何时。【一解。】夫为乐,为乐当及时。何能坐愁怫郁,当复待来兹。【二解。】饮醇酒,炙肥牛。请呼心所欢,何用解愁忧。【三解。】人生不满百,常怀千岁忧。昼短而夜长,何不秉烛游。【四解。】自非仙人王子乔,计会寿命难与期。自非仙人王子乔,计会寿命难与期。【五解。】人寿非金石,年命安可期。贪财爱惜费,但为后世嗤。【六解。】

  东门行

  出东门,不顾归。来入门,怅欲悲。盎中无斗储,还视桁上无悬衣。拔剑出门去,儿女牵衣啼。他家但愿富贵,贱妾与君共餔糜,共餔糜。上用沧浪天,故下为黄口小儿,【句中或有讹字。】今时清廉,难犯教言,君复自爱莫为非!今时清廉,难犯教言,君复自爱莫为非!行吾去为迟。平慎行,望君归。【始劝其安贫贱,继恐其触法纲,餔糜之妇,岂在咏雄雉者下哉。既出复归,既归复出,功名儿女,缠绵胸次。情事展转如见。叠说一过,丁宁反覆之意,末二句进以禔身,涉世之道也。魏文《艳歌何尝行》:“上惭沧浪之天,下顾黄口小儿”本此,而语句易解。】

  孤儿行

  孤儿生,孤儿遇生,命当独苦!父母在时,乘坚车,驾驷马。【叶满补切。】父母已去,兄嫂令我行贾。南到九江,东到齐与鲁。腊月来归,下敢自言苦。头多虮虱,面目多尘。大兄言办饭,大嫂言视马。【叶。】上高堂,行取【同趋。】殿下堂。【古屋之高严,通呼为殿。】孤儿泪下如雨。使我朝行汲,暮得水来归。手为错,足下无菲。【左传,共其扉履,扉,草履也,通作菲。】怆怆履霜,中多蒺藜,拔断蒺藜肠肉中,怆欲悲。泪下渫渫,清涕累累。冬无复襦,夏无单衣。居生不乐,不如早去,下从地下黄泉。春风动,草萌芽。三月蚕桑,六月收瓜。将是瓜车,来到还家。瓜车反【同翻。】覆,助我者少,啖瓜者多。愿还我蒂,独且急归。兄与嫂严,当兴较计。乱曰:“里中一何譊譊。愿欲寄尺书,将与地下父母,兄嫂难与久居。【极琐碎,极古奥,断续无端,起落无迹,泪痕痕血点,结掇而成,乐府中有此一种笔墨。始用庆韵,次用支微齐韵,次用歌麻韵,次用霁韵,末用鱼韵,惟中间有双句不在韵内者,如“头多虮虱,面目多尘”,“上高堂,行取殿下堂”等句,故摇曳其词,令读者不能骤领耳。“黄泉”句乃一韵住处,今不归入韵内,岂中间或有脱落耶。至多与瓜,本属一韵,不蒂字乃另换韵也。】

  艳歌行

  翩翩堂前燕,冬藏夏来见。兄弟两三人,流宕在他县。故衣谁当补,新衣谁当绽。赖得贤主人,览取为我绽。夫婿从门来,斜柯西北盼。语卿且勿盼,水清石自见。石见何累累,远行不如归。【此居停之妇,为客缝衣,而其夫不免见疑也,末云水清石见。心迹固明矣,然岂如归去为得计乎?贤主人指居停妇言。与《陌上桑》、《羽林郎》同见性情之正,《国风》之遗也。】

  陇西行

  一云《步出夏门行》。

  天上何所有,历历种白榆。桂树夹道生,青龙对道隅。凤凰鸣啾啾,一母将九雏。顾视世间人,为乐甚独殊。好妇出迎客,颜色正敷愉。伸腰再拜跪,问客平安不。请客北堂上,坐客毡氍毹。清白各异樽,酒上正华疏。酌酒持与客,客言主人持。却略再拜跪,然后持一杯。谈笑未及竟,左顾敕中厨。促令办粗饭,慎莫使稽留。废礼送客出,盈盈府中趋。送客亦不远,足不过门枢。取妇得如此,齐姜亦不如。健妇持门户,亦胜一丈夫。【起八句若不相属,古诗往往有之,不必曲为之说。却略。奉觞在手,退而行礼,故稍却也。写得婉媚,通体极赞中,自有讽意。】

  淮南王篇

  舞曲歌辞。

  淮南王,自言尊,百尺高楼与天连。后园凿井银作床,金瓶素绠汲寒浆,汲寒浆,饮少年。少年窈窕何能贤,扬声悲歌音绝天。我欲渡河河无梁,愿化双黄鹄还故乡。还故乡,入故里。徘徊故乡,苦身不已,繁舞寄声无不泰,徘徊桑梓游天外。【此哀淮南求仙无益,而以身受祸也。措词特隐。】

  伤歌行

  以下杂曲歌辞。

  昭昭素明月,辉光烛我床。忧人不能寐,耿耿夜何长。微风吹闺闼,罗帷自飘扬。揽衣曳长带,屣履下高堂。东西安所之,徘徊以徬徨。春鸟翻南飞,翩翩独翱翔。悲声命俦匹,哀鸣伤我肠。感物怀所思,泣涕忽沾裳。伫立吐高吟,舒愤诉穹苍。【不追琢,不属对,和平中自有骨力。】

  悲歌

  悲歌可以当泣,远望可以当归。思念故乡,郁郁累累。欲归家无人,欲渡河无船。心思不能言,肠中车轮转。【起最矫健,李太白时或有之。】

  枯鱼过河泣

  枯鱼过河泣,何时悔复及!作书与鲂鱮,相教慎出入。【汉人每有此种奇想。】

  古歌

  秋风萧萧愁杀人,出亦愁,入亦愁,座中何人,谁不怀忧?令我白头。胡地多飙风,树木何修修。离家日趋远,衣带日趋缓,心思不能言,肠中车轮转。【苍莽而东,飘风急雨,不可遏抑。“离家”二句,同《行行重行行》篇,然以字浑。趋字新,此古诗乐府之别。】

  古八变歌

  北风初秋至,吹我章华台。浮云多暮色,似从崦嵫来。枯桑鸣中林,络纬响空阶。翩翩飞蓬征,怆怆游子怀。故乡不可见,长望始此回。

  猛虎行

  饥不从猛虎食,暮不从野雀栖。野雀安无巢,游子为谁骄?

  乐府

  行胡从何方?列国持何来?氍毹■〈毛荅〉■〈毛登〉五木香,迷迭艾及都梁。【首二句指入贡之人言,本用隔韵。而第二句以来字间之,首句用韵,次句不入韵也。】

●古诗源卷四

○汉诗

  古诗为焦仲卿妻作

  汉末建安中,庐江府小吏焦仲卿妻刘氏,为仲卿母所遣,自誓不嫁,其家逼之,乃投水而死。仲卿闻之,亦自缢于庭树。时伤之,为诗云尔。

  孔雀东南飞,五里一徘徊。十三能织素,十四学裁衣,十五弹箜篌,十六诵诗书。十七为君妇,心中常苦悲。君既为府吏,守节情不移。贱妾留空房,相见常日稀。鸡鸣入机织,夜夜不得息。三日断五匹,大人故嫌迟。非为织作迟,君家妇难为。妾不堪驱使,徒留无所施。便可白公姥,及时相遣归。府吏得闻之,堂上启阿母:“儿已薄禄相,幸复得此妇。结发同枕席,黄泉共为友。共事二三年,始尔未为久。女行无偏斜,何意致不厚?”阿母谓府吏:“何乃太区区!此妇无礼节,举动自专由。吾意久怀忿,汝岂得自由?东家有贤女,自名秦罗敷。可怜体无比,阿母为汝求。便可速遣之,遣去慎莫留!”府吏长跪答,伏惟启阿母:“今若遣此妇,终老不复取。”阿母得闻之。椎床便大怒:“小子无所畏,何敢助妇语!吾已失恩义,会不相从许!”府吏默无声,再拜还入户。举言谓新妇,哽咽不能语:“我自不驱卿,逼迫有阿母。卿但暂还家,吾今且报府。不久当归还,还必相迎取。以此下心意,慎勿违吾语。”新妇谓府吏:“勿复重纷纭。往昔初阳岁,谢家来贵门。奉事循公姥,进止敢自专?昼夜勤作息,伶俜萦苦辛。谓言无罪过,供养卒大恩。仍更被驱遣,何言复来还?妾有绣腰襦,葳蕤自生光。红罗复斗账,四角垂香囊。箱帘六七十,绿碧青丝绳,物物各自异,种种在其中。人贱物亦鄙,不足迎后人。留待作遗施,于今无会因。时时为安慰,久久莫相忘。”鸡鸣外欲曙,新妇起严妆。著我绣裌裙,事事四五通。足下蹑丝履,头上玳瑁光。腰若流纨素,耳著明月。指如削葱根,口如含朱丹。纤纤作细步,精妙世无双。上堂拜阿母,母听去不止。“昔作女儿时,生小出野里,本自无教训,兼愧贵家子。受母钱帛多,不堪母驱使。今日还家去,念母劳家里。”却与小姑别,泪落连珠子:“新妇初来时,小姑始扶床。今日被驱遣,小姑如我长。勤心养公姥,好自相扶将。初七及下九,嬉戏莫相忘。”出门登车去,涕落百余行。府吏马在前,新妇车在后。隐隐何甸甸,俱会大道口。下马入车中,低头共耳语:“誓不相隔卿,且暂还家去。吾今且赴府,不久当还归,誓天不相负。”新妇谓府吏:“感君区区怀。君既若见录,不久望君来。君当作磐石,妾当作蒲苇。蒲苇纫如丝,磐石无转移。我有亲父兄,性行暴如雷。恐不任我意,逆以煎我怀。”举手长劳劳,二情同依依。入门上家堂,进退无颜仪。阿母大拊掌:“不图子自归!十三教汝织,十四能裁衣,十五弹箜篌,十六知礼仪,十七遣汝嫁,谓言无誓违。汝今何罪过,不迎而自归?”“兰芝惭阿母,儿实无罪过。”阿母大悲摧。还家十余日,县令遣媒来,云有第三郎,窈窕世无双,年始十八九,便言多令才。阿母谓阿女:“汝可去应之?”阿女衔泪答:“兰芝初还时,府吏见丁宁,结誓不别离。今日违情义,恐此事非奇。自可断来信,徐徐更谓之。”阿母白谋人:“贫贱有此女,始适还家门。不堪吏人妇,岂合令郎君。幸可广问讯,不得便相许。”媒人去数日,寻遣丞请还。说有兰家女,承籍有宦官。云有第五郎,娇逸未有婚。遣丞为媒人,主簿通语言,直说太守家,有此令郎君,既欲结大义,故遣来贵门。阿母谢媒人:“女子先有誓,老姥岂敢言?”阿兄得闻之,怅然心中烦,举言谓阿妹:“作计何不量!先嫁得府吏,后嫁得郎君,否泰如天地,足以荣汝身。不嫁义郎体,其往欲何云?”兰芝仰头答:“理实如兄言。谢家事夫婿,中道还兄门,处分适兄意,那得自任专?虽与府吏要,渠会永无缘。登即相许和,便可作婚姻。”媒人下床去,诺诺复尔尔。还部白府君:“下官奉使命。言谈大有缘。”府君得闻之,心中大欢喜。视历复开书,便利此月内,六合正相应。“良吉三十日,今已二十七。卿可去成婚。”交语速装束,络绎如浮云。青雀白鹄舫,四角龙子幡,婀娜随风转。金车玉作轮,踯躅青骢马,流苏金缕鞍。赍钱三百万,皆用青丝穿。杂彩三百匹,交广市鲑珍。从人四五百,郁郁登郡门。阿母谓阿女:适得府君书,明日来迎汝。何不作衣裳,莫令事不举。”阿女默无声,手巾掩口啼,泪落便如泻。移我琉璃榻,出置前窗下。左手持刀尺,右手执绫罗。朝成绣裌裙,晚成单罗衫。晻晻日欲暝,愁思出门啼。府吏闻此变,因求假暂归。未至二三里,摧藏马悲哀。新妇识马声,蹑履相逢迎。怅然遥相望,知是故人来。举手拍马鞍,嗟叹使心伤。“自君别我后,人事不可量。果不如先愿,又非君所详。我有亲父母,逼迫兼弟兄,以我应他人,君还何所望?”府吏谓新妇:“贺卿得高迁。磐石方且厚,可以卒千年。蒲苇一时纫,便作旦夕间。卿当日胜贵,吾独向黄泉。”新妇谓府吏:“何意出此言!同是被逼迫,君尔妾亦然。黄泉下相见,勿违今日言。”执手分道去,各各还家门。生人作死别,恨恨那可论!念与世间辞,千万不复全。府吏还家去,上堂拜阿母:“今日大风寒,寒风摧树木,严霜结庭兰。儿今日冥冥,令母在后单。故作不良计,勿复怨鬼神。命如南山石,四体康且直。”阿母得闻之,零泪应声落:“汝是大家子,仕宦于台阁。慎勿为妇死,贵贱情何薄?东家有贤女,窈窕艳城郭。阿母为汝求,便复在旦夕。”府吏再拜还,长叹空房中,作计乃尔立。转头向户里,渐见愁煎迫。其日牛马嘶,新妇入青庐。奄奄黄昏后,寂寂人定初。“我命绝今日,魂去尸长留。”揽裙脱丝履,举身赴清池。府吏闻此事,心知长别离。徘徊庭树下,自挂东南枝。两家求合葬,合葬华山傍。东西植松柏,左右种梧桐。枝枝相覆盖,叶叶相交通。中有双飞鸟,自名为鸳鸯。仰头相向鸣,夜夜达五更。行人驻足听,寡妇起彷徨。多谢后世人。戒之慎勿忘。【共一千七百八十五字,古今第一首长诗也。淋淋漓漓,反反覆覆,杂述十数人口中语,而各肖其声音面目,岂非化工之笔?长篇诗若平平叙去,恐无色泽,中间须点染华缛,五色陆离,使读者心目俱炫,如篇中新妇出门时,“妾有绣罗襦”一段,太守择日后,“青雀白鹄舫”一段是也。作诗贵剪裁。入手若叙两家家世,末段若叙两家如何悲恸,岂不冗漫拖沓?故竟以一二语了之,极长诗中具有剪裁也。别小姑一段,悲怆之中,复极温厚,风人之旨,固应尔耳。唐人作《弃妇》篇,直用其语云:“忆我初来时,小姑始扶床,今别小姑去,小姑如我长。”下忽接二语云:“回头语小姑,莫嫁如兄夫。”轻薄无余味矣,故君子立言有则。“否泰如天地”一语,小人但慕富贵,不顾礼义,实有此口吻。蒲苇磐石,即以新妇语诮之,乐府中每多此种章法。】

  古诗十九首

  十九首非一人一时作,《玉台》以中几章为枚乘,《文心雕龙》以《孤竹》一篇为傅毅之词,《昭明》以不知姓氏,统名为古诗,从《昭明》为允。

  行行重行行,与君生别离。相去万余里,各在天一涯。道路阻且长,会面安可知。胡马依北风,越鸟巢南枝。相去日已远。衣带日已缓。浮云蔽白日,游子不顾反。思君令人老,岁月忽已晚,弃捐勿复道。努力加餐饭。【起是俚语,极韵。陆贾曰:“邪臣之蔽贤,犹浮云之障日月。”古《杨柳行》曰:“谗邪害公正,浮云蔽白日。”“思君令人老”,本《小弁》“维忧用老”句。】

  青青河畔草,郁郁园中柳。盈盈楼上女,皎皎当窗牖。娥娥红粉妆,纤纤出素手。昔为倡家女,今为荡子妇。荡子行不归,空床难独守。【用叠字,从卫《硕人》“河水洋洋,北流活活”一章化出。】

  青青陵上柏,磊磊礀中石。人生天地间,忽如远行客。斗酒相娱乐,聊厚不为薄。驱车策驽马,游戏宛与洛。洛中何郁郁,冠带自相索。长衢罗夹巷,王侯多第宅。两宫遥相望,双阙百余尺。极宴娱心意,戚戚何所迫。【起言柏与石长存,而人异于树石也。】

  日良宴会,欢乐难具陈。弹筝奋逸响,新声妙入神。令德唱高言,识曲听其真。齐心同所愿,含意俱未申。人生寄一世,奄忽若飙尘。何不策高足,先据要路津。无为守穷贱,轗轲长苦辛。【据要津乃诡词也,古人感愤,每有此种。】

  西北有高楼,上与浮云齐。交疏结绮窗,阿阁三重阶。上有弦歌声,音响一何悲。谁能为此曲,无乃杞梁妻。清商随风发,中曲正徘徊。一弹再三叹,慷慨有余哀。不惜歌者苦,但伤知音稀。愿为双鸣鹤。奋翅起高飞。【“但伤知音稀”,与“识曲听其真”同意。】

  涉江采芙蓉,兰泽多芳草。采之欲遗谁,所思在远道。还顾望旧乡,长路漫浩浩。同心而离居,忧伤以终老。

  明月皎夜光,促织鸣东壁。玉衡指孟冬,众星何历历。白露沾野草,时节忽复易。秋蝉鸣树间,玄鸟逝安适。昔我同门友,高举振六翮。不念携手好,弃我如遗迹。南箕北有斗,牵牛不负轭。良无磐石固,虚名复何益。【“南箕”二语,言有名而无实也,此兴意与“玉衡指孟冬”正用者自别。】

  冉冉孤生竹,结根泰山阿。与君为新婚,兔丝附女罗。兔丝生有时,夫妇会有宜。千里远结婚,悠悠隔山陂。思君令人老,轩车来何迟。伤彼蕙兰花,含英扬光辉。过时而不采,将随秋草萎。君亮执高节,贱妾亦何为?【起四句比中用比。“悠悠隔山陂”,情已离矣,而望之无已,不敢作决绝怨恨语,温厚之至也。】

  庭中有奇树,绿叶发华滋。攀条折其荣,将以遗所思,馨香盈怀袖,路远莫致之。此物何足贵,但感别经时。【“何足贵”,《文选》作《何足贡》,谓献也,较有味。】

  迢迢牵牛星,皎皎河汉女。纤纤擢素手,札札弄机杼。终日不成章,泣涕零如雨。河汉清且浅,相去复几许?盈盈一水间,脉脉不得语。【相近而不能达情,弥复可伤,此亦托兴之词。】

  回车驾言迈,悠悠涉长道。四顾何茫茫,东风摇百草,所遇无故物,焉得不速老?盛衰各有时,立身苦不早。人生非金石,岂能长寿考?奄忽随物化,荣名以为宝。【不得已而托之身后之名,与托之游仙饮酒者同意。】

  东城高且长,逶迤自相属。回风动地起,秋草萋已绿。四时更变化,岁暮一何速。晨风怀苦心,蟋蟀伤局促。荡涤放情志,何为自结束。燕赵多佳人,美者颜如玉。被服罗裳衣,当户理清曲。音响一何悲,弦急知柱促。驰情整中带,沉吟聊踯躅。思为双飞燕,衔泥巢君屋。【或以“燕赵多佳人”下,另作一首。】

  驱车上东门,遥望郭北墓。白杨何萧萧,松柏夹广路。下有陈死人,杳杳即长暮。潜寐黄泉下,千载永不寤。浩浩阴阳移,年命如朝露。人生忽如寄,寿无金石固。万岁更相送,贤圣莫能度。服食求神仙,多为药所误。不如饮美酒,被服纨与素。【《庄子》曰:“人而无人道,是谓陈人也。”郭象曰:“陈,久也。”】

  去者日以疏,来者日以亲。出郭门直视,但见丘与坟。古墓犁为田,松柏摧为薪。白杨多悲风,萧萧愁杀人。思还故里闾,欲归道无因。

  生年不满百,常怀千岁忧。昼短苦夜长,何不秉烛游。为乐当及时,何能待来兹。愚者爱惜费,但为后世嗤。仙人王子乔,难可与等期。

  凛凛岁云暮,蝼蛄夕鸣悲。凉风率已厉,游子寒无衣。锦衾遗洛浦,同袍与我违。独宿累长夜,梦想见容辉。良人惟古欢,枉驾惠前绥。愿得常巧笑,携手同车归。既来不须臾,又不处重闱。亮无晨风翼,焉能凌风飞。盼睐以适意,引领遥相睎。徙倚怀感伤,垂涕沾双扉。【此相见无期,托之于梦也,“既来不须臾”二语,恍恍惚惚,写梦境入神。】

  孟冬寒气至,北风何惨慄。愁多知夜长,仰观众星列。三五明月满,四五蟾兔缺。客从远方来,遗我一书札。上言长相思,下言久离别。置书怀袖中,三岁字不灭。一心抱区区,惧君不识察。【置书怀袖,亲之也,三岁不灭,永之也,然区区之诚,君岂能察识哉!用意措词,微而婉矣。】

  客从远方来,遗我一端绮。相去万余里,故人心尚尔。文彩双鸳鸯,裁为合欢被。著【掌吕反。】以长相思,缘【以绢切。】以结不解。以胶投漆中,谁能别离此?

  明月何皎皎,照我罗床帏。忧愁不能寐,揽衣起徘徊。客行虽云乐,不如早旋归。出户独彷徨,愁思当告谁。引领还入房,泪下沾裳衣。【十九首大率逐臣、弃妻、朋友阔绝死生新故之感,中间或寓言、或显言,反覆低徊,抑扬不尽,使读者悲感无端,油然善入,此国风之遗也。言情不尽,其情乃长,后人患在好尽耳。读十九首应有会心。清和平远,不必奇辟之思、惊险之句,而汉京诸古诗皆在其下,五言中方员之至。】

  拟苏李诗

  晨风鸣北林,熠熠东南飞。愿言所相思,日暮不垂帷。明月照高楼,想见余光辉。玄鸟夜过庭,仿佛能复飞。褰裳路踟蹰,彷徨不能归。浮云日千里,安知我心悲?思得琼树枝,以解长渴饥。【拟诗非不高古,然乏和宛之音,去苏李已远。】

  凤皇鸣高冈,有翼不好飞。安知凤皇德,贵其来见稀。【阙。】

  红尘蔽天地,白日何冥冥。微阴盛杀气,凄风从此兴。招摇西北指,天汉东南倾。嗟尔穹庐子,独行如履冰。短褐中无绪,带断续以绳。泻水置瓶中,焉辨淄与渑?巢父不洗耳,后世有何称!

  古诗

  上山采蘼芜,下山逢故夫。长跪问故夫,新人复何如?新人虽言好,未若故人姝。颜色类相似,手爪不相如。新人从门入,故人从阁去。新人工织缣,故人工织素。织缣日一匹,织素五丈余。将缣来比素,新人不如故。【手爪谓手所织。】

  悲与亲友别,气结不能言。赠子以自爱,道远会见难。人生无几时,颠沛在其间。念子弃我去,新心有所欢。结志青云上,何时复来还?

  古诗三首

  橘柚垂华实,乃在深山侧。闻君好我甘,窃独自雕饰。委身玉盘中,历年冀见食。芳菲不相投,青黄忽改色。人傥欲我知,因君为羽翼。【区区之诚,冀达高远,通首托物寄兴,不露正意。弥见其高。】

  十五从军征,八十始得归。道逢乡里人,家中有阿谁?遥望是君家,松柏冢累累。兔从狗窦入,雉从梁上飞。中庭生旅谷,井上生旅葵。烹谷持作饭,采葵持作羹。羹饭一时熟,不知贻阿谁。出门东向望,泪落沾我衣。【遥望二句,乃乡人答词,下从征者入门之词,古人诗每灭去针线痕迹。通章用支微韵,而“烹谷持作饭,采葵持作羹”二句,不入韵中,最是摇曳之至,非古人不能用韵也。】

  新树兰蕙葩,杂用杜蘅草。终朝采其华,日暮不盈抱。采之欲遗谁?所思在远道。馨香易销歇,繁华会枯槁。怅望何所言,临风送怀抱。【韵脚两用抱字。】

  古诗一首

  步出城东门,遥望江南路。前日风雪中,故人从此去。我欲渡河水,河水深无梁。愿为双黄鹄,高飞还故乡。

  古诗二首

  采葵莫伤根,伤根葵不生。结交莫羞贫,羞贫友不成。

  甘瓜抱苦蒂,美枣生荆棘。利傍有倚刀,贪人还自贼。

  古绝句

  藁砧今何在?山上复有山。何当大刀头,破镜飞上天。【通首隐语。】

  菟丝从长风,根茎无断绝。无情尚不离,有情安可别。

  杂歌谣辞

  古歌

  高田种小麦,终久不成穗。男儿在他乡,焉得不憔悴。【兴意若相关若不相关,所以为妙。】

  淮南民歌

  《汉书》:淮南厉王长,高帝少子也。废法不轨,文帝徙之蜀严,道死,民作歌云。下杂录歌谣。

  一尺布,尚可缝。一斗粟,尚可舂。兄弟二人不相容。

  颍川歌

  《汉书》:灌夫不好文学,喜任侠,重然诺,诸所与交通,无非豪杰大猾,家累数千万,食客日数十百人,陂池田园,宗族宾客,为权利横颍川,颍川儿歌之。

  颍水清,灌氏宁。颍水浊,灌氏族。

  郑白渠歌

  《汉书》:汉大始中,赵中大夫白公奏穿郑国渠,引泾水溉田,民得其饶,歌曰:

  田于何所,池阳谷口。郑国在前,白渠起后。举锸如云,决渠为雨。泾水一石,其泥数斗。且溉且粪,长我禾黍。衣食京师,亿万之口。

  鲍司隶歌

  《列异传》:云:鲍宣,宣子永,永子昱,三世皆为司隶,而乘一骢马,京师人歌之。

  鲍氏骢,三人司隶再入公。马虽瘦,行步工。

  陇头歌二首

  陇头流水,流离四下。念我行役,飘然旷野。登高望远,涕零双堕。

  陇头流水,鸣声幽咽。遥望秦川,肝肠断绝。

  牢石歌

  《汉书·佞幸传》:元帝时,宦官石显为中书令,与仆射牢梁、少府五鹿充宗,结为党友,附倚者皆得宠位,民歌云云。

  牢耶石耶,五鹿客耶?印何累累,绶若若耶?

  五鹿歌

  《汉书》:五鹿充宗贵幸,为《梁丘易》,元帝令与诸易家辨论,诸儒莫能抗。有荐朱云者,摄齐登堂,抗首而讲,音动左右,故诸儒语曰:

  五鹿岳岳,朱云折其角。

  匈奴歌

  《十道志》:焉支、祁连二山,皆美水草,匈奴失之,乃作此歌。

  失我焉支山,令我妇女无颜色。失我祁连山,使我六畜不蕃息。

  成帝时燕燕童谣

  《汉书·五行志》:成帝为微行出游,常与富平侯张放俱,称富平侯家人。过河阳主,作乐,见舞者赵飞燕而幸之。后宫皇子,卒皆诛死。

  燕,燕,尾涎涎,张公子,时相见,木门仓琅根,燕飞来,啄皇孙,皇孙死,燕啄矢。【首二燕字,一字一句,张公子,谓富平侯也。】

  逐弹丸

  《西京杂记》:韩嫣好弹,以金为丸,京师儿童,闻嫣出弹,辄随之。

  苦饥寒,逐弹丸。

  成帝时歌谣

  见《汉书·五行志》。

  邪径败良田,谗口乱善人。桂树华不实,黄爵巢其颠。昔为人所羡,今为人所怜。【桂,赤色,汉家象,华不实,无继嗣也。王莽自谓黄象,巢其颠,篡形已成也。】

  投阁

  《汉书》:王莽篡位后,复上符命者,莽尽诛之。时扬雄校书天禄阁,使者欲收雄,雄恐,乃从阁自投,几死,京师语曰:

  惟寂寞,自投阁,爰清静,作符命。

  灶下养

  《东观汉纪》:更始在长安,所授官爵,皆群小贾人,或膳夫、庖人,长安语曰:

  灶下养,中郎将。烂羊胃,骑都尉。烂羊头,关内侯。

  城中谣

  《后汉书》:前世长安城中谣言,改政移风,必有其本,上之所好,下必甚焉。

  城中好高髻,四方高一尺。城中好广眉,四方且半额。城中好大袖,四方全匹帛。

  蜀中童谣

  《后汉书·五行志》:世祖时建武六年蜀中童谣。是时公孙述僭号于蜀,时人窃言王莽称黄,述欲继之,故称白,五铢,汉家物,明当复也,述遂诛灭。

  黄牛白腹,五铢当复。

  顺帝时京都童谣

  《后汉书·五行志》:李固争清河王当立,梁冀立蠡吾侯。固幽毙于狱,而胡广、赵戒、袁汤等一时封侯。京都童谣云:

  直如弦,死道边。曲如钩,反封侯。

  考城谚

  《后汉书》:仇览,考城人,为蒲亭长。初到亭,有陈元之母,告元不孝,览亲到元家,为陈人伦孝行,谕以祸福。元卒成孝子,乡邑为之谚曰:

  父母何在在我庭,化我鸱枭哺所生。

  桓帝初小麦童谣

  《后汉书·五行志》:元嘉中,凉州诸羌,一时俱反,命将出师,每战常负,故云云:小麦青青大麦枯,谁当获者妇与姑。丈夫何在西击胡。

  吏置马,君具车,请为诸君鼓咙胡。【“鼓咙胡”,不敢公言,私咽语也。】

  桓灵时童谣

  《后汉书》曰:桓帝之世,更相滥举,人为之谣。

  举秀才,不知书。举孝廉,父别居。寒素清白浊如泥。【音涅。】高第良将怯如黾。【音灭。】

  城上乌童谣

  《后汉书·五行志》曰:桓帝初京师童谣。按此刺为政之贪也。“车班班,入河间”,言桓帝将崩,乘舆入河间迎灵帝也。“河间姹女工数钱”以下,灵帝既立,其母永乐太后好聚金钱,教灵帝卖官受钱。天下忠义之士,欲击悬鼓以陈,而大吏既怒,无如何也。

  城上乌,尾毕逋。公为吏,子为徒。一徒死,百乘车。车班班,入河间。河间姹女工数钱,以钱为室金为堂。石上慊慊舂黄粱。梁下有悬鼓,我欲击之丞相怒。【歌谣领其大意,不必字字归著,与其穿凿,毋宁阙疑。】

  灵帝末京都童谣

  《后汉书·五行志》曰:灵帝之末,京都童谣。献帝初立,未有爵号,为中常侍段等所执,公卿百官,皆随其后,到河上乃得还,此为“非侯非王上北邙”者也。

  侯非侯,王非王,千乘万骑上北邙。

  丁令威歌

  《搜神记》:辽东城门有华表柱,忽有一白鹤集柱头,时有少年欲射之,鹤乃飞,徘徊空中而言云:

  有鸟有鸟丁令威,去家千岁今来归。城郭如故人民非,何不学仙冢累累?

  苏耽歌

  《神仙传》:苏耽仙去后,一鹤降郡屋,久而不去,郡僚子弟弹之,鹤乃举足画屋,若书字焉,其辞云云:

  乡原一别,重来事非。甲子不记,陵谷迁移。白骨蔽野,青山旧时。翘足高屋,下见群儿。我是苏仙。弹我何为?翻身云外,却返吾居。【连上首,应是后人拟作,词有可取,取之。】

●古诗源卷五

○魏诗

  武帝

  孟德诗犹是汉音,子桓以下,纯乎魏响。沈雄俊爽,时露霸气。

  短歌行言

  当及时为乐也。

  对酒当歌,人生几何。譬如朝露,去日苦多,慨当以慷,幽思难忘。何以解忧,惟有杜康。青青子衿,悠悠我心。但为君故,沉吟至今。呦呦鹿鸣,食野之苹。我有嘉宾,鼓瑟吹笙。明明如月,何时可掇。忧从中来,不可断绝。越陌度阡,枉用相存。契阔谈燕,心念旧恩。月明星稀,乌鹊南飞。绕树三匝,何枝可依。山不厌高,海不厌深。周公吐哺,天下归心。【“月明星稀”四句,喻客子无所依托。“山不厌高”四句,言王者不却众庶,故能成其大也。】

  观沧海

  东临碣石,以观沧海。水何澹澹。山岛竦峙。树木丛生,百草丰茂。秋风萧瑟,洪波涌起。日月之行,若出其中。星汉灿烂,若出其里。幸甚至哉,歌以咏志。【有吞吐宇宙气象。】

  土不同

  乡土不同,河朔隆寒。流澌浮漂,舟船行难。锥不入地,蘴籁深奥。水竭不流,冰坚可蹈。士隐者贫,勇侠轻非。心常叹怨。戚戚多悲。幸甚至哉,歌以咏志。【即“好勇疾贫乱也”之意,写得苍劲萧瑟。】

  龟虽寿

  神龟虽寿,犹有竟时。腾蛇成雾,终为土灰。老骥伏枥,志在千里。烈士暮年,壮心不已。盈缩之期,不独在天。养怡之福,可得永年。幸甚至哉,歌以咏志。【“盈缩之期,不独在天”,言己可造命也。曹公四言,于“三百篇”外,自开奇响。】

  薤露

  惟汉二十世,所任诚不良。沐猴而冠带,知小而谋强。犹豫不敢断,因狩执君王。白虹为贯日,己亦先受殃。贼臣执国柄,杀主灭宇京。荡覆帝基业,宗庙以燔丧。播越西迁移,号泣而且行。瞻彼洛城郭,微子为哀伤。【此指何进召董卓事,汉末实录也。】

  蒿里行

  关东有义士,兴兵讨群凶。初期会盟津,乃心在咸阳。军合力不齐,踌躇而雁行。势利使人争,嗣还自相戕。淮南弟称号,刻玺于北方。铠甲生虮虱,万姓以死亡。白骨露于野,千里无鸡鸣。生民百遗一,念之断人肠。【此指本初、公路辈,讨董卓而不能成功也。借古乐府写时事,始于曹公。】

  苦寒行

  北上太行山,艰哉何巍巍。羊肠坂诘屈,车轮为之摧。树木何萧瑟,北风声正悲。熊罴对我蹲,虎豹夹路啼。溪谷少人民,雪落何霏霏。延颈长叹息,远行多所怀。我心何怫郁,思欲一东归。水深桥梁绝,中路正徘徊。迷惑失故路,薄暮无宿栖。行行日已远,人马同时饥。担囊行取薪,斧冰持作糜。悲彼东山诗,悠悠使我哀。

  却东西门行

  鸿雁出塞北,乃在无人乡。举翅万里余,行止自成行。冬节食南稻,春日复北翔。田中有转蓬,随风远飘扬。长与故根绝,万岁不相当。奈何此征夫,安得去四方。戒马不解鞍,铠甲不离傍。冉冉老将至,何时返故乡。神龙藏深泉,猛兽步高冈。狐死归首丘,故乡安可忘!

  文帝

  子桓诗有文士气,一变乃父悲壮之习矣。要其便娟婉约,能移人情。

  短歌行

  仰瞻帷幕,俯察几筵。其物如故,其人不存。神灵倏忽,弃我遐迁。靡瞻靡恃,泣涕涟涟。呦呦游鹿,衔草鸣麑。翩翩飞鸟,挟子巢栖。我独孤茕,怀此百离。忧心孔疚,莫我能知。人亦有言,忧令人老。嗟我白发,生一何早。长吟永叹,怀我圣考。曰仁者寿,胡不是保?【此思亲之作。】

  善哉行

  上山采薇,薄暮苦饥。溪谷多风,霜露沾衣。野雉群雊、猴猿相追。还望故乡,郁何垒垒。【平声。】高山有崖,林木有枝。忧来无方,人莫之知。人生如寄,多忧何为。今我不乐,岁月如驰。汤汤川流,中有行舟。随波回转,有似客游。策我良马,被我轻裘。载驰载驱,聊以忘忧。【此诗客游之感,忧来无方,写忧剧深。末指客游似行舟,反以行舟似客游言之,措语既工复活。】

  杂诗

  漫漫秋夜长,烈烈北风凉。展转不能寐,披衣起彷徨。彷徨忽已久,白露沾我裳。俯视清水波,仰看明月光。天汉回西流,三五正纵横。草虫鸣何悲,孤雁独南翔。郁郁多悲思,绵绵思故乡。愿飞安得翼,欲济河无梁。向风长叹息,断绝我中肠。

  西北有浮云,亭亭如车盖。惜哉时不遇,适与飘风会。吹我东南行,行行至吴会。吴会非我乡,安得久留滞?弃置勿复陈,客子常畏人。【二诗以自然为宗,言外有无穷悲感。】

  至广陵于马上作

  《魏志》:黄初六年,幸广陵故城,临江观兵,戍卒十余万,旌旗数百里。因于马上作诗。

  观兵临江水,水流何汤汤。戈矛成山林,玄甲耀日光。猛将怀暴怒,胆气正纵横。谁云江水广,一苇可以航。不战屈敌卤,戢兵称贤良。古公宅岐邑,实始翦殷商。孟献营虎牢,郑人惧稽颡。【平声。】充国务耕殖,先零【音怜。】自破亡。兴农淮泗间,筑室都徐方。量宜运权略,六军咸悦康。岂如东山诗,悠悠多忧伤。本难飞渡,却云“一苇可航”,此勉强之词也。然命意使事,居然独胜。

  寡妇

  友人阮元瑜早亡,伤其妻寡居,为作是诗。

  霜露纷兮交下,木叶落兮凄凄。候雁叫兮云中,归燕翩兮徘徊。妾心感兮惆怅,白日忽兮西颓。守长夜兮思君,魂一夕兮九乖。怅延伫兮仰视,星月随兮天回。徒引领兮入房,窃自怜兮孤栖。原从君兮终没,愁可何兮久怀。【潘岳《寡妇赋序》曰:阮既没,魏文悼之,并命知旧作《寡妇之赋》,指是篇也。】

  燕歌行

  《广题》曰:燕,地名。言良人从役于燕,而为此曲。

  秋风萧瑟天气凉,草木摇落露为霜。群燕辞归雁南翔,念君客游思断肠。慊慊思归恋故乡,何为淹留寄他方。贱妾茕茕守空房,忧来思君不敢忘,不觉泪下沾衣裳。援琴鸣弦发清商,短歌微吟不能长。明月皎皎照我床,星汉西流夜未央。牵牛织女遥相望,尔独何辜限河梁?【和柔巽顺之意,读之油然相感。节奏之妙,不可思议。句句用韵,掩抑徘徊。“短歌微吟不能长”,恰似自言其诗。】

  甄后

  塘上行

  蒲生我池中,其叶何离离。傍能行仁义,莫若妾自知。众口铄黄金,使君生别离。念君去我时,独愁常苦悲。想见君颜色,感结伤心脾。念君常苦悲,夜夜不能寐。莫以贤豪故,弃捐素所爱。莫以鱼肉贱,弃捐葱与薤。莫以麻枲贱,弃捐菅与蒯。出亦复苦愁,入亦复苦愁。边地多悲风,树木何翛翛。从军致独乐,延年寿千秋。【末路反用说开,汉人乐府,往往有之。】

  明帝

  种瓜篇

  种瓜东井上,冉冉自逾垣。与君新为婚,瓜葛相结连。寄托不肖躯,有如倚太山。兔丝无根株,蔓延自登缘。萍藻托清流,常恐身不全。被蒙丘山惠,贱妾执拳拳。天日照知之,想君亦俱然。

  曹植

  子建诗五色相宣,八音朗畅,使才而不矜才,用博而不逞博。苏、李以下,故推大家,仲宣、公干,乌可执金鼓而抗颜行也。

  朔风诗

  仰彼朔风,用怀魏都。愿骋代马,倏忽北徂。凯风永至,思彼蛮方。愿随越鸟,翻飞南翔。四气代谢,悬景【同影。】运周。别如俯仰,脱若三秋。昔我初迁,朱华未希。今我旋止,素雪云飞。俯降千仞,仰登天阻。风飘蓬飞,载离寒暑。千仞易陟,天阻可越。昔我同袍,今永乖别。子好芳草,岂忘尔贻。繁华将茂,秋霜悴之。君不垂眷,岂云其诚。秋兰可喻,桂树冬荣。弦歌荡思,谁与消忧?临川暮思,何为泛舟?岂无和乐,游非我邻。谁忘泛舟,愧无榜人。【言君虽不垂眷,而己岂得不言其诚乎?故下接秋兰云云,结意和平夷愉,诗中正则。】

  鰕■〈魚旦〉篇

  ■〈魚旦〉,同鳝。从日不从且,他本误作■〈魚且〉,无此字也。

  鰕■〈魚旦〉游潢潦,不知江海流。燕雀戏藩柴,安识鸿鹄游?世士诚明性,大德固无俦。驾言登五岳,然后小陵丘。俯观上路人,势利惟是谋。仇高念皇家,远怀柔九州。抚剑而雷音,猛气纵横浮。泛泊徒嗷嗷,谁知壮士忧!

  泰山梁甫行

  八方各异气,千里殊风雨。剧哉边海民,寄身于草野。妻子象禽兽,行止依林阻。柴门何萧条,狐兔翔我宇。

  箜篌引

  置酒高殿上,亲友从我游。中厨辨丰膳,烹羊宰肥牛。秦筝何慷慨,齐瑟和且柔。阳阿奏奇舞,京洛出名讴。乐饮过三爵,缓带倾庶羞。主称千年寿,宾奉万年酬。久要不可忘,薄终义所尤。谦谦君子德,馨折欲何求?惊风飘白日,光景驰西流。盛时不可再,百年忽我遒。生存华屋处,零落归山丘。先民谁不死,知命复何忧?

  怨歌行

  为君既不易,为臣良独难。忠信事不显,乃有【音又。】见疑患。周公佐成王,金縢功不刊。推心辅王室,二叔反流言。待罪居东国,泫涕常流连。皇灵大动变,震雷风且寒。拔树偃秋稼,天威不可干。素服开金縢,感悟求其端。公旦事既显,成王乃哀叹。吾欲竟此曲,此曲悲且长。今日乐相乐,别后莫相忘。【“忠信事不显”,言忠信之心,不欲人知也,如周公纳祝词于匮中之类。末四句竟用成语,古人不忌。】

  名都篇

  名都者,邯郸、临淄之类也。以刺时人骑射之妙、游骋之乐,而无忧国之心也。

  名都多妖女,京洛出少年。宝剑直千金,被服丽且鲜。斗鸡东郊道,走马长楸间。驰骋未能半,双兔过我前。揽弓捷鸣镝,长驱上南山。左挽因右发,一纵两禽连。余巧未及展,仰手接飞鸢。观者咸称善,众工归我妍。我归宴平乐,美酒斗十千。脍鲤臇【子兗切。】胎虾,寒鳖炙熊蹯。鸣俦啸匹侣,列坐竟长筵。连翩击鞠壤,巧捷惟万端。白日西南驰,光景不可攀。云散还城邑,清晨复来还。【郑玄《周礼注》曰:“凡鸟兽未孕曰禽,不独鸟也。”《名都》、《白马》二篇,敷陈藻彩,所谓修词之章也。起句以“妖女”陪“少年”,乃客意也。】

  美女篇

  美女者,以喻君子。言君子有美行,愿得贤君而事之。若不遇时,虽见征求,终不屈也。

  美女妖且闲,采桑岐路间。柔条纷冉冉,落叶何翩翩。攘袖见素手,皓腕约金环。头上金爵钗,腰佩翠琅玕。明珠交玉体,珊瑚间木难。罗衣何飘飖。轻裾随风还。顾盼遗光彩,长啸气若兰。行徒用息驾,休者以忘餐。借问女安居,乃在城南端。青楼临大路,高门结重关。容华耀朝日,谁不希令颜。媒氏何所营,玉帛不时安。佳人慕高义,求贤良独难。众人徒嗷嗷,安知彼所观。盛年处房室,中夜起长叹。【《南越志》曰:“木难,金翅鸟沫所成碧色珠也。”“玉帛不时安”,安,定也。篇中复二难字。写美女如见君子品节,此不专以华缛胜人。】

  白马篇

  白马者,言人当立功为国,不可念私也。

  白马饰金羁,连翩西北驰。借问谁家子,幽并游侠儿。少小去乡邑,扬声沙漠垂。宿昔秉良弓,楛矢何参差。控弦破左的,右发摧月支。仰手接飞猱,俯身散马蹄。狡捷过猴猿,勇剽若豹螭。边城多警急,胡虏数迁移。羽檄从北来,厉马登高堤。长驱蹈匈奴,左顾凌鲜卑。弃身锋刃端,性命安可怀。父母且不顾,何言子与妻。名编壮士篇,不得中顾私。捐躯赴国难,视死忽如归。

  圣皇篇

  圣皇应历数,正康帝道休。九州咸宾服,威德洞八幽。三公奏诸公,不得久淹留。藩位任至重,旧章咸率由。侍臣省文奏,陛下体仁慈,沉吟有爱恋,不忍听可之。迫有官典宪,不得顾恩私。诸王当就国,玺绶何累脺,便时舍外殿,宫省寂无人。主上增顾念,皇母怀苦辛。何以为赠赐,倾府竭宝珍。文钱百亿万,采帛若烟云。乘舆服御物,锦罗与金银。龙旗垂九旒,羽盖参班轮。诸王自计念,无功荷厚德。思一效筋力,糜躯以报国。鸿胪拥节卫,副使随经营。贵威并出送,夹道交辎軿。车服齐整设,韡烨曜天精。武骑卫前后,鼓吹箫笳声。祖道魏东门,泪下沾冠缨。攀盖因内顾,俯仰慕同生。行行将日暮,何时还阙庭。车轮为徘徊,四马踌躇鸣。路人尚酸鼻,何况骨肉情?【处猜嫌疑贰之际,以执法归臣下,以恩赐归君上,此立言最得体处。王摩诘诗云:“执政方持法,明君无此心。”深得斯旨。“何以为赠赐”一段,极形君赐之盛,若夸耀不绝口者,然其情愈悲矣。】

  吁嗟篇

  时法制待藩国峻迫,植十一年三徙都,故云。

  吁嗟此转蓬,居世何独然。长去本根逝,夙夜无休闲。东西经七陌,南北越九阡。卒遇回风起,吹我入云间。自谓终天路,忽然下沈泉。惊飙接我出,故归彼中田。当南而更北,谓东而反西。【叶先。】宕宕当何依,忽亡而忽存。飘飖周八泽,连翩历五山。流转无恒处,谁知我苦艰。愿为中林草,秋随野火燔。糜灭岂不痛,愿与根荄连。【迁转之痛,至愿归糜灭,情事有不忍言者矣。此而不怨,是愈疏也。陈思之怨,为独得其正云。】

  弃妇篇

  石榴植前庭,绿叶摇缥青。丹华灼烈烈,璀璨有光荣。光荣晔流离,可以戏淑灵。有鸟飞来集,拊翼以悲鸣。悲鸣夫何为,丹华实不成。拊心常叹息,无子当归宁。有子月经天,无子若流星。天月相终始,流星没无精。栖迟失所宜,下与瓦石并。忧怀从中来,叹息通鸡鸣。反侧不能寐,逍遥于前庭。踟蹰还入房,肃肃帷幕声。搴帷更摄带,抚弦弹鸣筝。慷慨有余音,要妙悲且清。收泪长叹息,何以负神灵。招摇待霜露,何必春夏成。晚获为良实,愿君且安宁。【怨而委之于命,可以怨矣,结希恩万一。情愈悲,词愈苦。篇中用韵,二“庭”字,二“灵”字,二“鸣”字,二“成”字,二“宁”字。】

  当来日大难

  日苦短,乐有余,乃置玉罇办东厨。广情故,心相于,阖门置酒,和乐欣欣。游马后来,辕车解轮。今日同堂,出门异乡。别易会难,各尽杯觞。

  野田黄雀

  行高树多悲风,海水扬其波。利剑不在掌,结友何须多。不见篱间雀,见鹞自投罗。罗家得雀喜,少年见雀悲。拔剑捎罗网,黄雀得飞飞。飞飞摩苍天,来下谢少年。【是游侠,亦是仁人,语悲而音爽。】

  当墙欲

  高行龙欲升天须浮云,人之仕进待中人,众口可以铄金,谗言三至,慈母不亲。愦愦俗间,不辨伪真。愿欲披心自说陈。君门以九重,道远河无津。

  赠徐幹

  惊风飘白日,忽然归西山。圆景【同影。】光未满,众星粲以繁。志士营世业,小人亦不闲。聊且夜行游,游彼双阙间。文昌郁云兴,迎风高中天。春鸠鸣飞栋,流猋激棂轩。顾念蓬室士,贫贱诚足怜。薇藿弗充虚,皮褐犹不全。慷慨有悲心,兴文自成篇。宝弃怨何人,和氏有其愆。弹冠俟知己,知己谁不然。良田无晚岁,膏泽多丰年。亮怀璠玙美,积久德愈宣。亲交义在敦,申章复何言。【文昌,魏殿名。迎风,观名。“良田”二句,喻有德者必荣也。】

  赠丁仪

  初秋凉气发,庭树微销落。凝霜依玉除,清风飘飞阁。朝云不归山,霖雨成川泽。黍稷委畴陇,农夫安所获。在贵多忘贱,为恩谁能博。狐白足御冬,焉念无衣客。思慕延陵子,宝剑非所惜。子其宁尔心,亲交义不薄。

  又赠丁仪王粲一首

  从军度函谷,驱马过西京。山岑高无极,泾渭扬浊清。壮哉帝王居,佳丽殊百城。员阙出浮云,承露扢泰清。皇佐扬天惠,四海无交兵。权家虽爱胜,全国为令名。君子在末位,不能歌德声。丁生怨在朝,王子欢自营。欢怨非贞则,中和诚可经。《西都赋》曰:仙掌与承露。【扢,摩也。概与“”古字通。皇佐,谓太祖也。权家,兵家也。诗以议论胜。末进以中和,古人规箴有体。家令谓子建函京之作,指此。】

  赠白马王彪

  序曰:黄初四年正月,白马王、任城王与余俱朝京师,会节气。到洛阳,任城王薨。至七月,与白马王还国,后有司以二王归藩,道路宜异宿止,意毒恨之。盖以大别在数日,是用自剖,与王辞焉。愤而成篇。

  谒帝承明庐,逝将归旧疆。清晨发皇邑,日夕过首阴。伊洛广且深,欲济川无梁。泛舟越洪涛,怨彼东路长。顾瞻恋城阙,引领情内伤。太谷何廖廓,山树郁苍苍。霖雨泥我涂,流潦浩纵横。中逵绝无轨,改辙登高冈。修坂造云日,我马玄以黄。玄黄犹能进,我思郁以纡。郁纡将何念,亲爱在离居。本图相与偕,中更不克俱。鸱枭鸣衡轭,豺狼当路衢。苍蝇间白黑,谗巧令亲疏。欲还绝无蹊,揽辔止踟蹰。

  踟蹰亦何留,相思无终极。秋风发微凉,寒蝉鸣我侧。原野何萧条,白日忽西匿。归鸟赴高林,翩翩厉羽翼。孤兽走索群,衔草不遑食。感物伤我怀,抚心长太息。太息将何为?天命与我违。奈何念同生,一往形不归。孤魂翔故域,灵柩寄京师。存者忽复过,亡没身自衰。人生处一世,去若朝露晞。年在桑榆间,影响不能追。自顾非金石,咄唶令心悲。【此章乃一篇正意,置在孤兽索群下,章法绝佳。】

  心悲动我神,弃置莫复陈。丈夫志四海,万里犹比邻。恩爱苟不亏,在远分日亲。何必同衾帱,然后展殷勤。忧思成疾■〈疒爾〉,无乃儿女仁。仓卒骨肉情,能不怀苦辛。【此章无可奈何之词,人当极无聊后,每作此以强解也。】

  苦辛何虑思,天命信可疑。虚无求列仙,松子久吾欺。变故在斯须,百年谁能持。离别永无会,执手将何时。王其爱玉体,俱享黄发期。收泪即长路,援笔从此辞。【末章如赋中之乱,几于生人作死别矣。】

  赠王粲

  端坐苦愁思,揽衣起西游。树木发春华,清池激长流。中有孤鸳鸯,哀鸣求匹俦。我愿执此鸟,惜哉无轻舟。欲归忘故道,顾望但怀愁。悲风鸣我侧,羲和逝不留。重阴润万物,何惧泽不周。谁令君多念,自使怀百忧。

  送应氏诗二首

  步登北邙阪,遥望洛阳山。洛阳何寂寞,宫室尽烧焚。垣墙皆顿擗,荆棘上参天。不见旧耆老,但睹新少年。侧足无行径,荒畴不复田。游子久不归,不识陌与阡。中野何萧条,千里无人烟。念我平常居,气结不能言。【时董卓迁献帝于西京,洛阳被烧,故诗中云然。】

  清时难屡得,嘉会不可常。天地无终极,人命若朝霜。愿得殿嬿婉,我友之朔方。亲昵并集送,置酒此河阳。中馈岂独薄,宾饮不尽觞。爱至望苦深,岂不愧中肠。山川阻且远,别促会日长。愿为比翼鸟,施翮起高翔。

  杂诗

  高台多悲风,朝日照北林。之子在万里,江湖迥且深。方舟安可极,离思故难任。孤雁飞南游,过庭长哀吟。翘思慕远人,愿欲托遗音。形影忽不见,翩翩伤我心。

  转蓬离本根,飘飖随长风。何意回飚举,吹我入云中。高高上无极,天路安可穷。类此游客子,捐躯远从戎。毛褐不掩形,薇藿常不充。去去莫复道,沈忧令人老。【陈思最工起调,如“高台多悲风”,“转蓬离本根”之类是也。】

  南国有佳人,容华若桃李。朝游江北岸,夕宿潇湘沚。时俗薄朱颜,谁为发皓齿。俯仰岁将暮,荣耀难久恃。

  揽衣出中闺,逍遥步两楹。闲房何寂寞,绿草被阶庭。空室自生风,百鸟翔南征。春思安可忘,忧戚与我并。佳人在远道,妾身独单茕。欢会难再遇,芝兰不重荣。人皆弃旧爱,君岂若平生。寄松为女萝,依水如浮萍。束身奉衿带,朝夕不堕倾。傥终顾盼恩,永副我中情。

  仆夫早严驾,吾将远行游。远游欲何之,吴国为我仇。将骋万里途,东路安足由。江介多悲风,淮泗驰急流。愿欲一轻济,惜哉无方舟。闲居非吾志,甘心赴国忧。【即自试表中意。】

  七哀诗

  《韵语阳秋》:“痛而哀,义而哀,感而哀,怨而哀,耳目闻见而哀,口叹而哀,鼻酸而哀,谓之七哀。

  明月照高楼,流光正徘徊。上有愁思妇,悲叹有余哀。借问叹者谁?言是宕子妻。君行逾十年,孤妾常独栖。君若清路尘,妾若浊水泥。浮沉各异势,会合何时谐。愿为西南风,长逝入君怀。君怀良不开,贱妾当何依?【此种大抵思君之辞,绝无华饰,性情结撰,其品最工。】

  情诗

  微阴翳阳景,清风飘我衣。游鱼潜绿水,翔鸟薄天飞。眇眇客行士,遥役不得归。始出严霜结,今来白露晞。游子叹黍离,处者歌式微。慷慨对嘉宾,凄怆内伤悲。

  七步诗

  《世说新语》:“文帝尝令东阿王七步中作诗,不成者行大法,应声云云。帝有惭色。”

  煮豆持作羹,漉豉以为汁。萁在釜中然,豆在釜中泣。本是同根生,相煎何太急!【至性语,贵在质朴。一本只作四句,略有异同。】

●古诗源卷六

○魏诗

  王粲

  赠蔡子笃诗蔡睦,字子笃,为尚书,仲宣与之同避难荆州,子笃还,仲宣作此赠之。

  翼翼飞鸾,载飞载东。我友云徂,言戾旧邦。舫舟翩翩,以溯大江。蔚矣荒涂,时行靡通。慨我怀慕,君子所同。悠悠世路,乱离多阻。济岱江行,邈焉异处。风流云散,一别如雨。人生实难,愿其弗与。瞻望遐路,允企伊伫。烈烈冬日,肃肃凄风。潜鳞在渊,归雁载轩。苟非鸿雕,孰能飞翻。虽则追慕,予思罔宣。瞻望东路,惨怆增叹。率彼江流,爰逝靡期。君子信誓,不迁于时。及子同寮,生死固之。何以赠行,言授斯诗。中心孔悼,涕泪涟洏。嗟尔君子,如何勿思?

  七哀诗

  西京乱无象,豺虎方遘患。复弃中国去,远身适荆蛮。亲戚对我悲,朋友相追攀。出门无所见,白骨蔽平原。路有饥妇人,抱子弃草间。顾闻号泣声,挥涕独不还。“未知身死处,何能两相完。”驱马弃之去,不忍听此言。南登霸陵岸,回首望长安。悟彼下泉人,喟然伤心肝。【“未知身死处”二句,妇人之词。此杜少陵《无家别》《垂老别》诸篇之祖也。隐侯谓仲宣霸岸之篇,指此。】荆蛮非吾乡,何为久滞淫。方舟溯大江,日暮愁我心。山冈有余暎,岩阿增重阴。狐狸驰赴穴,飞鸟翔故林。流波激清响,猴猿临岸吟。迅风拂裳袂,白露沾衣襟。独夜不能寐,摄衣起抚琴。丝桐感人情,为我发悲音。羁旅无终极,忧思壮难任。

  边城使心悲,昔我亲更之。冰雪截肌肤,风飘无止期。百里不见人,草木谁当迟。【与治同,平声。】登城望亭隧,翩翩飞戍旗。行者不顾反,出门与家辞。子弟多俘虏,哭泣无已时。天下尽乐土,何为久留兹?蓼虫不知辛,去来勿与谘。

  陈琳

  饮马长城窟

  行饮马长城窟,水寒伤马骨。往谓长城吏,慎莫稽留太原卒。官作自有程,举筑谐汝声。男儿宁当格斗死,何能怫郁筑长城。长城何连连,连连三千里。边城多健少,内舍多寡妇。作书与内舍,便嫁莫留住。善侍新姑嫜,时时念我故夫子。报书往边地,君今出语一何鄙。身在祸难中,何为稽留他家子。生男慎莫举,生女哺用脯。君独不见长城下,死人骸骨相撑拄。结发行事君,慊慊心意间。明知边地苦,贱妾何能久自全。【“举筑谐汝声”,言同声用力也。作书与内舍,健少作书也。“报书往边地”二句,内舍答书也。“身在祸难中”六语,又“健少”之词,“结发行事君”四句。又“内舍”之词,无问答之痕,而神理井然,可与汉乐府竞爽矣。】

  刘桢

  赠从弟三首

  泛泛东流水,磷磷水中石。萍藻生其涯,华纷何扰弱。采之荐宗庙,可以羞嘉客。岂无园中葵,懿此出深泽。

  亭亭山上松,瑟瑟谷中风。风声一何盛,松枝一何劲。冰霜正惨凄,终岁常端正。岂不罹凝寒,松柏有本性。

  凤凰集南岳,徘徊孤竹根。于心有不厌,奋翅凌紫氛。岂不常勤苦,羞与黄雀群。何时当来仪,将须圣明君。【赠人之作,通用比体,亦是一格。】

  徐幹

  室思

  人靡不有初,想君能终之。别来历年岁,旧恩何可期。重新而忘故,君子所犹讥。寄声虽在远,岂忘君须臾。既厚不为薄,想君时见思。【此托言闺人之词也。自处于厚,而望君不薄,情极深至。】

  杂诗

  浮云何洋洋,原因通我词。飘飘不可寄,徙倚徙相思。人离皆复会,君独无返期。自君之出矣,明镜暗不治。思君如流水,何有穷已时。【末四句后人拟者多矣。总逊其自然。】

  应瑒

  侍五官中郎将建章台集诗一首

  建安十六年,天子命世子丕为五官中郎将。

  朝雁鸣云中,音响一何哀。问子游何乡,戢翼正徘徊。言我寒门来,将就衡阳栖。往春翔北土,今冬客南淮。远行蒙霜雪,毛羽日摧颓。常恐伤肌骨,身陨沉黄泥。蕳珠堕沙石,何能中自谐。欲因云雨会,濯翼陵高梯。良遇不可值,伸眉路何阶。公子敬爱客,乐饮不知疲。和颜既以畅,乃肯顾细微。赠诗见存慰,小子非所宜。为且极欢情,不醉其无归。凡百敬尔位,以副饥渴怀。【蕳珠,喻君子。沙石,喻小人。《淮南子》曰:“周之蕳珪,产于垢土。”蕳,大也。魏人公,俱极平庸,后人应酬诗从此开出。篇中代雁为词,音调悲切。异于众作,存此以备一格。】

  别诗

  朝云浮四海,日暮归故山。行役怀旧土,悲思不能言。悠悠涉千里,未知何时旋。

  应璩

  百一诗

  《百一诗》序曰:“时谓曹爽曰:‘今公闻周公巍巍之称,安知百虑有一失乎。’”百一之名取此。璩诗百余篇,大率讽刺时事。

  下流不可处,君子慎厥初。名高不宿著,易用受侵诬。前者隳官去,有人适我闾。田家无所有,酌体焚枯鱼。问我何功德,三入承明庐。所占于此土,是谓仁智居。文章不经国,筐箧无尺书。用等称才学,往往见叹誉。避席跪自陈,贱子实空虚。宋人遇周客,惭愧靡所如。【“下流”一章,自侮也。“问我何功德”至“往往见叹誉”,皆问者之词,下四句自答。遇周客,指宋之愚人宝燕石事。】

  杂诗

  细微苟不慎,堤溃自蚁穴。腠理早从事,安复劳针石。哲人睹未形,愚夫暗明白。曲突不见宾,焦烂为上客。思愿献良规,江海倘不逆。狂言虽寡善,犹有如鸡跖。鸡跖食不已,齐王为肥泽。【进言听言意,愈隐愈显。】

  缪袭

  克官渡

  《晋书·乐志》曰:“改汉《上之回》为《克官渡》,言曹公与袁绍战,破之于官渡也。”

  克绍官渡由白马,僵尸流血被原野。贼众如犬羊,王师尚寡。沙塠傍,风飞扬。转战不利士卒伤。今日不胜后何望。土山地道不可当,卒胜大捷震冀方。屠城破邑,神武遂章。【音节自佳。】

  定武功

  改汉《战城南》为《定武功》,言曹公初破邺。武功之定,始乎此也。

  定武功,济黄河。河水汤汤,旦暮有横流波。袁氏欲衰,兄弟寻干戈。决漳水,水流滂沱。嗟城中,如流鱼,谁能复顾室家?计穷虑尽,求来连和。和不时,心中忧戚。贱众内溃,君臣奔北。拔邺城,奄有魏国。王业艰难,览观古今,可为长叹。

  屠柳城

  改汉《巫山高》为《屠柳城》,言曹公越北塞,历白檀,破二郡乌桓于柳城也。

  屠柳城,功诚难。越度陇塞,路漫漫。北逾冈平,但闻悲风正酸。蹋顿授首,遂登白狼山。神武慹海外,永无北顾患。【慹,音质。怖也,汉朱博传,豪强服。】

  挽歌

  生时游国都,死没弃中野。朝发高堂上,暮宿黄泉下。白日入虞渊,悬车息驷马。造化虽神明,安能复存我。形容稍歇灭,齿发行当堕。自古皆有然,谁能离此者。

  左延年

  从军行

  亦作汉词。

  苦哉边地人,一岁三从军。三子到敦煌,二子诣陇西。【叶。】五子远斗去,五妇皆怀身。

  阮籍

  咏怀

  阮公咏怀,反复零乱,兴寄无端,和愉哀怨,杂集于中,令读者莫求归趣,此其为阮公之诗也。必求时事以实之,则凿矣。其原自《离骚》来。

  夜中不能寐,起坐弹鸣琴。薄帷鉴明月,清风吹我襟。孤鸿号外野,翔鸟鸣北林。徘徊将何见,忧思独伤心。

  二妃游江滨,逍遥顺风翔。交甫怀环珮,婉娈有芬芳。猗靡情欢爱,千载不相忘。倾城迷下蔡,容好结中肠。感激生忧思,萱草树兰房。膏沐为谁施,其雨怨朝阳。如何金石交,一旦更离伤。【即未见好德如好色意。】

  嘉树下成蹊,东园桃与李。秋风吹飞藿,零落从此始。繁华有憔悴,堂上生荆杞。驱马舍之去,去上西山趾。一身不自保,何况恋妻子。凝霜被野草,岁暮亦云已。【岁暮,隐指时乱也,一结见否终则倾,有去之恐不速意。】

  平生少年时,轻薄好弦歌。西游咸阳中,赵李相经过。娱乐未终极,白日忽蹉跎。驱车复来归,反顾望三河。黄金百镒尽,资用常苦多。北临太行道,失路将如何。【汉成帝数微行,近幸小臣,赵李从微贱专宠。此借言游侠之俦也。颜延年注谓赵飞燕,李夫人,恐不可从。】

  昔闻东陵瓜,近在青门外。连畛距阡陌,子母相钩带。五色耀朝日,嘉宾四面会。膏火自煎熬,多财为患害。布衣可终身,宠禄岂足赖。

  灼灼西隤日,余光照我衣。回风吹四壁,寒鸟相因依。周周尚衔羽,蛩蛩亦念饥。如何当路子,馨折忘所归。岂为夸誉名,憔悴使心悲。宁与燕雀翔,不随黄鹄飞。黄鹄游四海,中路将安归?【周周,鸟名,衔羽而饮。蛩蛩,亦作邛邛,兽名,相并而行。此章为知进而不知退者言,末见己非冲天之质。宜相随燕雀,不宜与黄鹄并举也,盖鄙之之词。韵用二归字。】

  步出上东门,北望首阳岑。下有采薇士,上有嘉树林。良辰在何许,凝霜沾衣襟。寒风振山冈,玄云起重阴。鸣雁飞南征。鶗鴂发哀音。素质由商声,凄怆伤我心。【隐侯曰:“致此雕素之质,由于商声用事秋时也。‘游’字应作‘由’,古人字类无定也。”】

  湛湛长江水,上有枫树林。皋兰被径路,青骊逝骎骎。远望令人悲,春气感我心。三楚多秀士,朝云进荒淫。朱华振芬芳,高蔡相追寻。一为黄雀哀,泪下谁能禁。【末四句隐用庄辛谏楚王语意。】

  开秋兆凉气,蟋蟀鸣床帷。感物怀殷忧,悄悄令心悲。多言焉所告,繁辞将诉谁。微风吹罗袂,明月耀清晖。晨鸡鸣高树,命驾起旋归。【多言繁辞二语,重言之。】

  昔年十四五,志尚好诗书。被褐怀珠玉,颜闵相与期。开轩临四野,登高望所思。丘墓蔽山冈,万代同一时。千秋万岁后,荣名安所之。乃悟羡门子,皦皦今自嗤。【翻荣名以为宝句,皦皦,指颜,闵相与期也。】

  裴徊蓬池上,还顾望大梁。绿水扬洪波,旷野莽茫茫。走兽交横驰,飞鸟相随翔。是时鹑火中,日月正相望。朔风厉严寒,阴气下微霜。羁旅无俦匹,俯仰怀哀伤。小人计其功,君子道其常。岂惜终憔悴,咏言著斯章。【君子通其常,往往憔悴,然岂缘此为惜乎?是真能立志砥节者。“君子道其常”,“小人计其功”,本孙卿子语。】

  独坐空堂上,谁可与欢者?出门临永路。不见行车马。登高望九州,悠悠分旷野。孤鸟西北飞,离兽东南下。日暮思亲友,晤言用自写。

  悬车在西南,羲和将欲倾。流光耀四海,忽忽至夕冥。朝为咸池晖,蒙汜受其荣。岂知穷达士,一死不再生。视彼桃李花,谁能久荧荧。君子在何许,叹息未合并。瞻仰景山松,可以慰吾情。

  西方有佳人,皎若白日光。被服纤罗衣,左右珮双璜。修容耀姿美,顺风振微芳。登高眺所思,举袂当朝阳。寄颜云霄间,挥袖凌虚翔。飘飖恍惚中,流盼顾我傍。悦怿未交接,晤言用感伤。

  于心怀寸阴,羲阳将欲冥。挥袂抚长剑,仰观浮云征。云间有玄鹤,抗志扬哀声。一飞冲青天,旷世不再鸣。岂与鹑鮺游,连翩戏中庭。【“旷世不再鸣”,犹王仲淹献策后,不复再出也,为高士写照。后凤凰一章,有子欲居九夷意。】

  驾言发魏都,南向望吹台。箫管有遗音,梁王安在哉?战士食糟糠,贤者处蒿莱。歌舞曲未终,秦兵已复来。夹林非吾有,朱宫生尘埃。军败华阳下,身竟为土灰。

  朝阳不再盛,白日忽西幽。去此若俯仰,如何似九秋。人生若尘露,天道邈悠悠。齐景升丘山,涕泗纷交流。孔圣临长川,惜逝忽若浮。去者余不及,来者吾不留。愿登太华山,上与松子游。渔父知世患,乘流泛轻舟。

  儒者通六艺,立志不可干。违礼不为动,非法不肯言。渴饮清泉流,饥食并一箪。岁时无以祀,衣服常苦寒。屣履咏南风,縕袍笑华轩。信道守诗书。义不受一餐。烈烈褒贬辞,老氏用长叹。【儒者守义,老氏守雌,道既不同,宜闻言而长叹也。魏晋人崇尚老庄,然此诗言各从其志,无进退两家意。】

  林中有奇鸟,自言是凤凰。清朝饮醴泉,日夕栖山冈。高鸣彻九州,延颈望八荒。适逢商风起,羽翼自摧藏。一去昆仑西,何时复回翔。但恨处非位,怆悢使心伤。【凤凰本以鸣国家之盛,今九州八荒,无可展翅,而远去昆仑之西,于洁身之道得矣。其如处非其位何。所以怆然心伤也。】

  出门望佳人,佳人岂在兹?三山招松乔,万世谁与期。存亡有长短,慷慨将焉知?忽忽朝日隤,行行将何之。不见季秋草,摧折在今时。【颜延年曰:说者谓阮籍在晋文代,常虑祸患,故发此咏。看来诸咏非一时所作,因情触景,随兴寓言,有说破者,有不说破者,忽哀忽乐,诡不羁。十九首后,复有此种笔墨,文章一转关也。咏怀诗当领其大意,不必逐章分解。】

  大人先生歌

  天地解兮六合开,星辰陨兮日月颓,我腾而上将何怀。

  嵇康

  叔夜四言,时多俊语。不摹仿三百篇,允为晋人先声。

  杂诗

  微风清扇,云气四除。皎皎亮月,丽于高隅。兴命公子,携手同车。龙骥翼翼,扬镳踟蹰。肃肃宵征,造我友庐。光灯吐辉,华幔长舒。鸾觞酌醴,神鼎烹鱼。弦超子野,叹过绵驹。流咏太素,俯赞玄虚。孰克英贤,与尔剖符。【言咏赞道妙,游心恬漠,谁能以英贤之德,与尔分符而仕乎?】

  赠秀才入军

  从兄秀才公穆,即熹也。

  良马既闲,丽服有晖。左揽繁弱,右接忘归。风驰电逝,蹑景追飞。凌厉中原,顾盼生姿。携我好仇,载我轻车。南凌长阜,北厉清渠。仰落惊鸿,俯引渊鱼。盘于游田,其乐只且。【《新序》曰:“楚王载繁弱之弓、忘归之矢,以射兕于云梦。”】

  轻车迅迈,息彼长林。春木载荣,布叶垂阴。习习谷风,吹我素琴。咬【音交。】咬黄鸟,顾俦弄音。感悟驰情,思我所钦。心之忧矣,永啸长吟。

  浩浩洪流,带我邦畿。萋萋绿林,奋荣扬晖。鱼龙瀺灂,山鸟群飞。驾言出游,日夕忘归。思我良朋,如渴如饥。愿言不获,怆矣其悲。

  息徒兰圃,秣马华山。流磻平皋,垂纶长川。目送归鸿,手挥五弦。俯仰自得,游心太玄。嘉彼钓叟,得鱼忘筌。郢人逝矣,谁与尽言。

  闲夜肃清,朗月照轩。微风动袿,组账高褰。旨酒盈樽,莫与交欢。鸣琴在御,谁与鼓弹?仰慕同趣,其馨如兰。佳人不存,能不永叹!【首章赠入军,以下皆相思之词。共十九章,此系节录。】

  幽愤诗

  《晋书》:康与吕安善,安后为兄所枉诉,以事系狱,词相证引。遂收康,康乃作此诗。

  嗟余薄祜,少遭不造。哀茕靡识,越在襁褓。母兄鞠育,有慈无威。恃爱肆姐,【子豫反。】不训不师。爰及冠带,凭宠自放。抗心希古,任其所尚。托好老庄,贱物贵身。志在守朴,养素全真。曰余不敏,好善暗人。子玉之败,屡增维尘。大人含弘,藏垢怀耻。民之多僻,政不由己。惟此褊心,显明臧否。感悟思愆,怛若创痏。欲寡其过,谤议沸腾。性不伤物,频致怨憎。昔惭柳惠,今愧孙登。内负宿心,外恧良朋。仰慕严郑,乐道闲居。与世无营,神气晏如。咨予不淑,婴累多虞。匪降自天,实由顽疏。理弊患结,卒致囹圄。对答鄙讯,絷此幽阻。实耻讼冤,时不我与。虽曰义直,神辱志沮。澡身沧浪,岂曰能补?嗈嗈鸣雁,奋翼北游。顺时而动,得意忘忧。嗟我愤叹,曾莫能俦。事与愿违,遘兹淹留。穷达有命,亦又何求。古人有言,善莫近名。奉时恭默,咎悔不生。万石周慎,安亲保荣。世务纷纭,祗搅予情。安乐必诫,乃终利贞。煌煌灵芝,一年三秀。予独何为,有志不就。惩难思复,心焉内疚。庶勖将来,无馨无臭。采薇山阿,散发岩岫。永啸长吟,颐性养寿。【通篇直直叙去,自怨自艾,若隐若晦,好善暗人,牵引之由也。显明臧否,得祸之由也。至云“澡身沧浪,岂曰能补”,悔恨之词切矣。末托之颐性养寿,正恐未必能然之词。华亭鹤唳,隐然言外。肆姐,恣肆也。季札谓叔孙穆子曰:“子好善而不能择人。”“好善暗人”,悔与吕安交也。孙登谓嵇康曰:“子才多识寡,难乎免于今之世也。”严郑,谓严君平、郑子真。“万石周慎”,指万石君奋子郎中令建。周,至也。】

  吴谣

  附《吴志》:周瑜精意音乐,三爵之后,有阙误,瑜必知之,知之必顾。时人语曰:

  曲有误,周郎顾。

  孙皓天纪中童谣

  《晋书·五行志》:孙皓天纪中童谣,晋武闻之,加王浚龙骧将军,及征吴,江西众军无过者,而浚先定秣陵。

  阿童复阿童,衔刀游渡江。不畏岸上虎,但畏水中龙。

●古诗源卷七

○晋诗

  司马懿

  宴饮诗

  《晋书》:高祖伐公孙渊,过温,见父老故旧,燕饮累日,作歌。

  天地开辟,日月重光。遭逢际会,奉辞遐方。将扫逋秽,还过故乡。肃清万里,总齐八荒,告成归老,待罪武阳。

  张华

  茂先诗,《诗品》谓其“儿女情多,风云气少”此亦不尽然,总之笔力不高,少凌空矫捷之致。

  太仪斡运,天回地游。四气鳞次,寒暑环周。星火既夕,忽焉素秋。凉风振落,熠燿宵流。

  吉士思秋,实感物化。日与月与,荏苒代谢。逝者如斯,曾无日夜。嗟尔庶士,胡宁自舍。

  仁道不遐,德鞧如羽。求焉斯至,众鲜克举。大猷玄漠,将抽厥绪。先民有作,遗我高矩。

  虽有淑姿,放心纵逸。田般于游,居多暇日。如彼梓材,弗勤丹漆。虽劳朴斫,终负素质。

  养由矫矢,兽号于林。蒱卢萦缴,神感飞禽。末技之妙,动物应心。研精耽道,安有幽深?

  安心恬荡,栖志浮云。体之以质,彪之以文。如彼南亩,力耒既勤。藨萒致功,必有丰殷。

  水积成渊,载澜载清,土积成山,歊蒸郁冥。山不让尘,川不辞盈。勉致含弘,以隆德声。

  高以下基,洪由纤起。川广自源,成人在始。累微以著,乃物之理。纆牵之长,实累千里。

  复礼终朝,天下归仁。若金受砺,若泥在钧。进德修业,辉光日新。隰朋仰慕,予亦何人?【养由基抚弓而盼,猴乃抱木而号。何者?诚在于心,而精通于物。见《淮南子》。蒱卢,即蒱且也,蒱且子见双鸟过之,其不被弋者亦下,见《汲冢书》。纆牵,索也。千里之马,系以长索,则为累矣,见《国策》。】

  答何劭

  吏道何其迫,窘然坐自拘。缨緌为徽纆,文宪焉可逾?恬旷苦不足,烦促每有余。良朋贻新诗,示我以游娱。穆如洒清风,奂若春华敷。自昔同寮宷,于今比园庐。衰夕近辱殆,庶几并悬舆。散发重阴下,抱杖临清渠。属耳听莺鸣,流目玩鯈鱼。从容养余日,取乐于桑榆。

  情诗

  清风动帷帘,晨月照幽房。佳人处遐远,兰室无容光。襟怀拥虚景,轻衾覆空床。居欢惜夜促,在戚怨宵长。拊枕独啸叹,感慨心内伤。

  游目四野外,逍遥独延伫。兰蕙缘清渠,繁华荫绿渚。佳人不在兹,取此欲谁与?巢居知风寒,穴处识阴雨。不曾远别离,安知慕俦侣?【秾丽之作,油然入人,茂先诗之上者,与葛生蒙楚诗同意。】

  杂诗

  晷度随天运,四时互相承。东壁正昏中,涸阴寒节升。繁霜降当夕,悲风中夜兴。朱火青无光,兰膏坐自凝。重衾无暖气,挟纩如怀冰。伏枕终遥夕,寤言莫予应。永思虑崇替,慨然独拊膺。

  傅玄

  休奕诗,聪颖处时带累句。大约长于乐府,而短于古诗。

  短歌行

  长安高城,层楼亭亭。干云四起,上贯天庭。蜉蝣何整,行如军征?蟋蟀何感,中夜哀鸣。蚍蜉愉乐,粲粲其荣。寤寐念之,谁知我情?昔君视我,如掌中珠。何意一朝,弃我沟渠?昔君与我,如影如形。何意一去,心如流星。昔君与我,两心相结。何意今日,忽然两绝?【后三段笔力甚横。】

  明月篇

  皎皎明月光,灼灼朝日晖。昔为春蚕丝,今为秋女衣。丹唇列素齿,翠彩发蛾眉。娇子多好言,欢合易为姿。玉颜盛有时,秀色随年衰。常恐新间旧,变故兴细微。浮萍本无根,非水将何依?忧喜更相接,乐极还自悲。

  杂诗

  志士惜日短,愁人知夜长。摄衣步前庭,仰观南雁翔。玄景随形运,流响归空房。清风何飘飖,微月出西方。繁星依青天,列宿自成行。蝉鸣高树间,野鸟号东厢。纤云时仿佛,渥露沾我裳。良时无停景,北斗忽低昂。常恐寒节至,凝气结为霜。落叶随风摧,一绝如流光。【清俊是选体,故《昭明》独收此篇。】

  杂言

  雷隐隐,感妾心。倾耳清听非车音。【点化长门赋中语,更觉敏妙。】

  吴楚歌

  燕人美兮赵女佳,其室则迩兮限层崖。云为车兮风为马,玉在山兮兰在野。云无期兮风有止,思多端兮谁能理?

  车遥遥篇

  车遥遥兮马洋洋,追思君兮不可忘。君安游兮西入秦,愿为影兮随君身。君在阴兮影不见,君依光兮妾所愿。【乐府中极聪明语,开张、王一派。然出张、王手,语极恬熟。】

  束皙

  补亡诗六章

  序曰:皙与同业畴人,肄修乡饮之礼。然所咏之诗,或有义无词,音乐取节,阙而不备。于是遥想既往,存思在昔,补著其文,以缀旧制。

  南陔

  《南陔》,孝子相戒以养也。

  循彼南陔,言采其兰。眷恋庭闱,心不遑安。彼居之子,罔或游盘。馨尔夕膳,洁尔晨餐。循彼南陔,厥草油油。彼居之子,色思其柔。眷恋庭闱,心不遑留。馨尔夕膳,洁尔晨羞。有獭有獭,在河之涘。凌波赴汩,噬鲂捕鲤。嗷嗷林乌,受哺于子。养隆敬薄,惟禽之似。勖增尔虔,以介丕祉。【“彼居之子”,居,谓未仕者。“色思其柔”,即色难注脚。“养隆敬薄”,即不敬何以别注脚。首言养,次言色,末言敬。】

  白华

  白华,孝子之洁白也。

  白华朱萼,被于幽薄。粲粲门子,知磨如错。终晨三省,匪惰其恪。白华绛趺,在陵之陬。茜茜士子,涅而不渝。竭诚尽敬,亹亹忘劬。白华玄足,在丘之曲。堂堂处子,无营无欲。鲜侔晨葩,莫之点辱。【《周礼》曰:“正室谓之门子。”郑玄曰:“正室适子,将代父当门者。”处子,即处士也。】

  华黍

  华黍,时和岁丰,宜黍稷也。

  黮黮重云,辑辑和风。黍华陵巅,麦秀丘中。靡田不播,九谷斯丰。奕奕玄霄,濛濛甘溜。黍发稠华,亦挺其秀。靡田不殖,九谷斯茂。无高不播。无下不殖。芒芒其稼,参参其稷。稸我王委,充我民食。玉烛阳明,显猷翼翼。【玄霄。玄云也。稸,畜同。《蔡泽传》:“力田积。”《尔雅》曰:“四气和谓之玉烛。”】

  由庚

  由庚,万物得由其道也。

  荡荡夷庚,物则由之。蠢蠢庶类,王亦柔之。道之既由,化之既柔。木以秋零,草以春抽。兽在于草,鱼跃顺流。四时递谢,八风代扇。纤阿按晷,星变其躔。五纬不愆,六气无易。愔愔我王,绍文之迹。【庚,训道也。夷庚,即“王道荡荡”意。】

  崇丘

  崇丘,万物得极其高大也。

  瞻彼崇丘,其林蔼蔼,植物斯高,动类斯大。周风既洽,王猷允泰。漫漫方舆,回回洪覆。【去声。】何类不繁?何生不茂?物极其性,人永其寿。恢恢大圜,茫茫九壤。资生仰化,于何不养。人无道夭,物极则长。【《庄子》曰:“终天年而不中道夭者,是智之盛也。”】

  由仪

  由仪,万物之生各得其仪也。

  肃肃君子,由仪率性,明明后辟,仁以为政。鱼游清沼,鸟萃平林。濯鳞鼓翼,振振其音。宾写尔诚,主竭其心。时之和矣,何思何修?文化内辑,武功外悠。【时既和矣,何所思虑?何所修治?惟以文化辑和于内,武功加于外远也。写由仪意极正大。六章不类周雅,然清和润泽,自是有道之言。】

  司马彪

  杂诗

  百草应节生,含气有深浅。秋蓬独何辜,飘飖随风转。长飙一飞薄,吹我之四远,搔首望故株,邈然无由返。

  陆机

  士衡诗亦推大家,然意欲逞博,而胸少慧珠,笔又不足以举之,遂开出排偶一家,西京以来,空灵矫健之气,不复存矣。降自梁陈,专工队仗。边幅复狭,令阅者白日欲卧,未必非士衡为之滥觞也。兹特取能运动者十二章,见士衡诗中,亦有不专堆垛者。谢康乐诗,亦多用排,然能造意,便与潘、陆辈迥别。士衡以名将之后,破国亡家,称情而言,必多哀怨,乃词旨敷浅,但工涂泽,复何贵乎?苏、李十九首,每近于风。士衡辈以作赋之体行之,所以未能感人。《文赋》云:“诗缘情而绮靡,殊非诗人之旨。”

  短歌行

  置酒高堂,悲歌临觞。人寿几何,逝如朝霜。时无重至,华不再阳。苹以春晖,兰以秋芳。来日苦短,去日苦长。今我不乐,蟋蟀在房。乐以会兴,悲以别章。岂曰无感?忧为子忘。我酒既旨,我肴既臧。短歌有咏,长夜无荒。【词亦清和,而雄气逸响。杳不可寻。】

  陇西行

  我静如镜,民动如烟。事以形兆,应以象悬。岂曰无才?世鲜兴贤。

  猛虎行

  渴不饮盗泉水,热不息恶木阴。恶木岂无枝,志士多苦心。整驾肃时命,杖策将远寻。饥食猛虎窟,寒栖野雀林。日归功未建,时往岁载阴。崇云临岸驶,鸣条随风吟。静言幽谷底,长啸高山岑。急弦无懦响,亮节难为音。人生诚未易,曷云开此衿?眷我耿介怀,俯仰愧古今。【《尸子》曰:“孔子至于胜母,莫矣而不宿;过于盗泉,渴矣而不饮,恶其名也。”江邃文释引《管子》曰:“士怀耿介之心,不荫恶木之枝。”起用六字句,最见奇峭,此士衡变体。】

  塘上行

  江篱生幽渚,微芳不足宣。被蒙风云会,移居华池边。发澡玉台下,垂影沧浪泉。沾润既已渥,结根奥且坚。四节逝不处,繁华难久鲜。淑气与时殒,余芳随见捐。天道有迁易,人理无常全。男欢智倾愚,女爱衰避妍。不惜微躯退,但惧苍蝇前。愿君广末光,照妾薄暮年。【亦是平韵,而音旨自婉。】

  拟明月何皎皎

  安寝北堂上,明月入我牖。照之有余辉,揽之不盈手。凉风绕曲房,寒蝉鸣高柳。踟蹰感物节,我行永已久。游宦会无成,离思难常守。

  拟明月皎夜光

  岁暮凉风发,昊天肃明月。招遥西北指,天汉东南倾。朗月照闲房,蟋蟀吟户庭。翻翻归雁集,嘒嘒寒蝉鸣。畴昔同宴友,翰飞戾高冥。服美改声听,居愉遗旧情。织女无机杼,大梁不架楹。【《尔雅》曰:“大梁,昴星也。”末二句总言有名无实,与汉人原词意同。】

  招隐诗

  明发心不夷,振衣聊踯躅。踯躅欲安之,幽人在浚谷。朝采南润藻,夕息西山足。轻条象云搆,密叶成翠幄。激楚伫兰林,回芳薄秀木。山溜何泠泠,飞泉漱鸣玉。哀音附灵波,颓响赴曾曲。至乐非有假,安事浇淳朴?富贵苟难图,税驾从所欲。【必富贵难图而始税驾,见已晚矣,士衡进退,所以不无可议。】

  赠冯文罴

  昔与二三子,游息承华南。拊翼同枝条,翻飞各异寻。苟无凌风翮,徘徊守故林。慷慨谁为感,愿言怀所钦。发轸清洛汭,驱马大河阴。伫立望朔涂,悠悠迥且深。分索古所悲,志士多苦心。悲情临川结,苦言随风吟。愧无杂佩赠,良讯代兼金。夫子茂远猷,款诚寄惠音。

  为顾彦先赠妇

  辞家远行游,悠悠三千里。京洛多风尘,素衣化为缁。修身悼忧苦,感念同怀子。隆思乱心曲,沉欢滞不起。欢沉难克兴,心乱谁为理?愿假归鸿翼,翻飞浙江汜。

  东南有思妇,长叹充幽闼。借问叹何为?佳人眇天末。游宦久不归,山川修且阔。形影参商乖,音息旷不达。离合非有常,譬彼弦与筈。愿保金石躯,慰妾长饥渴。【上章赠妇,下章妇答,古有此体。】

  赴洛道中作

  总辔登长路,呜咽辞密亲。借问子可之,世网婴我身。永叹遵北渚,遗思结南津。行行遂已远,野途旷无人。山泽纷纡余,林薄杳阡眠。虎啸深谷底,鸡鸣高树巅。哀风中夜流,孤兽更我前。悲情触物感,沉思郁缠绵。伫立望故乡,顾影凄自怜。远游越山川,山川修且广。振策陟崇丘,案辔遵平莽。夕息抱影寐,朝徂衔思往。顿辔倚嵩岩,侧听悲风响。清露坠素辉,明月一何朗。抚枕不能寐,振衣独长想。二章稍见凄切。

  陆云

  诗与士衡亦复伯仲。

  谷风

  闲居外物,静言乐幽。绳枢增结,瓮牖绸缪。和神当春,清节为秋。天地则尔,户庭已悠。【“和神”二语,即《庄子》“暖然似春,凄然似秋”意。】

  顾彦先赠妇

  我在三川阳,子居五湖阴。山海一何旷,譬彼飞与沉。目想清慧姿,耳存淑媚音。独寐多远念,寤言抚空衿。彼美同怀子,非尔谁为心?

  悠悠君行迈,茕茕妾独止。山河安可逾,永路隔万里。京室多妖冶,粲粲都人子。雅步擢纤腰,巧言发皓齿。佳丽良可美,衰贱焉足纪?远蒙眷顾言,衔恩非望始。【亦上章赠妇,下章妇答。】

  潘岳

  安仁诗品,又在士衡之下。兹特取悼亡二诗,格虽不高,其情自深也。安仁党于贾后,谋杀太子遹与有力焉。人品如此,诗安得佳。潘陆诗如翦彩为花,绝少生韵,故所收从略。

  悼亡诗

  荏苒冬春谢,寒暑忽流易。之子归穷泉,重壤永幽隔。私怀谁克从,淹留亦何益?僶俛恭朝命,回心反初役。望庐思其人,入室想所历。帏屏无仿佛,翰墨有余迹。流芳未及歇,遗挂犹在壁。怅怳如或存,周遑忡惊惕。如彼翰林鸟,双栖一朝只。如彼游川鱼,比目中路析。春风缘隙来,晨溜承檐滴。寝息何时忘,沉忧日盈积。庶几有时衰,庄缶犹可击。【“周遑忡惊惕”五字,颇不成句法。如彼翰林鸟四语反浅。】

  皎皎窗中月,照我室南端。清商应秋至,溽暑随节阑。凛凛凉风升,始觉夏衾单。岂曰无重纩,谁与同岁寒?岁寒无与同,明月何胧胧。展转眄枕席,长簟竟床空。床空委清尘,室虚来悲风。独无李氏灵,仿佛睹尔容。抚衿长叹息,不觉泪沾胸。沾胸安能已,悲怀从中起。寝兴目存形,遗音犹在耳。上惭东门吴,下愧蒙庄子。赋诗欲言志,此志难具纪。命也可奈何,长戚自令鄙。【《列子》曰:“魏有东门吴者,子死而不忧。”】

  张翰

  杂诗

  暮春和气应,白日照园林。青条若总翠,黄花如散金。嘉卉亮有观,顾此难久耽。延颈无良涂,顿足托幽深。荣与壮俱去,贱与老相寻。欢乐不照颜,惨怆发讴吟。讴吟何嗟及,古人可慰心。【唐人以“黄花如散金”命题试士,士多以黄花为菊,合式者不满其数。】

  左思

  钟嵘评左诗,谓“野于陆机,而深于潘岳”,此不知太冲者也。太冲胸次高旷,而笔力又复雄迈,陶冶汉魏,自制伟词,故是一代作手,岂潘陆辈所能比埒?

  杂诗

  秋风何冽冽,白露为朝霜。柔条旦夕劲,绿叶日夜黄。明月出云崖,皦皦流素光。披轩临前庭,嗷嗷晨雁翔。高志局四海,块然守空堂。壮齿不恒居,岁暮常慨慷。

  咏史八首

  弱冠弄柔翰,卓荦观群书。著论准过秦,作赋拟子虚。边城苦鸣镝,羽檄飞京都。虽非甲胄士,畴昔览穰苴。长啸激清风。志若无东吴。铅刀贵一割。梦想骋良图。左盼澄江湘。右盼定羌胡。功成不受爵,长揖归田庐。【东吴,孙吴也。此自章言。】

  郁郁涧底松,离离山上苗。以披径寸茎,荫此百尺条。世胄蹑高位,英俊沈下僚。地势使之然,由来非一朝。金张藉旧业,七叶珥汉貂。冯公岂不伟,白首不见招。【荀悦汉纪曰,冯唐白首,屈于郎署。】

  吾希段干木,偃息藩魏君。吾慕鲁仲连,谈笑却秦军。当世贵不羁,遭难能解纷。功成耻受赏,高节卓不群。临组不肯绁,对珪宁肯分。连玺曜前庭,比之犹浮云。【秦欲攻魏,司马康谏曰:“段干木贤者,而魏礼之,毋乃不可乎?”秦君以为然,乃止。见《吕氏春秋》。《幽通赋》曰:“干木偃息以藩魏。”】

  济济京城内,赫赫王侯居。冠盖荫四术,朱轮竟长衢。朝集金张馆,暮宿许史庐。南邻击钟磬,北里吹笙竽。寂寂扬子宅,门无卿相舆。寥寥空宇中,所讲在玄虚。言论准宣尼,辞赋拟相如。悠悠百世后,英名擅八区。

  皓天舒白日,灵景耀神州,列宅紫宫里,飞宇若云浮。峨峨高门内,蔼蔼皆王侯。自非攀龙客,何为歘来游?被褐出阊阖,高步追许由。振衣千仞冈,濯足万里流。【俯视千古。】

  荆轲饮燕市,酒酣气益震。【平声。】哀歌和渐离,谓若傍无人。虽无壮士节,与世亦殊伦。高盼邈四海,豪右何足陈。贵者虽自贵,视之若埃尘。贱者虽自贱,重之若千钧。

  主父宦不达,骨肉还相薄。买臣困樵采,伉俪不安宅。陈平无产业,归来翳负郭。长卿还成都,壁立何寥廓。四贤岂不伟,遗烈光篇籍。当其未遇时,忧在填沟壑。英雄有迍邅,由来自古昔。何世无奇才,遗之在草泽。

  习习笼中鸟,举翮触四隅。落落穷巷士,抱影守空庐。出门无通路,枳棘塞中涂。计策弃不收,块若枯池鱼。外望无寸禄,内顾无斗储。亲戚还相蔑,朋友日夜疏。苏秦北游说,李斯西上书。俯仰生荣华,咄嗟复雕枯。饮河期满腹,贵足不愿余。巢林栖一枝,可为达士模。【言苏秦李斯,始不遇而继遇。终不得死所也,故有俯仰咄嗟之叹云。太冲咏史,不必专咏一人,专咏一事,咏古人而己之性情俱见,此千秋绝唱也。后惟明远太白能之。】

  招隐二首

  杖策招隐士,荒涂横古今。岩穴无结构,丘中有鸣琴。白云停阴冈,丹葩曜阳林。石泉漱琼瑶,纤鳞或浮沉。非必丝与竹,山水有清音。何事待啸歌,灌木自悲吟。秋菊兼糇粮,幽兰间重襟。踌躇足力烦,聊欲投吾簪。

  经始东山庐,果下自成榛。前有寒泉井,聊要莹心神。峭茜青葱间,竹柏得其真。弱叶栖霜雪,飞荣流余津。爵服无常玩,好恶有屈伸。结绶生缠牵,弹冠去埃尘。惠连非吾屈,首阳非吾仁。相与观所尚,逍遥撰良辰。【惠连、柳下惠少连也。】

  左贵嫔

  啄木诗

  南山有鸟,自名啄木。饥则啄树,暮则巢宿。无干于人,惟志所欲。性清者荣,性浊者辱。【学问语,无蒙腐气。】

  张载

  七哀诗

  北芒何累累,高陵有四五。借问谁家坟,皆云汉世主。恭文遥相望,原陵郁膴膴。委世丧乱起,贼盗如豺虎。毁壤过一坯,便房启幽户。珠柙离玉体,珍宝见剽虏。园寝化为墟,周墉无遗堵。蒙茏荆棘生,蹊迳登童竖。狐兔窟其中,芜秽不复扫。【叶。】颓陇并垦发,萌颖营农圃。昔为万乘君,今为丘中土。感彼雍门言,凄怆哀往古。【《后汉书》曰:“葬孝安皇帝于恭陵,葬文帝于文陵,葬光武皇帝于原陵。”《董卓传》:“使吕布发诸帝陵,及公卿以下冢墓,收其宝玉。”】

  张协

  杂诗

  秋夜凉风起,清气荡暄浊。蜻蛚吟阶下,飞蛾拂明烛。君子从远役,佳人守茕独。离居几何时,钻燧忽改木。房栊无行迹,庭草萋以绿。青苔依空墙,蜘蛛网四屋。感物多所怀,沉忧结心曲。

  朝霞迎白日,丹气临旸谷。翳翳结繁云,森森散雨足。轻风摧劲草,凝霜竦高木。密叶日夜疏,丛林森如束。畴昔叹时迟,晚节悲年促。岁暮怀百忧,将从季主卜。

  昔我资章甫,聊以适诸越。行行入幽荒,瓯骆从祝发。穷年非所用,此货将安设?瓴甋夸玙璠,鱼目笑明月。不见郢中歌,能否居然别。阳春无和者,巴人皆下节。流俗多昏迷,此理谁能察?【《庄子》曰:“楚人资章甫而适诸越,越人敦发文身,无所用之。”注云:敦,断也。汉立驺遥为东海王,都柬瓯。驺,一作骆。祝发,祝亦断也。】

  大火流坤维,白日驰西陆。浮阳映翠林,回飙扇绿竹。飞雨洒朝兰,轻露栖丛菊。龙蛰暄气凝,天高万物肃。弱条不重结,芳蕤岂再馥?人生瀛海内,忽如鸟过目。川上之叹逝,前修以自勖。

  述职投边城,羁束戎旅间。下车如昨日,望舒四五圆。借问此何时,蝴蝶飞南园。流波恋旧浦,行云思故山。闽越衣文虵,胡马愿度燕。土风安所习,由来有固然。

  结宇穷冈曲,耦耕幽薮阴。荒庭寂以闲,幽岫峭且深。凄风起东谷,有渰兴南岑。虽无箕毕期,肤寸自成霖。泽雉登垄雊,寒猿拥条吟。溪壑无人迹,荒楚郁萧森。投耒循岸垂,时闻樵采音。重基可拟志,回渊可比心。养真尚无为,道胜贵陆沉。游思竹素园,寄辞翰墨林。【陆沉,譬如无水而沉也。见《庄子》。东观书见竹素。】

  孙楚

  征西官属送于陟阳候作诗

  征西扶风王骏。

  晨风飘岐路,零雨被秋草。倾城远追送,饯我千里道。三命皆有极。咄嗟安可保?莫大于殇子,彭聃犹为夭。吉凶如纠缠,忧喜相纷绕。天地为我垆,万物一何小。达人垂大观,诫此苦不早。乖离即长衢,惆怅盈怀抱。孰能察其心,鉴之以苍昊。齐契在今朝,守之与偕老。【黄帝曰:“上寿百二十,中寿百年,下寿八十。”是谓三命。隐侯谓子荆零雨之章,指此。送别诗以齐物作主,古人用意,不专粘著,此亦一体。】

  曹摅

  感旧诗

  富贵他人合,贫贱亲戚离。廉蔺门易轨,田窦相夺移。晨风集茂林,栖鸟去枯枝。今我唯困蒙,群士所背驰。乡人敦懿义,济济荫光仪。对宾颂有客,举觞咏露斯。临乐何所叹?素丝与路歧。【殷浩坐废,韩康伯咏首二句,因而泣下。】

  王赞

  杂诗

  朔风动秋草,边马有归心。胡宁久分析,靡靡忽至今?王事离我志,殊隔过商参。昔往鸧鹒鸣,今来蟋蟀吟。人情怀旧乡,客鸟思故林。师涓久不奏,谁能宣我心?【起得雄杰,隐侯谓正长朔风之句,指此。】

  郭泰机

  答傅咸

  皦皦白素丝,织为寒女衣。寒女虽妙巧,不得秉杼机。天寒知运速,况复雁南飞。衣工秉刀尺,弃我忽若遗。人不取诸身,世事焉所希?况复已朝餐,曷由知我饥?【通体喻言,讽傅之不能荐己也。老杜《白丝行》本此。】

●古诗源卷八

○晋诗

  刘琨

  越石英雄失路,万绪悲凉,故其诗随笔倾吐,哀音无次,读者乌得于语名间求之!

  答卢谌

  琨顿首。损书及诗。备酸辛之苦言,畅经通之远旨。执玩反覆,不能释手,慨然以悲,欢然以喜。昔在少壮,未尝检括,远慕老庄之齐物,近嘉阮生之放旷,怪厚薄何从而生,哀乐何由而至。自顷辀张,困于逆乱。国破家亡,亲友凋残,负杖行吟,则百忧俱至,块然独坐,则哀愤两集,时复相与,举觞对膝,破涕为笑,排终身之积惨,求数刻之暂欢,譬由疾疢弥年,而欲一丸销之,其可得乎?夫才生于世,世实须才。和氏之璧,焉得独曜于郢握?夜光之珠,何得专玩于隋掌。天下之宝,当与天下共之。但分析之日,不能不怅恨耳。然后知聃周之为虚诞,嗣宗之为妄作也。昔騄骥倚辀于吴阪,长鸣于良乐,知与不知也;百里奚愚于虞而智于秦,遇与不遇也。今君遇之矣,勖之而已。不复属意于文二十余年矣,久废则无次,想必欲其一反,故称【去声。】旨送一篇,适足以彰来诗之益美耳。琨顿首顿首。

  厄运初遘,阳爻在六。乾象栋倾,坤仪舟覆。横厉纠纷,群妖竞逐。火燎神州,洪流华域。彼黍离离,彼稷育育。哀我皇晋,痛心在目。【其一。】

  天地无心,万物同涂。祸淫莫验,福善则虚。逆有全邑,义无完都。英蕊夏落,毒卉冬敷。如彼龟玉,韫椟毁诸。刍狗之炎,其最得乎。【其二。】

  咨余软弱,弗克负荷。【协平韵。】愆亹仍彰,荣宠屡加。威之不建,祸延凶播。协平韵。忠陨于国,孝愆于家。斯罪之积,如彼山河。斯亹之深,终莫能磨。【其三。】

  郁穆旧姻,嬿婉新婚。裹粮携弱,匍匐星奔。未辍尔驾,已隳我门。二族偕覆,三孽并根。长惭旧孤,永负冤魂。【其四。】

  亭亭孤干,独生无伴。绿叶繁缛,柔条修罕。朝采尔实,夕捋尔竿。【协、公旦切。】竿翠丰寻。逸珠盈椀。实消我忧。忧急用缓。逝将去乎,庭虚情满。【其五。】

  虚满伊何,兰桂移植。茂彼春林,瘁此秋棘。有鸟翻飞,不遑休息。匪桐不栖,匪竹不食。永戢东羽。翰抚西翼,我之敬之,废欢辍职。【其六。】

  音以赏奏,味以殊珍。文以明言,言以畅神。之子之往,四美不臻。澄醪覆觞,丝竹生尘。素卷莫启,幄无谈宾。既孤我德,又阙我邻。【其七。】

  光光段生,出幽迁乔。资忠履信,武烈文昭。旍弓騂騂,舆马翘翘。乃奋长縻,是辔是镳。何以赠子?竭心公朝。何以叙怀?引领长谣。【其八。前赵录,刘聪僭即位于平阳,遣从弟曜攻晋。破洛阳,遣子粲攻长安,陷之。首章指国破。《老子》云:“天地不仁,以万物为刍狗。”二章谓天不祚晋。《汉书》王尊之子伯为京兆尹,软弱不胜。威之不建二句,指为聪所败。而父母遇害,已遭祸而播迁也。三章指家亡。《晋书》,琨妻即谌之从母也。新婚未详。琨父母为令狐泥所害,谌父母为刘粲所害,故云二族偕覆。三孽谓琨兄三子,或谓刘聪、刘曜、刘粲。玩下二句,恐说不去。四章指途中奔窜,申上章意。五章托喻已有资于谌,而谌又将之段匹所也。逸珠、喻德,盈椀、多也。六章喻谌之段所,犹凤之栖梧桐,食竹实,而已如秋棘之瘁,弥见可伤。四美顶上音味文言,七章言己之孤特,亦申前意。八章表段之忠信,见谌之托身得所,望其戮力王室,转危为安。收束通篇,感激豪宕。】

  重赠卢谌

  握中有玄璧,本自荆山璆。惟彼太公望,昔在渭滨叟。【平声。】邓生何感激,千里来相求。白登幸曲逆,鸿门赖留侯。重耳任五贤,小白相射钩。苟能隆二伯,安问党与仇。中夜抚枕叹,想与数子游。吾衰久矣夫,何其不梦周。谁云圣达节,知命故不忧。宣尼悲获麟,西狩涕孔丘。功业未及建,夕阳忽西流。时哉不我与,去乎若云浮。朱实陨劲风,繁英落素秋。狭路倾华盖。骇驷摧双辀。何意百炼刚,化为绕指柔。【邓生,邓禹也。二伯,桓文也。数子,谓太公以下也。宣尼二句,重复言之,与阮籍多言焉所告,繁辞将诉谁。同一反覆申言之意。拉杂繁会,自成绝调。】

  扶风歌

  朝发广莫门,暮宿丹水山。左手弯繁弱,右手挥龙渊。顾瞻望宫阙,俯仰御飞轩。据鞍长叹息,泪下如流泉。系马长松下,发鞍高岳头。烈烈悲风起,泠泠涧水流。挥手长相谢,哽咽不能言。浮云为我结,归鸟为我旋。去家日已远,安知存与亡?慷慨穷林中,抱膝独摧藏。麋鹿游我前,猿猴戏我侧。资粮既乏尽,薇蕨安可食?揽辔命徒侣,吟啸绝岩中。君子道微矣,夫子故有穷。惟昔李骞期,寄在匈奴庭。忠信反获罪,汉武不见明。我欲竞此曲,此曲悲且长。弃置勿重陈,重陈令心伤。【悲凉酸楚,亦复不知所云。】

  卢谌

  答魏子悌

  崇台非一干,珍裘非一腋。多士成大业,群贤济弘绩。遇蒙时来会,聊齐朝彦迹。顾此腹背羽,愧彼排虚翮。寄身荫四岳,托好凭三益。倾盖虽终朝,大分迈畴昔。在危每同险,处安不异易。【叶亦。】俱涉晋昌艰,共更飞狐厄。恩由契阔生,义随周旋积。岂谓乡曲誉,谬充本州役。乖离令我感,悲欣使情惕。理以精神通,匪曰形骸隔。妙诗申笃好,清义贲幽赜。恨无随侯珠,以酬荆文璧。【《韩诗外传》,晋平公游于河而叹曰:“安得贤士,与之乐此也?”船人孟胥对曰:“主君亦不好士耳,何患无士?”公曰:“吾食客门左千人,右千人,何谓不好士乎?”对曰:“鸿鹄一举千里,恃有六翮耳,背上之毛,腹下之毳,益一把飞不加高,损一把飞不加下。今君之食客,亦有六翮在其中矣,将皆背上之毛,腹下之毳耶。”晋昌、郡名,时段匹磾为此职,谌在磾所,难斥言之,故曰晋昌也。石勒攻乐平,刘琨自代飞狐口奔安次。】

  时兴

  亹亹圆象运,悠悠方仪廓。忽忽岁云暮,游原采萧藿。北逾芒与河,南临伊与洛。凝霜沾蔓草,悲风振林薄。摵摵芳叶零,蕊蕊芬华落。下泉激烈清,旷野增辽索。登高眺遐荒,极望无崖崿。形变随时化,神感因物作。澹乎至人心,恬然存玄漠。【蕊蕊、垂也。】

  谢尚

  大道曲

  《乐府广题》曰:“尚为镇西将军,尝著紫罗襦,据胡床,在市中佛国门楼上,弹琵琶,作《大道曲》,市人不知为三公也。”

  青阳二三月,柳青桃复红。车马不相识,音落黄埃中。【写喧杂之况如见。】

  郭璞

  赠温峤

  人亦有言,松竹有林。及尔臭味,异苔同岑。言以忘得,交以澹成。匪同伊和,惟我与生。尔神余契,我怀子情。携手一割,安知尘冥。【异苔同岑句,造语新俊。士衡赠冯维熊诗中,亦有此意,而语特庸常。】

  游仙诗

  游仙诗本有托而言,坎壈咏怀,其本旨也。钟嵘贬其少列仙之趣,谬矣。

  京华游侠窟,山林隐遁栖。朱门何足荣,未若托蓬莱。临源挹清波,陵冈掇丹荑。灵溪可潜盘,安事登云梯。漆园有傲吏,莱氏有逸妻。进则保龙见,退为触藩羝。高蹈风尘外,长揖谢夷齐。【进谓仕进,言仕进者为保全身名之计,退则类触藩之羝。孰若高蹈风尘,从事于游仙乎?】

  青溪千余仞,中有一道士。云生梁栋间,风出窗户里。借问此何谁,云是鬼谷子。翘迹企颍阳,临河思洗耳。阊阖西南来,潜波涣鳞起。灵妃顾我笑,粲然启玉齿。蹇修时不存,要之将谁使?【阊阖、指风言,言风至而波纹生。】

  翡翠戏兰苕,容色更相鲜。绿萝结高林,蒙茏盖一山。中有冥寂士,静啸抚清弦。放情凌霄外,嚼蕊挹飞泉。赤松临上游,驾鸿乘紫烟。左把浮丘袖,右拍洪崖肩。借问蜉蝣辈,宁知龟鹤年。

  六龙安可顿,运流有代谢。时变感人思,已秋复愿夏。淮海变微禽,吾生独不化。虽欲腾丹溪。云螭非我驾,愧无鲁阳德。回日向三舍。临川哀年迈,抚心独悲吒。

  逸翮思拂霄,迅足羡远游。清源无增澜,安得运吞舟?珪璋虽特达,明月难暗投。潜颖怨青阳,陵苕哀素秋。悲来恻丹心,零泪缘缨流。【清源不能运吞舟之鱼。喻尘俗不足容乎仙也。言世俗不欲求仙。而怨天施之偏,叹浮生之促,类潜颖怨青阳之晚臻,陵苕哀素秋之早至也,潜颖、在幽潜而结颖者。】

  杂县【音爰。】寓鲁门,风暖将为灾。吞舟涌海底,高浪驾蓬莱。神仙排云出,但见金银台。陵阳挹丹溜,容成挥玉杯。姮娥扬妙音,洪崖颔其颐。升降随长烟,飘飖戏九垓。奇龄迈五龙,千岁方婴孩。燕昭无灵气,汉武非仙才。【杂县、即爰居也。陵阳子明、乃仙去者。五龙、皇后君也,昆弟五人,皆人面龙身,分治五方。燕昭使人入海,求蓬莱方丈瀛洲。超然而来,截然而止,须玩章法。】

  晦朔如循环,月盈已见魄。蓐收清西陆,朱羲将由白。寒露拂陵苕,女萝辞松柏。蕣荣不终朝,蜉蝣岂见夕。圆丘有奇草,钟山出灵液。王孙列八珍,安期炼五石。长揖当途人,去来山林客。【十洲记曰,北海外有钟山,自生千岁芝及神草灵液。王孙列八珍以伤生,安期炼五石以延寿。谓优劣殊也。抱朴子曰,五石者,丹砂、雄黄、白矾石、曾青、磁石也。】

  曹毗

  夜听捣衣

  寒兴御纨素,佳人理衣■〈衤金〉。冬夜清且永,皓月照堂阴。纤手叠轻素,朗杵叩鸣砧。清风流繁节,回飙洒微吟。嗟此往运速,悼彼幽滞心。二物感余怀,岂但声与音?【二物承上二语。】

  王羲之

  兰亭集诗

  不独序佳,诗亦清超越俗。“寓目理自陈”,“适我无非新”,非学道有得者,不能言也。序为人人诵述,故不录。

  仰视碧天际,俯瞰渌水滨。寥阒无涯观,寓目理自陈。大矣造化工,万殊莫不均。群籁虽参差,适我无非新。【有逸句云:“争先非吾事,静照在忘求。”附录于此。】

  陶潜

  渊明以名臣之后,际易代之时,欲言难言,时时寄托,不独《咏荆轲》一章也。六朝第一流人物,其诗有不独步千古者耶?钟嵘谓其原出于应璩,成何议论!清远闲放,是其本色,而其中自有一段渊深朴茂,不可几及处。唐人王、储、韦、柳诸公,学焉而得其性之所近。

  停云

  停云,思亲友也。罇湛新醪,园列初荣,愿言不从,叹息弥襟。

  霭霭停云,濛濛时雨。八表同昏,平路伊阻。静寄东轩,春醪独抚。良朋悠邈,搔首延伫。

  停云霭霭,时雨濛濛。八表同昏,平陆成江。有酒有酒,闲饮东窗。愿言怀人,舟车靡从。

  东园之树,枝条再荣。竞用新好,以招余情。人亦有言,日月于征。安得促席,说彼平生。

  翩翩飞鸟,息我庭柯。敛翮闲止,好声相和。岂无他人,念子实多。愿言不获,抱恨如何。

  时运

  时运,游暮春也。春服既成,景物斯和。偶影独游,欣慨交心。

  迈迈时运,穆穆良朝。袭我春服,薄言东郊。山涤余霭,宇暖微霄。有风自南,翼彼新苗。【翼字写出性情。】

  洋洋平津,乃濑乃濯。邈邈遐景,载欣载瞩。称心而言,人亦易足。挥兹一觞,陶然自乐。

  延目中流,悠悠清沂。童冠齐业,闲咏以归。我爱其静,寤寐交挥。但恨殊世,邈不可追。

  斯晨斯夕,言息其庐。花药分列,林竹翳如。清琴横床,浊酒半壶。黄唐莫逮,慨独在予。【晋人放达,陶公有忧勤语,有安分语,有自任语。黄农之感,寄意西山,此首时或流露。】

  劝农

  悠悠上古,厥初生人。傲然自足,抱朴含真。智巧既萌,资待靡因。谁其赡之,实赖哲人。

  哲人伊何?时惟后稷。赡之伊何?实曰播殖。舜既躬耕,禹亦稼穑。远若周典,八政始食。

  熙熙令音,猗猗原陆。卉木繁荣,和风清穆。纷纷士女,趣时竞逐。桑妇宵征,农夫野宿。

  气节易过,和泽难久。冀缺携俪,沮溺结耦。相彼贤达,犹勤垄亩。矧伊众庶,曳裾拱手。

  民生在勤,勤则不匮。宴安自逸,岁暮奚冀?儋石不储,饥寒交至。顾尔俦列,能不怀愧!

  孔耽道德,樊须是鄙。董乐琴书,田园不履。若能超然,投迹高轨。敢不敛衽,敬赞德美。【言能如孔子董相,庶可不务陇亩耳。勉人意在言外领取。】

  命子

  嗟余寡陋,瞻望弗及。顾惭华鬓,负影只立。三千之罪,无后为急。我诚念哉,呱闻尔泣。

  卜云嘉日,占亦良时。名汝曰俨,字汝求思。温恭朝夕,念兹在兹。尚想孔伋,庶其企而。

  厉夜生子,遽而求火。凡百有心,奚特于我。既见其生,实欲其可。人亦有言,斯情无假。【叶古。】

  日居月诸,渐免于孩。福不虚至,祸亦易来。夙兴夜寐,愿尔斯才。尔之不才,亦已焉哉。

  酬丁柴桑二章

  有客有客,爰来爰止。秉直司聪,于惠百里。餐胜如归,聆善若始。【可作箴规。】

  匪惟谐也,屡有良由。载言载眺,以写我忧。放欢一遇,既醉还休。实欣心期,方从我游。

  归鸟四章

  翼翼归鸟,晨去于林。远之八表,近憩云岑。和风不洽,翻翮求心。顾俦相鸣,景庇清阴。

  翼翼归鸟,载翔载飞。虽不怀游,见林情依。遇云颉颃,相鸣而归。遐路诚悠,性爱无遗。

  翼翼归鸟,驯林徘徊。岂思天路。欣反旧栖。虽无昔侣,众声每谐。日夕气清,悠然其怀。【亦谐众声,自有旷怀。此是何等品格。】

  翼翼归鸟,戢羽寒条。游不旷林,宿则森标。晨风清兴,好音时交。矰缴奚施,已卷安劳。【他人学三百篇,痴而重,与风雅日远。此不学三百篇,清而腴,与风雅日近。】

  游斜川

  辛丑岁正月五日,天气澄和,风物闲美。与二三邻曲,同游斜川。临长流,望层城,鲂鲤跃鳞于将夕,水鸥乘和以翻飞。彼南阜者,名实旧矣,不复乃为嗟叹;若夫层城,傍无依接,独秀中皋;遥想灵山,有爱嘉名,欣对不足,率尔赋诗。悲日月之遂往,悼吾年之不留,各疏年纪乡里,以记其时日。

  开岁倏五日,吾生行归休。念之动中怀,及辰为兹游。气和天惟澄,班坐依远流。弱湍驰文鲂,闲谷矫鸣鸥。迥泽散游目,缅然睇层丘。虽微九重秀,顾瞻无匹俦。提壶接宾侣,引满更献酬。未知从今去,当复如此不?中觞纵遥情,忘彼千载忧。且极今朝乐,明日非所求。

  答庞参军

  相知何必旧,倾盖定前言。有客赏我趣,每每顾林园。谈谐无俗调,所说圣人篇。或有数斗酒,闲饮自欢然。我实幽居士,无复东西缘。物新人唯旧,弱毫多所宣。情通万里外,形迹滞江山。君其爱体素,来会在何年?

  五月旦作和戴主簿

  虚舟纵逸棹,回复遂无穷。发岁始俯仰,星纪奄将中。南窗罕悴物,北林荣且丰。神渊泻时雨,晨色奏景风。既来孰不去,人理固有终。居常待其尽,曲肱岂伤忡。迁化或夷险,肆志无纞隆。即事如已高,何必升华嵩。

  九日闲居

  余闲居爱重九之名,秋菊盈园,而持醪靡由。空服九华,寄怀于言。

  世短意常多,斯人乐久生。日月依辰至,举俗爱其名。露凄暄风息,气澈天象明。往燕无遗影,来雁有余声。酒能祛百虑,菊为制颓龄。如何蓬庐士,空视时运倾?尘爵耻虚罍,寒华徒自荣。敛襟独闲谣,缅焉起深情。栖迟固多娱,淹留岂无成?【世短意常多,即所云生年不满百,常怀千岁忧也。炼得更简更遒,后人得古人片言,便衍作数语。】

  和刘柴桑

  山泽久见招,胡事乃踌躇?直为亲旧故,未忍言索居。良辰入奇怀,挈杖还西庐。荒涂无归人,时时见废墟。茅茨已就治,新畴复应畲。谷风转凄薄,春醪解饥劬。弱女虽非男,慰情良胜无。栖栖世中事,岁月共相疏。耕织称其用,过此奚所须?去去百年外,身名同翳如。【弱女非男,喻酒之薄也。】

  酬刘柴桑

  穷居寡人用,时忘四运周。榈庭多落叶,慨然知已秋。新葵郁北牖,嘉穟养南畴。今我不为乐,知有来岁不?命室携童弱,良日登远游。

  和郭主簿二首

  蔼蔼堂前林,中夏贮清阴。凯风因时来,回飙开我襟。息交游闲业,卧起弄书琴。园蔬有余滋,旧谷犹储今。营己良有极,过足非所钦。舂秫作美酒,酒熟吾自斟。弱子戏我侧,学语未成音。此事真复乐,聊用忘华簪。遥遥望白云,怀古一何深。【过足非所钦,与过此奚所须,知足要言,一结悠然不尽。】

  和泽周三春,清凉素秋节。露凝无游氛,天高风景澈。陵岑耸逸峰,遥瞻皆奇绝。芳菊开林耀,青松冠岩列。怀此贞秀姿,卓为霜下杰。衔觞念幽人,千载抚尔诀。检素不获展,厌厌竟良月。

  赠羊长史

  左军羊长史衔使秦川,作此与之。

  愚生三季后,慨然念黄虞。得知千载外,正赖古人书。贤圣留余迹,事事在中都。岂忘游心目,关河不可逾。九域甫已一,逝将理舟舆。闻君当先迈,负疴不获俱。路若经商山,为我少踌躇。多谢绮与甪,精爽今何如?紫芝谁复采?深谷久应芜。驷马无贳患,贫贱有交娱。清谣结心曲,人乖运见疏。拥怀累代下,言尽意不舒。

  癸卯岁十二月中作与从弟敬远

  寝迹衡门下,邈与世相绝。顾盼莫谁知,荆扉昼长闭。必结切。凄凄岁暮风,翳翳经日雪。倾耳无希声,在目皓已洁。劲气侵襟袖,箪瓢谢屡设。萧索空宇中,了无一可悦。历览千载书,时时见遗烈。高操非所攀,深得固穷节。平津苟不由,栖迟讵为拙。寄意一言外,兹契谁能别。【渊明咏雪,未尝不刻划,却不似后人粘滞。愚于汉人得两语曰:“前日风雪中,故人从此去。”于晋人得两语曰:“倾耳无希声,在目皓已洁。”于宋人得一语曰:“明月照积雪。”为千古咏雪之式。】

  始作镇军参军经曲阿作

  弱龄寄事外,委怀在琴书。被褐欣自得,屡空常晏如。时来苟冥会,宛辔憩通衢。投策命晨装,暂与园田疏。眇眇孤舟逝,绵绵归思纡。我行岂不遥,登降千里余。目倦川途异,心念山泽居。望云惭高鸟,临水愧游鱼。真想初在襟,谁谓形迹拘。聊且凭化迁,终返班生庐。【班固幽通赋曰:“终保己而贻则,止里仁之所庐。”】

  辛丑岁七月赴假还江陵夜行途中作

  闲居三十载,遂与尘事冥。诗书敦宿好,林园无俗情。如何舍此去,遥遥至南荆。叩枻新秋月,临流别友生。凉风起将夕,夜景湛虚明。昭昭天宇阔,皛皛川上平。怀役不遑寐,中宵尚孤征。商歌非吾事,依依在耦耕。投冠旋旧墟,不为好爵萦。养真衡茅下,庶以善自名。

  桃花源诗【并记】

  晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。林尽水源,便得一山,山有小口,仿佛若有光,便舍船从口入。初极狭,才通人,复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田美池桑竹之属,阡陌交通,鸡犬相闻。其中往来种作,男女衣著,悉如外人,黄发垂髫,并怡然自乐。见渔人,乃大惊,问所从来,具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人,来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”既出,得其船,便扶向路,处处志之。及郡下,诣太守说如此。太守即遣人随其往,寻向所志,遂迷不复得路。南阳刘子骥,高尚士也,闻之,欣然规往,未果,寻病终,后遂无问津者。

  嬴氏乱天纪,贤者避其世,黄绮之商山,伊人亦云逝。往迹浸复湮,来径遂芜废。相命肄农耕,日入从所憩。桑竹垂余荫,菽稷随时艺。春蚕收长丝,秋熟靡王税。荒路暧交通,鸡犬互鸣吠。俎豆有古法,衣裳无新制。童孺纵行歌,斑白欢游诣。草荣识节和,木衰知风厉。虽无纪历志,四时自成岁。怡然有余乐,于何劳智慧。奇踪隐五百,一朝敞神界。淳薄既异原,旋复还幽蔽。借问游方士,焉测尘嚣外。愿言蹑轻风,高举寻吾契。【此即羲皇之想也,必辨其有无,殊为多事。】

  归田园居五首

  少无适俗韵,性本爱丘山。误落尘网中,一去三十年。羁鸟恋旧林,池鱼思故渊。开荒南野际,守拙归园田。方宅十余亩,草屋八九间。榆柳荫后檐,桃李罗堂前。暧暧远人村,依依墟里烟。狗吠深巷中,鸡鸣桑树颠。户庭无尘杂,虚室有余闲。久在樊笼里,复得返自然。

  野外罕人事,穷巷寡轮鞅。白日掩荆扉,虚室绝尘想。时复墟曲中,披草共来往。相见无杂言,但道桑麻长。桑麻日已长,我土日已广。常恐霜霰至,零落同草莽。

  种豆南山下,草盛豆苗稀。晨兴理荒秽,带月荷锄归。道狭草木长,夕露沾我衣。衣沾不足惜,但使愿无违。

  久去山泽游,浪莽林野娱。试携子侄辈,披榛步荒墟。徘徊丘垄间,依依昔人居。井灶有遗处,桑竹残朽株。借问采薪者,此人皆焉如?薪者向我言,死没无复余。一世异朝市,此语真不虚。人生似幻化,终当归空无。

  怅恨独策还,崎岖历榛曲。山涧清且浅,遇以濯我足。漉我新熟酒,只鸡招近局。日入室中暗,荆薪代明烛。欢来苦夕短,已复至天旭。【储、王极力拟之,然终似微隔。厚处朴处,不能到也。】

  与殷晋安别

  殷先作晋安南府长史掾,因居浔阳,后作太尉参军,移家东下,作此以赠。

  游好非久长,一遇尽殷勤。信宿酬清话,益复知为亲。去岁家南里,薄作少时邻。负杖肆游从,淹留忘宵晨。语默自殊势,亦知当乖分。未谓事已及,兴言在兹春。飘飘西来风,悠悠东去云。山川千里外,言笑难为因。才华不隐世,江湖多贱贫。脱有经过便,念来存故人。【参军已为宋臣矣,题仍以前朝宦名之,题目便不苟且。才华不隐世,何等周旋。所云故者无失其为故也,即此见古人忠厚。】

●古诗源卷九

○晋诗

  陶潜

  乞食

  饥来驱我去,不知竟何之。行行至斯里,叩门拙言辞。主人解余意,遗赠岂虚来。谈谐终日夕,觞至辄倾怀。情欣新知欢,言咏遂赋诗。感子漂母惠,愧我非韩才。衔戢知何谢,冥报以相贻。【不必看作设言愈妙。结言厚道,少陵受人一饭,终身不忘,俱古人不可及处。】

  诸人共游周家墓柏下

  今日天气佳,清吹与鸣弹。感彼柏下人,安得不为欢?清歌散新声,绿酒开芳颜。未知明日事,余襟良已殚。

  移居二首

  昔欲居南村,非为卜其宅。闻多素心人,乐与数晨夕。怀此颇有年,今日从兹役。敝庐何必广,取足蔽床席。邻曲时时来,抗言谈在昔。奇文共欣赏,疑义相与析。

  春秋多佳日,登高赋新诗。过门更相呼,有酒斟酌之。农务各自归,闲暇辄相思。相思则披衣,言笑无厌时。此理将不胜,无为忽去兹。衣食当须纪,力耕不吾欺。

  癸卯岁始春怀古田舍二首

  在昔闻南亩,当年竟未践。屡空既有人,春兴岂自免。夙晨装吾驾,启涂情已缅。鸟弄欢新节,冷风送余善。寒竹被荒蹊,地为罕人远。是以植杖翁,悠然不复返。即理愧通识,所保讵乃浅。

  先师有遗训,忧道不忧贫。瞻望邈难逮,转欲志常勤。秉耒欢时务,解颜劝农人。平畴交远风,良苗亦怀新。虽未量岁功,即事多所欣。耕种有时息,行者无问津。日入相与归,壶浆劳近邻。长吟掩柴门,聊为陇亩民。【昔人问《诗经》何句最佳,或答曰:“‘杨柳依依。’此一时兴到之言,然亦实是名句。”倘有人问陶公何句最佳,愚答云:“‘平畴交远风,良苗亦怀新。’亦一时兴到也。”】

  庚戌岁九月中于西田获早稻

  人生归有道,衣食固其端。孰是都不营,而以求自安。开春理常业,岁功聊可观。晨出肆微勤,日入负耒还。山中饶霜露,风气亦先寒。田家岂不苦,弗获辞此难。四体诚乃疲,庶无异患干。盥濯息檐下,斗酒散襟颜。遥遥沮溺心,千载乃相关。但愿长如此,躬耕非所叹。【《移居》诗曰:“衣食终须纪,力耕不吾欺。”此云人生归有道,衣食固其端,又云贫居依稼穑,自勉勉人。每在耕稼,陶公异于晋人如此。】

  丙辰岁八月中于下潠田舍获【音巽。】

  贫居依稼穑,戳力东林隈。不言春作苦,常恐负所怀。司田眷有秋,寄声与我谐。饥者欢初饱,束带候鸣鸡。扬楫越平湖,泛随清壑回。郁郁荒山里,猿声闲且哀。悲风爱静夜,林鸟喜晨开。曰余作此来,三四星火颓。姿年逝已老,其事未云乖。遥谢荷蓧翁,聊得从君栖。

  饮酒

  余闲居寡欢,兼比夜已长。偶有名酒,无夕不饮。顾影独尽,忽焉复醉。既醉之后,辄题数句自娱。纸墨遂多,辞无诠次,聊命故人书之,以为欢笑尔。

  衰荣无定在,彼此更共之。邵生瓜田中,宁似东陵时。寒暑有代谢,人道每如兹。达人解其会,逝将不复疑。忽与一觞酒,日夕欢相持。

  积善云有报,夷叔在西山。善恶苟不应,何事空立言?九十行带索,饥寒况当年。不赖固穷节,百世当谁传?【伯夷传大旨,已尽于此,末二句,马迁所地云亦各从其志也。】

  道丧向千载,人人惜其情。有酒不肯饮,但顾世间名。所以贵我身,岂不在一生。一生复能几,倏如流电惊。鼎鼎百年内,持此欲何成?

  结庐在人境,而无车马喧。问君何能尔,心远地自偏。采菊东篱下,悠然见南山。山气日夕佳,飞鸟相与还。此中有真意,欲辩已忘言。【胸有元气,自然流出,稍著痕迹便失之。】

  秋菊有佳色,裛露掇其英。泛此忘忧物,远我遗世情。一觞虽独进,杯尽壶自倾。日入群动息,归鸟趋林鸣。啸傲东轩下,聊复得此生。【遗我远世情,陶集作远我遗世情,从陶集为妥。】

  清晨闻叩门,倒裳往自开。问子为谁与,田父有好怀。壶浆远见候,疑我与时乖。褴缕茅檐下,未足为高栖。一世皆尚同,愿君汩其泥。深感父老言,禀气寡所谐。纡辔诚可学,违己讵非迷。且共欢此饮,吾驾不可回。【禀气寡所谐,吾驾不可回,说得斩绝。】

  在昔曾远游,直至东海隅。道路迥且长,风波阻中涂,此行谁使然,似为饥所驱。倾身营一饱,少许便有余。恐此非名计,息驾归闲居。

  故人赏我趣,挈壶相与至。班荆坐松下,数斟己复醉。父老杂乱言,觞酌失行次。不觉知有我,安知物为贵?悠悠迷所留,酒中有深味。【超超名理。】

  少年罕人事,游好在六经。行行向不惑,淹留遂无成。竟抱固穷节,饥寒饱所更。敝庐交悲风,荒草没前庭。披褐守长夜,晨鸡不肯鸣。孟公不在兹,终以翳吾情。

  羲农去我久,举世少复真。汲汲鲁中叟,弥缝使其淳。凤鸟虽不至,礼乐暂得新。洙泗辍微响,漂流逮狂秦。诗书复何罪,一朝成灰尘。区区诸老翁,为事诚殷勤。如何绝世下,六籍无一亲。终日驰车走,不见所问津。若复不快饮,空负头上巾。但恨多谬误,君当恕醉人。【“弥缝”二字,该尽孔子一生。“为事诚殷勤”五字,道尽汉儒训诂。末段忽然接入饮酒,此正是古人神化处。晋人诗,旷达者征引老庄,繁缛者征引班扬,而陶公专用《论语》。汉人以下,宋儒以前,可推圣门弟子者,渊明也。康乐亦善用经语,而逊其无痕。】

  有会而作

  旧谷既没,新谷未登。颇为老农,而值年灾。日月尚悠,为患未已。登岁之功,既不可希。朝夕所资,烟火裁通。旬日已来,始念饥乏。岁云夕矣,慨焉咏怀。今我不述,后生何闻哉。

  弱年逢家乏,老至更长饥。菽麦实所羡,孰敢慕甘肥。惄如亚九饭,当暑厌寒衣。岁月将欲暮,如何辛苦悲。常善粥者心,深恨蒙袂非。嗟来何足吝,徒没空自遗。斯滥岂彼志,固穷夙所归。馁也已矣夫,在昔余多师。

  拟古

  荣荣窗下兰,密密堂前柳。初与君别时,不谓行当久。出门万里客,中道逢嘉友。未言心先醉,不在接杯酒。兰枯柳亦衰,遂令此言负。多谢诸少年,相知不忠厚。意气倾人命,离隔复何有。

  辞家夙严驾,当往志无终。问君今何行,非商复非戎。闻有田子春,节义为士雄。斯人久已死,乡里习其风。生有高世名,既没传无穷。不学狂驰子,直在百年中。【田子春名畴,刘虞之臣,虞尽忠汉室,为公孙瓒所害。畴扫地而盟,誓欲复仇。后瓒已灭,乌桓已破,曹操欲加以封爵,畴不受,至欲自刎以明志。】

  仲春遘时雨,始雷发东隅。众蛰各潜骇,草木从横舒。翩翩新来燕,双双入我庐。先巢故尚在,相将还旧居。自从分别来,门庭日荒芜。我心固匪石,君情定何如?

  迢迢百尺楼,分明望四荒。暮作归云宅,朝为飞鸟堂。山河满目中,平原独茫茫。古时功名士,慷慨争此场。一旦百岁后,相与还北邙。松柏为人伐,高坟互低昂。颓基无遗主,游魂在何方。荣华诚足贵,亦复可怜伤!

  东方有一士,被服常不完。三旬九遇食,十年著一冠。辛苦无此比,常有好容颜。我欲观其人,晨去越河关。青松夹路生,白云宿檐端。知我故来意,取琴为我弹。上弦惊别鹤,下弦操孤鸾。愿留就君住,从今至岁寒。【辛苦而有好容,所谓身困道亨也。】

  日暮天无云,春风扇微和。佳人美清夜,达曙酣且歌。歌竟长叹息,持此感人多。皎皎云间月,灼灼叶中华。岂无一时好,不久当如何。

  少时壮且厉,抚剑独行游。谁言行游近,张掖至幽州。饥食首阳薇,渴饮易水流。不见相知人,惟见古时丘。路边两高坟,伯牙与庄周。此士难再得,吾行欲何求?【首阳易水,托意显然。】

  种桑长江边,三年望当采。枝条始欲茂,忽值山河改。柯叶自摧折,根株浮沧海。春蚕既无食,寒衣欲谁待?本不植高原,今日复何悔!【欲言难言,陶公诗根本节目,全在此种。】

  杂诗

  人生无根蒂,飘如陌上尘。分散逐风转,此已非常身。落地为兄弟,何必骨肉亲。得欢当作乐,斗酒聚比邻。盛年不重来,一日难再晨。及时当勉励,岁月不待人。

  白日沦西阿,素月出东岭。遥遥万里辉,荡荡空中景。风来入房户,夜中枕席冷。气变悟时易,不眠知夕永。欲言无予和,挥杯劝孤影。日月掷人去,有志不获骋。念此怀悲凄,终晓不能静。

  代耕本非望,所业在田桑。躬亲未曾替,寒馁常糟糠。岂期过满腹,便愿饱粳粮。御冬足大布,粗絺以应阳。正尔不能得,哀哉亦可伤。人皆尽获宜,拙生失其方。理也可奈何,且为陶一觞。

  咏贫士

  万族各有托,孤云独无依。暧暧空中灭,何时见余晖。朝霞开宿雾,众鸟相与飞。迟迟出林翮,未夕复来归。量力守故辙,岂不寒与饥。知音苟不存,已矣何所悲。

  凄厉岁云暮,拥褐曝前轩。南圃无遗秀,枯条盈北园。倾壶绝余沥,窥灶不见烟。诗书塞座外,日昃不遑研。闲居非陈厄,窃有愠见言。何以慰吾怀,赖古多此贤。

  荣叟老带索,欣然方弹琴。原生纳决履,清歌畅商音。重华去我久,贫士世相寻。敝襟不掩肘,藜羹常乏斟。岂忘袭轻裘,苟得非所钦。赐也徒能辩,乃不见吾心。

  袁安困积雪,邈然不可干。阮公见钱入,即日弃其官。刍藁有常温,采莒足朝餐。岂不实辛苦,所惧非饥寒。贫富常交战,道胜无戚颜。至德冠邦闾,清节映西关。【“所惧非饥寒,所乐非穷通”,二语可书座右。】

  仲蔚爱穷居,绕宅生蒿蓬。翳然绝交游,赋诗颇能工。举世无知者,止有一刘龚。此士胡独然,实由罕所同。介焉安其业,所乐非穷通。人事固以拙,聊得长相从。【刘龚,刘向之孙。不惧饥寒,达天安命,陶公人品,不在季次原宪下,而概以晋人视之,何耶。所乐非穷通,本庄子。】

  咏荆轲

  燕丹善养士,志在报强嬴。招集百夫良,岁暮得荆聊。君子死知己,提剑出燕京。素骥鸣广陌,慷慨送我行。雄发指危冠,猛气冲长缨。饮饯易水上,四座列群英。渐离击悲筑,宋意唱高声。萧萧哀风逝,淡淡寒波生。商音更流涕,羽奏壮士惊。心知去不归,且有后世名。登车何时顾,飞盖入秦庭。凌厉越万里,逶迤过千城。图穷事自至,豪主正怔营。惜哉剑术疏,奇功遂不成。其人虽已没,千载有余情。【英气勃发,情见乎词。】

  读山海经

  孟夏草木长,绕屋树抚疏。众鸟欣有托,吾亦爱吾庐。既耕亦已种,时还读我书。穷巷隔深辙,颇回故人车。欢言酌春酒,摘我园中蔬。微雨从东来,好风与之俱。泛览周王传,流观山海图。俯仰终宇宙,不乐复何如?【观物观我,纯乎元气。】

  拟挽歌词

  荒草何茫茫,白杨亦萧萧。严霜九月中,送我出远郊。四面无人居,高坟正嶕峣。马为仰天鸣,风为自萧条。幽室一已闭,千年不复朝。千年不复朝,贤达无奈何。向来相送人,各自还其家。亲戚或余悲,他人亦已歌。死去何所道,托体同山阿。【即所谓“万岁更相送,圣贤莫能度”也。音调弥响,哀思弥深。】

  谢混

  游西池

  悟彼蟋蟀唱,信此劳者歌。有来岂不疾,良游常蹉跎。逍遥越城肆,愿言屡经过。回阡被陵阙,高台眺飞霞。惠风荡繁囿,白云屯曾阿。景昃鸣禽集,水木湛清华。褰裳顺兰沚,徙倚引芳柯。美人愆岁月,迟暮独如何。无为牵所思,南荣戒其多。【《韩诗》云:伐木废,朋友之道缺。劳者歌其事,诗人伐木,自苦其事,故以为文。《庄子》:“庚桑楚谓南荣曰:‘全汝形,抱汝生,无使汝思虑营营。’】

  吴隐之

  酌贪泉诗

  《晋书》:“隐之为广州刺史。未至州十里,地名石门,有水曰贪泉,饮者怀无厌之欲。隐之酌而饮之,因赋此诗。及在州,清操愈厉。”

  古人云此水,一歃怀千金。试使夷齐饮,终当不易心。

  庐山诸道人

  游石门诗

  石门在精舍南十余里,一名障山。基连大岭,体绝众阜,辟三泉之会,并立而开流,倾岩玄映其上,蒙形表于自然,故因以为名。此虽庐山之一隅,实斯地之奇观,皆传之于旧俗,而未睹者众。将由悬濑险峻,人兽迹绝,径回曲阜,路阻行难,故罕经焉。释法师以隆安四年仲春之月,因咏山水,遂杖锡而游。于时交徒同趣三十余人,咸拂衣晨征,怅然增兴。虽林壑幽邃,而开涂竞进,虽乘危履石,并以所悦为安。既至,则援木寻葛,历险穷崖,猿臂相引,仅乃造极,于是拥胜倚岩,详观其下,始知七岭之美,蕴奇于此,双阙对峙其前,重岩映带其后,峦阜周回以为障,崇岩四营而开宇。其中则有石台、石池,宫馆之象,觞类之形,致可乐也。清泉分流而合注,渌渊镜净于天池;文石发彩,焕若披面;柽松芳草,蔚然光目,其为神丽,亦已备矣。斯日也,众情奔悦,瞩览无厌。游观未久,而天气屡变。霄雾尘集,则万象隐形;流光回照,则众山倒影;开辟之际,状有灵焉,而不可测也。乃其将登,则翔禽拂翮,鸣猿厉响。归云回驾,想羽人之来仪;哀声相和,若玄音之有寄。虽仿佛犹闻,而神以之畅;虽乐不期欢,而欣以永日。当其冲豫自得,信有味焉,而未易言也。退而寻之,夫崖谷之间,会物无主,应不以情而开兴,引人致深若此,岂不以虚明朗其照,闲邃笃其情耶?并三复其谈,犹昧然未尽。俄而太阳告夕,所存已往,乃悟幽人之玄览,达恒物之大情。其为神趣,岂山水而已哉!于是徘徊崇岭,流目四瞩,九江如带,丘阜成垤。因此而推,形有巨细,智亦宜然,乃喟然叹宇宙虽遐,古今一契。灵鹫邈矣,荒途日隔,不有哲人,风迹虽存,应深悟远,慨然长怀。各欣一遇之同欢,感良辰之难再,情发于中,遂共咏之云耳。

  超兴非有本,理感兴自生。忽闻石门游,奇唱发幽情。褰裳思云驾,望崖想曾城。驰步乘长岩,不觉质有轻。矫首登云阙,眇若凌太清。端居运虚轮,转彼玄中经。神仙同物化,未若两俱冥。【一序奇情深理,发而为文,无禅习气,亦无文士气,诗复清洒不滓。】

  惠远

  庐山东林杂诗

  崇岩吐清气,幽岫栖神迹。希声奏群籁,响出山溜滴。有客独冥游,径然忘所适。挥手抚云门,灵关安足辟。流心叩玄扃,感至理弗隔。孰是腾九霄,不奋冲天翮。妙同趣自均,一悟超三益。【高僧诗,自有一种清奥之气。唐时诗僧以引用内典为长,便染成习气,不可响迩矣。】

  帛道猷

  陵峰采药触兴为诗

  连峰数千里,修林带平津。云过远山翳,风至梗荒榛。茅茨隐不见,鸡鸣知有人。闲步践其径,处处见遗薪。始知百代下,故有上皇民。

  谢道韫

  登山

  峨峨东岳高,秀极冲青天。岩中间虚宇,寂寞幽以玄,非工复非匠,云构发自然。气象尔何物,遂令我屡迁。逝将宅斯宇,可以尽天年。

  赵整

  谏歌

  秦王坚与慕容垂夫人同辇游后庭,宦官赵整歌云云。坚改容谢之,命夫人下辇。

  不见雀来入燕室,但见浮云蔽白日。

  无名氏短兵篇

  剑为短兵,其势险危。疾逾飞电,回旋应规。武节齐声,或合或离。电发星骛,若景若差。兵法攸众,军容是仪。

  独漉篇

  独漉独漉,水深泥浊。泥浊尚可,水深杀我。雍雍双雁,游戏田畔。我欲射雁,念子孤散。翩翩浮萍,得风摇轻。我心何合,与之同并。空床低帷,谁知无人。夜长锦绣,谁别伪真。刀鸣箾中,倚床无施。父冤不报,欲活何为。猛虎斑斑,游戏山间。虎欲杀人,不避豪贤。【英爽直追汉人。】

  晋白纻舞歌诗

  轻躯徐起何洋洋,高举两手白鹄翔,宛若龙转乍低昂,凝停善睐容仪光。如推若引留且行,随世而变诚无方。舞以尽神安可忘,晋世方昌乐未央。质如轻云色如银,爱之遗谁赠佳人。制以为袍余作巾,袍以光躯巾拂尘。丽服在御会佳宾。醪醴盈樽美且淳。清歌徐舞降只神,四座欢乐胡可陈。

  阳春白日风花香,趋步明玉舞瑶珰。声发金石媚笙簧,罗袿徐转红袖扬。清歌流响绕凤梁,如矜若思凝且翔。转盼遗精艳辉光,将流将引双雁行。欢来何晚意何长,明君御世永歌昌。【极写舞姿,中忽入“晋世方昌乐未央。”“明君御世永歌昌”等句,此乐府体。】

  淫豫

  《国史补》云:“蜀之三峡,最号峻急。四月五月尤险,故行者歌之。”一作“滟豫”,峡中之滩也。

  淫豫大如马,瞿唐不可下。淫豫大如象,瞿唐不可上。

  女儿子

  巴东三峡猿鸣悲,夜鸣三声泪沾衣。【《古今乐录》曰:“女儿子,倚歌也。三峡谓广溪峡、巫峡、西陵峡也。林木高茂,猿鸣至清,行者闻之,莫不怀土。”说猿声之悲始此。我欲上蜀蜀水难,蹋蹀珂头腰环环。】

  三峡谣

  《水经注》曰:“峡中有滩,名曰黄牛。岩石既高,江湍纡回。虽途经信宿,犹望见之,故行者谣云。”

  朝见黄牛,暮见黄牛。三朝三暮,黄牛如故。【四语中写尽纡回沿溯之苦。】

  陇上歌

  《晋书》:“刘曜围陈安于陇城,安败走。曜使将军平先追之,平斩安于涧曲。安善于抚下,吉凶夷险,与众共之。及死,陇上为之歌。”

  陇上壮士有陈安,躯干虽小腹中宽。爱养将士同心肝,■〈馬聶〉骢文马铁锻鞍。七尺大刀奋如湍,丈八蛇矛左右盘。十荡十决无当前,百骑俱出如云浮。追者千万骑悠悠,战始三交失蛇矛。弃我■〈馬聶〉骢窜岩幽,为我外援而悬头。西流之水东流河,一去不还奈子何。【中极状其勇,一结悠然,余哀不尽。百骑俱出二句,见死于敌兵之多,非战罪也。本词无,《赵书》有,今从增入。】

  来罗

  郁金黄花标,下有同心草。草生已日长,人生日就老。

  作蚕丝

  春蚕不应老,昼夜常怀丝。何惜微躯尽,缠绵自有时。【缠绵温厚,不同《子夜》《读曲》等歌。】

  休洗红二章

  休洗红,洗多红色澹。不惜故缝衣,记得初按茜。人寿百年能几何,后来新妇今为婆。

  休洗红,洗多红在水。新红裁作衣,旧红翻作里,回黄转绿无定期,世事返复君所知。【“回黄转绿”,字极生新,要知是善用经语。】

  安东平

  凄凄烈烈,北风为雪。船道不通,步道断绝。

  惠帝元康中京洛童谣

  见《晋书·五行志》。

  南风起兮吹白沙,遥望鲁国何嵯峨。千岁髑髅生齿牙。【南风,贾后字也。白,晋行也。沙门,太子小字也。鲁国,贾谧也。言后与谧为乱,以危太子,而赵王因衅以篡夺也。】

  惠帝时洛阳童谣

  见《晋书》,明年而石勒反。

  邺中女子莫千妖,前至三月抱胡腰。【风俗奢淫过甚,必有兵戈之惨继之。千秋炯戒也。】

  惠帝大安中童谣

  见《晋书·五行志》:“后中原大乱,宗藩多绝,唯琅邪、汝南、西阳、南顿、彭城、同至江东,而元帝嗣统矣。”

  五马浮渡江,一马化为龙。

  绵州巴歌

  豆子山,打瓦鼓。扬平山,撒白雨。下白雨,取龙女。织得绢,二丈五。一半属罗江,一半属玄武。

●古诗源卷十

○宋诗

  孝武帝

  《宋人诗》曰:“流于弱。古之终而律之始也。无鲍谢二公,恐风雅无色。”孝武诗,时有巧思。

  自君之出矣

  自君之出矣,金翠暗无精。思君如日月,回还昼夜生。

  南平王铄

  白纻曲

  仙仙徐动何盈盈,玉腕俱凝若云行。佳人举袖辉青蛾,掺掺擢手映鲜罗。状似明月泛云河,体如轻风动流波。【晋曲似拙,然气味极厚,此但觉其鲜秀矣。风气升降,作者不能自主。】

  拟行行重行行

  眇眇陵长道,遥遥行远之。回车背京里,挥手从此辞。堂上流尘生,庭中绿草滋。寒螀翔水曲,秋兔依山基。芳年有华月,佳人无还期。日夕凉风起,对酒长相思。悲发江南调,忧委子衿诗。卧觉明灯晦,坐见轻纨缁。泪容不可饰,幽镜难复持。愿垂薄暮景,照妾桑榆时。【颇臻古意。】

  何承天

  雉子游原泽篇

  雉子游原泽,幼怀耿介心。饮啄虽勤苦,不愿栖园林。古有避世士,抗志青霄岑。浩然寄卜肆,挥棹通川阴。逍遥风尘外,散发抚鸣琴。卿相非所盼,何况于千金。功名岂不美,宠辱亦相寻。冰炭结六府,忧虞缠胸襟。当世须大度,量己不克任。三复泉流诫,自警良已深。

  颜延之

  颜诗,惠休品为镂金错采,然镂刻太甚,填缀求工,转伤真气,中间如《五君咏》、《秋胡行》,皆清真高逸者也。士衡长于敷陈,延之长于镂刻,然亦缘此为累。《诗》云:“穆如清风”,是为雅音。

  应诏宴曲水作诗八章

  《宋略》曰:“文帝元嘉十一年三月丙辰,禊饮于乐游苑,且祖江夏王义恭、衡阳王义季。有诏会者赋诗。”

  道隐未形,治彰既乱。帝迹悬衡,皇流共贯。惟王创物,永锡洪算。仁固开周,义高登汉。

  祚融世哲,业光列圣。太上正位,天临海镜。制以化裁,树之形性。惠浸萌生,信及翔泳。【太上,谓文帝也。】

  崇虚非征,积实莫尚。岂伊人和,实灵所贶。日完其朔,月不掩望。航琛越水,辇赆逾嶂。【尽,同赆,言远夷纳贡也。】

  帝体丽明,仪辰作贰。君彼东朝,金昭玉粹。德有润身,礼不愆器。柔中渊映,芳猷兰秘。【帝体,太子也。《记》曰:“长子正体于上。”《诗传》曰:“仪,匹也。辰,北辰也。”】

  昔在文昭,今惟武穆。于赫王宰,方旦居叔。有晬叡蕃,爰履奠牧。宁极和钧,屏京维服。【王宰、谓王为宰辅。比之周旦,而亦居叔也,指江夏、衡阳二王。】

  朏魄双交,月气参变。开荣洒泽,舒虹烁电。化际无间,皇情爰眷。伊思镐饮,每惟洛宴。【朏魄双交、谓月之三日也。月气参变,谓三月也,此说入修禊。】

  郊饯有坛,君举有礼。幕帷兰甸,画流高陛。分庭荐乐,析波浮醴。豫同夏谚,事兼出济。

  仰阅丰施,降惟微物。三妨储隶,五尘朝黻。途泰命屯,思充报屈。有悔可悛,滞瑕难拂。【微物、自谓也。三妨、五尘、谓己所历之官位。八章次序有法。追金琢玉,不妨沈闷,义山所谓“句奇语重”者耶!】

  郊祀歌

  夤威宝命,严恭帝祖。炳海表岱,系唐胄楚。灵监睿文,民属睿武。奄受敷锡,宅中拓宇。亘地称皇,罄天作主。月竁来宾,日际奉土。开元首正,礼交乐举。六典联事,九官列序。有牷在涤,有絜【同洁。】在俎。荐飨王衷,以答神祜。【《尚书》曰:“海岱及淮惟徐州。”东京赋曰:“系唐统,接汉绪。”沈约宋书曰:“高祖,彭城人,楚元王之后也。彭城,徐州之境。”竁同窟。】

  维圣飨帝,维孝飨亲。皇乎备矣,有事上春。礼行宗祀,敬达郊禋。金枝中树,广乐四陈。陟配在京,降听在民。奔精昭夜,高燎炀晨。阴明浮烁,沈禜深沦。告成大报,受釐元神。月御按节,星驱扶轮。遥兴远驾,曜曜振振。【奔精,星流也。宋为水德而主辰,故阴明之宿,浮烁而扬光。沈禜,所祭沈沦而沈静也。禜,祭名。月御二句,言天神降而月御为之按节,星驱为之扶轮也。】

  赠王太常

  玉水记方流,源载圆折。蓄宝每希声,虽秘犹彰彻。聆龙■〈目祭〉【音砌。】九渊,闻凤窥丹穴。历听岂多士,岿然觏时哲。舒文广国华,敷言远朝列。德辉灼邦懋,芳风被乡耋。侧同幽人居,郊扉常昼闭。【必列切。】林闾时晏开,亟回长者辙。庭昏见野阴,山明望松雪。静惟浃群化,徂生入穷节。豫往诚欢歇,悲来非乐阕。属美谢繁翰,遥怀具短札。【《尸子》曰:“凡水,其方折者有玉,其圆折者有珠。”■〈目祭〉,察也。用笔太重,非诗人本色。】

  夏夜呈从兄散骑车长沙

  散骑,字敬宗。车长沙,字仲远。

  炎天方埃郁,暑晏阕尘纷。独静阙偶坐,临堂对星分。侧听风薄木,遥睇月开云。夜蝉当夏急,阴虫先秋闻。岁候初过半,荃蕙岂久芬。屏居恻物变,慕类抱情殷。九逝非空思,七襄无成文。【《楚辞》曰:“惟郢路之辽辽兮,魂一夕而九逝。”】

  北使洛

  《宋书》曰:“延之洛阳道中作,文辞藻丽。为谢晦、傅亮所赏。”

  改服饬徒旅,首路跼险艰。振楫发吴洲,秣马陵楚山。涂山梁宋郊,道由周郑间。前登阳城路,日夕望三川。在昔辍期运,经始阔圣贤。伊瀔绝津济,台馆无尸椽。宫陛多巢穴,城阙生云烟。王猷升八表,嗟行方暮年。阴风振凉野,飞雪瞀穷天。临涂未及引,置酒惨无言。隐闵徒御悲,威迟良马烦。游役去芳时,归来屡徂■〈侃上言下〉。【古愆字。】蓬心既已矣,飞薄殊亦然。《抱朴子》曰:“闻之前志,圣人生率阔五百岁。”黍离之感,行役之悲,情旨畅越。

  五君咏五首

  竹林七贤,山涛、王戎。以贵显被斥。

  阮步兵【籍。】

  阮公虽沦迹,识密鉴亦洞。沈醉似埋照,寓辞类托讽。长啸若怀人,越礼自惊众。物故不可论,途穷能无恸。

  嵇中散【康。】

  中散不偶世,本自餐霞人。形解验默仙,吐论知凝神。立俗迕流议,寻山洽隐沦。鸾翮有时铩,龙性谁能驯。【《桓子新论》曰:“圣人皆形解仙去。”】

  刘参军【伶。】

  刘伶善闭关,怀情灭闻见。鼓钟不足欢,荣色岂能眩。韬精日沈饮,谁知非荒宴。颂酒虽短章,深衷自此见。【《老子》曰:“善闭者无关键而不可开,言道德内充,情欲俱闭也。”】

  阮始平【咸。】

  仲容青云器,实禀生民秀。达音何用深,识微在金奏。郭奕已心醉,山公非虚觏。屡荐不入官,一麾乃出守。【阮咸哀乐至到,过绝于人;太原郭奕,见之心醉。《山涛启事》曰:“咸若在官之职,必妙绝于时。”】

  向常侍【秀。】

  向秀甘澹薄,深心托豪素。探道好渊玄,观书鄙章句。交吕既鸿轩,攀嵇亦凤举。流连河里游,恻怆山阳赋。【秀尝与嵇康偶锻于洛邑,与吕安灌园于山阳。】

  秋胡诗九首

  椅梧倾高凤,寒谷待鸣律。影响岂不怀,自远每相匹。婉彼幽闲女,作嫔君子室。峻节贯秋霜,明艳侔朝日。嘉运既我从,欣愿自此毕。【椅梧伫凤鸟之来仪,寒谷待吹律而成煦。言夫妇之相匹,如影响之相思也。】

  燕居未及好,良人顾有违。脱巾千里外,结绶登王畿。戒徒在昧旦,左右来相依。驱车出郊郭,行路正威迟。存为久离别,没为长不归。

  嗟余怨行役,三陟穷晨暮。严驾越风寒,解鞍犯霜露。原隰多悲凉。回飙卷高树。离兽起荒蹊,惊鸟纵横去。悲哉游宦子,劳此山川路。【卷耳诗,陟彼崔嵬,陟彼高冈,陟彼砠矣,故曰三陟。】

  超遥行人远,宛转年运徂。良时为此别,日月方向除。孰知寒暑积,僶俛见荣枯。岁暮临空房,凉风起坐隅。寝兴日已寒,白露生庭芜。【一章至四章,言宦仕于外,己之靡日不思也。】

  勤役从归愿,反路遵山河。昔辞秋未素,今也岁载华。蚕月欢时暇,桑野多经过。佳人从所务,窈窕援高柯。倾城谁不顾,弭节停中阿。

  年往诚思劳,路远阔音形。虽为五载别,相与昧平生,舍车遵往路,凫藻驰目成。南金岂不重,聊自意所轻。义心多苦调,密比金玉声。【五章至六章,言遇于桑下。秋胡子下车,与之以金也。班彪《冀州赋》曰:“感凫藻以进乐。”】

  高节难久淹,朅来空复辞。迟迟前途尽,依依造门基。上堂拜嘉庆,入室问何之。日暮行采归,物色桑榆时。美人望昏至,惭叹前相持。【此章言其母使人呼其妇至,乃向采桑者也。】

  有怀谁能已,聊用申苦言。离居殊年载,一别阻河关。春来无时豫,秋至恒早寒。明发动愁心,闺中起长叹。惨凄岁方晏,日落游子颜。【言情之惨凄,在乎岁之方晏;日之将落,愈思游子之颜。此章申言五载中思慕情事。前章说相持矣,以常情言,宜即出愤语,此却申言离居之苦,急处用缓承,正是节奏之妙。】

  高张生绝弦,声急由调起。自昔枉光尘,结言固终始。如何久为别,百行■〈侃上言下〉【古愆字。】诸己。君子失明义,谁与偕没齿。愧彼行露诗,甘之长川汜。【高张生于绝弦,喻立节期于效命;声急由乎调起,喻词切兴于恨深。《易》曰:“归妹,人之终始也。”无古乐府之警健,然章法绵密,布置稳顺,在延之为上乘矣。】

  谢灵运

  前人评康乐诗,谓东海扬帆,风日流利。此不甚允。大约经营惨淡,钩深素隐,而一归自然,山水闲适。时遇理趣,匠心独运,少规往则。建安诸公,都非所屑,况士衡以下。陶诗合下自然,不可及处,在真在厚。谢诗追琢而返于自然,不可及处,在新在俊。千古并称,厥有由夫。陶诗高处在不排,谢诗胜处在排,所以终逊一筹。刘勰《明诗篇》曰:“老庄告退,而山水方滋,见游山水诗以康乐为最。”

  从游京口北固应诏

  从宋武帝。

  玉玺诫诚信,黄屋示崇高。事为名教用,道以神理超。昔闻汾水游,今见尘外镳。鸣笳发春渚,税銮登山椒。张组眺倒景,【同影。】列筵瞩归潮。远岩映兰薄,白日丽江皋。原隰荑绿柳,墟囿散红桃。皇心美阳泽,万象咸光昭。顾己枉维絷,抚志惭场苗。工拙各所宜,终以返林巢。曾是萦旧想,览物奏长谣。【《庄子》曰:“尧见四子藐姑射之山,汾水之阳。”理语入诗而不觉其腐,全在骨高。】

  述祖德诗二首

  序曰:太元中,王父龛定淮南,负荷世业,尊主隆人。逮贤相徂谢,君子道消,拂衣蕃岳,考卜东山,事同乐生之时,志期范蠡之举。王父,谓玄也。龛,同戡,胜也。龛定淮南,谓败符坚事。

  达人贵自我,高情属天云。兼抱济物性,而不缨垢氛。段生蕃魏国,展季救鲁人。弦高犒■〈日晉〉师,仲连却秦军。临组乍不绁,对珪宁肯分。惠物辞所赏,励志故绝人。苕苕历千载,遥遥播清尘。清尘竟谁嗣,明哲垂经纶。委讲辍道论,改服康世屯。屯难既云康,尊主隆斯民。【弦高犒秦师,在■〈日晉〉之道。■〈日晉〉,音晋,见《吕氏春秋》。诸本为“晋”字之误也,因改正。】

  中原昔丧乱,丧乱岂解已。崩腾永嘉末,逼迫太元始。河水无反正,江介有蹙圯。万邦咸震慑,横流赖君子。拯溺由道情,龛暴资神理。秦赵欣来苏,燕魏迟文轨。贤相谢世运,远图因事止。高揖七州外,拂衣五湖里。随山疏浚潭,傍岩枌艺梓。遗情舍尘物,贞观丘壑美。【蹙圯,诗曰,日蹙国百里,《尔雅》曰:“圯,败覆也。《庄子》曰:“夫道有情有性。”】

  九日从宋公戏马台集送孔令

  季秋边朔苦,旅雁违霜雪。凄凄阳卉腓,皎皎寒潭洁。良辰感圣心,云旗兴暮节。鸣笳戾朱宫,兰卮献时哲。饯晏光有孚,和乐隆所缺。在宥天下理,吹万群方悦。归客遂海隅,脱冠谢朝列。弭棹薄枉渚,指景待乐阕。河流有急澜,浮骖无缓辙。岂伊川途念,宿心愧将别。彼美丘园道,喟焉伤薄劣。【《诗序》曰:“《鹿鸣》废,则和乐缺矣。”《庄子》曰:“闻在宥天下,不闻在治天下也。”郭象曰:“宥使自在,则治也。”《庄子》,南郭子綦曰:“夫吹万不同而使其自已也。”司马彪曰:“言天气吹煦,长养万物,形气不同。已,止也,使各得其性而止。”】

  邻里相送至方山

  衹役出皇邑,相期憩瓯越。解缆及流潮,怀旧不能发。析析就衰林,皎皎明秋月。含情易为盈,遇物难可歇。积疴谢生虑,寡欲罕所阙。资此永幽栖,岂伊千岁别。各勉日新志,音尘慰寂蔑。【解缆二句,别绪低徊,含情二句,触境自得。】

  过始宁墅

  束发怀耿介,逐物遂推迁。违志似如昨,二纪及兹年。缁磷谢清旷,疲薾惭贞坚。拙疾相倚薄,还得静者便。剖竹守沧海,枉帆过旧山。山行穷登顿,水涉尽洄沿。岩峭岭稠叠,洲萦渚连绵。白云抱幽石,绿篠媚清涟。葺宇临回江,筑观基层巅。挥手告乡曲,二载期归旋。且为树枌檟,无令孤愿言。【登顿沿洄。非老于游山水者不知。《左传》,初季孙为己树六檟于蒲圃泉门之外,杜注曰:“檟,自为榇也。”始宁县,谢公故宅及墅在焉,兹因之官过此,故有末四句。】

  七里濑

  羁心积秋晨,晨积展游眺。孤客伤逝湍,徒旅苦奔峭。石浅水潺湲,日落山照曜。荒林纷沃若,哀禽相叫啸。遭物悼迁斥,存期得要妙。既秉上皇心,岂屑末代诮。目睹严子濑,想属任公钓。谁谓今古殊,异代可同调。

  登池上楼

  在永嘉郡。

  潜虬媚幽姿,飞鸿响远音。薄霄愧云浮,栖川怍渊沈。进德智所拙,退耕力不任。徇禄反穷海,卧疴对空林。衾枕昧节候,褰开暂窥临。倾耳聆波澜,举目眺岖嵚。初景革绪风,新阳改故阴。池塘生春草,园柳变鸣禽。祁祁伤豳歌,萋萋感楚吟。索居易永久,离群难处心。持操岂独古,无闷征在今。【虬以深潜而保真,鸿以高飞而远害。今以婴世网,故有愧虬与鸿也。薄霄,顶飞鸿。栖川,顶潜虬。《楚辞》曰:“款秋冬之绪风。”“池塘生春草”,偶然佳句,何必深求?权德舆解为王泽竭,候将变,何句不可穿凿耶。】

  游南亭

  亦永嘉郡。

  时竟夕澄霁,云归日西驰。密林含余清,远峰隐半规。久痗昏垫苦,旅馆眺郊岐。泽兰渐被径,芙蓉始发池。未厌青春好,已睹朱明移。戚戚感物叹,星星白发垂。药饵情所止,衰疾忽在斯。逝将候秋水,息景偃旧崖。我志谁与亮,赏心惟良知。【起先用写景,第六句点出眺郊岐,此倒插法也,少陵往往用之。良知,谓良友。】

  游赤石进泛海

  首夏犹清和,芳草亦未歇。水宿淹晨暮,阴霞屡兴没。周览倦瀛壖,况乃凌穷发。川后时安流,天吴静不发。扬帆采石华,挂席拾海月。溟涨无端倪,虚舟有超越。仲连轻齐组,子牟眷魏阙。矜名道不足,适己物可忽。请附任公言,终然谢先伐。【张衡《归田赋》:“仲春令月,时和气清。”指二月言。此言“首夏”犹之清和,芳草亦未歇也。后人以四月为清和,谬矣。《临海志》曰:“石华,附石而生。海月,大如镜,白色。”《庄子》曰:“孔子围于陈,太公任往吊之,曰:‘直木先伐,甘泉先竭,子其意者饰智以惊愚,修身以明污,昭昭若揭日月而行,故不免也。’”】

  登江中孤屿

  在永嘉江心。

  江南倦历览,江北旷周旋。怀新道转迥,寻异景不延。乱流趋正绝,孤屿媚中川。云日相辉映,空水共澄鲜。表灵物莫赏,蕴真谁为传。想像昆山姿,缅邈区中缘。始信安期术,得尽养生年。【“怀新道转迥”,谓贪寻新境,忘其道之远也。“寻异景不延”,谓往前探奇,当前妙景,不能少迁延也。深于寻幽者知之,十字字字耐人咀味。“乱流”二句,谓截流而渡,忽得孤屿。余尝游金焦,诵此二句,愈觉其妙。】

  登永嘉绿嶂山诗

  裹粮杖轻策,怀迟上幽室。行源径转远,距陆情未毕。澹潋结寒姿,团栾润霜质。涧委水屡迷,林迥岩逾密。眷西谓初月,顾东疑落日。践夕奄昏曙,蔽翳皆周悉。蛊上贵不事,履二美贞吉。幽人常坦步,高尚邈难匹。颐阿竟何端,寂寂寄抱一。恬如既已交,缮性彼此出。【“眷西”四句,言深入苍翠中,几不知日暮,左眺右瞻,疑误日月也。然此诗过于雕镂,渐失天趣,取其用意之佳耳。】

  斋中读书

  昔余游京华,未尝废丘壑。矧乃归山川,心迹双寂寞。虚馆绝诤讼,空庭来鸟雀。卧疾丰暇豫,翰墨时间作。怀抱观古今,寝食展戏谑。既笑沮溺苦,又哂子云阁。执戟亦以疲,耕稼岂云乐。万事难并欢,达生幸可托。【《楚辞》曰:“野寂漠其无人。”漠,同寞。子云阁,强押。】

  田南树园激流植援

  命题简古。

  樵隐俱在山,由来事不同。不同非一事,养疴亦园中。中园屏氛杂,清旷招远风。卜室倚北阜,启扉面南江。激涧代汲井,插槿当列墉。群木既罗户,众山亦当窗。靡迤趋下田,迢递瞰高峰。寡欲不期劳,即事罕人功。惟开蒋生径,永怀求羊踪。赏心不可忘,妙善冀能同。【郭象注庄曰:“妙善同,故无往而不冥也。”同字重韵。】

  石壁精舍还湖中作

  昏旦变气候,山水含清晖。清晖能娱入,游子憺忘归。出谷日尚早,入舟阳已微。林壑敛暝色,云霞收夕霏。芰荷迭映蔚,蒲稗相因依。披拂趋南径,愉悦偃东扉。虑澹物自轻,意惬理无违。寄言摄生客,试用此道推。

  登石门最高顶

  晨策寻绝壁,夕息在山栖。疏峰抗高馆,对岭临回溪。长林罗户穴,积石拥阶基。连岩觉路塞,密竹使径迷。来人忘新术,去子惑故蹊。活活夕流驶,噭噭夜猿啼。沈冥岂别理,守道自不携。心契九秋干,目玩三春荑。居常以待终,处顺故安排。惜无同怀客,共登青云梯。

  石门新营所住四面高山回溪石濑茂林修竹

  跻险筑幽居,披云卧石门。苔滑谁能步,葛弱岂可扪。袅袅秋风过,萋萋春草繁。美人游不还,佳期何由敦。芳尘凝瑶席,清醑满金樽。洞庭空波澜,桂枝徒攀翻。结念属霄汉,孤景莫与谖。俯濯石下潭,仰看条上猿。早闻夕飙急,晚见朝日暾。崖倾光难留,林深响易奔。感往虑有复,理来情无存。庶持乘日车,得以慰营魂。匪为众人说,冀与智者论。【“早闻”二句,总见光景之不同。“感往”二句,言悲感已往,而夭寿纷错,故虑有回复;妙理若来,而物我俱丧,故情无所存。《庄子·牧马篇》:“童子谓黄帝曰:‘有长者教子曰,若乘日之车,而游襄城之野。’”《楚辞》曰:“载营魂而升霞。”。】

  于南山往北山经湖中瞻眺

  朝旦发阳崖,景落憩阴峰。舍舟眺迥渚,停策倚茂松。侧径既窈窕,环洲亦玲珑。俯视乔木杪,仰聆大壑潈。石横水分流,林密蹊绝踪。解【音蟹。】作竟何感,升长皆丰容。初篁苞绿箨,新蒲含紫茸。海鸥戏春岸,天鸡弄和风。抚化心无厌,览物眷弥重。不惜去人远,但恨莫与同。孤游非情叹,赏废理谁通?【《易》曰:“天地解而雷雨作,雷雨作而百果草木皆甲坼。”又曰:“地中生木升,诗中用经,无如谢公者。”】

  从斤竹涧越岭溪行

  猿鸣诚知曙,谷幽光未显。岩下云方合,花上露犹泫。逶迤傍隈隩,迢递步陉岘。过涧既厉急,登栈亦陵缅。川渚屡经复,乘流玩回转。蘋萍泛沈深,菰蒲冒清浅。企石挹飞泉,攀林摘叶卷。想见山阿人,薜萝若在眼。握兰勤徒结,折麻心莫展。情用赏为美,事昧竟谁辨。观此遗物虑,一悟得所遣。【过涧既厉急,用以衣涉水事。《枣据逸民赋》曰:“握春兰兮遗芳。”《楚辞》曰:“折疏麻兮瑶华,将以遗兮离居。”此云“勤徒结,心莫展”,言欲赠友而末由也,承上二句看便明。】

  过白岸亭诗

  拂衣遵沙垣,缓步入蓬屋。近涧涓密石,远山映疏木。空翠难强名,渔钓易为曲。援萝聆青崖,春心自相属。交交止栩黄,呦呦食苹鹿。伤彼人百哀,嘉尔承筐乐。荣悴迭去来,穷通成休戚。未若常疏散,万事恒抱朴。【凡物可以名,则浅矣。难强名,神于写空翠者。止栩黄,言黄鸟止于栩也,然终未妥。】

  初去郡

  为永嘉守二年,称疾去职还始宁。

  彭薛裁知耻,贡公未遗荣。或可优贪竞,岂足称达生!伊予秉微尚,拙讷谢浮名。庐园当栖岩,卑位代躬耕。顾己虽自许,心迹犹未并。无庸妨周任,有疾象长聊。毕娶类尚子,薄游似邴生。恭承古人意,促装返柴荆。牵丝及元兴,解龟在景平。负心二十载,于今废将迎。理棹遄还期,遵渚骛修坰。溯溪终水涉,登岭始山行。野旷沙岸净,天高秋月明。憩石挹飞泉,攀林搴落英。战胜臞者肥,鉴止流归停。即是羲唐化,获我击壤情!【《汉书》曰:“广德当宣,近于知耻,谓彭宣、薛广德也。”贡公,指贡禹。邴生,谓曼容,养志自修,为官不肯过六百石,辄自免去。子夏曰:“吾入见先王之义则荣之,出见富贵又荣之。二者战于胸臆,故臞。今见先王之义战胜,故肥也。”《文子》曰:“莫监于流潦,而监于止水。”】

  夜宿石门诗

  朝搴苑中兰,畏彼霜下歇。瞑还云际宿,弄此石上月。鸟鸣识夜栖,木落知风发。异音同至听,殊响俱清越。妙物莫为赏,芳醑谁与伐。美人竟不来,阳阿徒晞发。【“异音同至听”、“空翠难强名”,皆谢公独造语。】

  入彭蠡湖口

  客游倦水宿,风潮难具论。洲岛骤回合,圻岸屡崩奔。乘月听哀狖,露馥芳荪。春晚绿野秀,岩高白云屯。千念集日夜,万感盈朝昏。攀崖照石镜,牵叶入松门。三江事多往,九派理空存。灵物■〈恡,去忄〉珍怪,异人秘精魂。金膏灭明光,水碧缀流温。徒作千里曲,弦绝念弥敦。

  入华子冈是麻源第三谷

  南州实炎德,桂树凌寒山。铜陵映碧涧,石磴泻红泉。既枉隐沦客,亦栖肥遁贤。险径无测度,天路非术阡。遂登群峰首,邈若升云烟。羽人绝仿佛,丹兵徒空筌。图牒复摩灭,碑版谁闻传。莫辨百代后,安知千载前!且申独往意,乘月弄潺湲。恒充俄顷用,岂为古今然!

  岁暮

  殷忧不能寐,苦此夜难颓。明月照积雪,朔风劲且哀。运往无淹物,年逝觉已催。【阙文。】

●古诗源卷十一

○宋诗

  谢瞻

  答灵运

  夕霁风气凉,闲房有余清。开轩灭华烛,月露皓已盈。独夜无物役,寝者亦云宁。忽获愁霖唱,怀劳奏所诚。叹彼行旅艰,深兹眷言情。伊余虽寡慰,殷忧暂为轻。牵率酬嘉藻,长揖愧吾生。

  九日从宋公戏马台集送孔令诗

  宋高祖游戏马台送孔靖,命僚佐赋诗,瞻作冠于一时。

  风至授寒服,霜降休百工。繁林收阳彩,密苑解华丛。巢幕无留燕,遵渚有来鸿。轻霞冠秋日,迅商薄清穹。圣心眷嘉节,扬銮戾行宫。四筵沾芳醴,中堂起丝桐。扶光迫西汜,欢余宴有穷。逝矣将归客,养素克有终。临流怨莫从,欢心叹飞蓬。【《淮南子》曰:“日出旸谷拂扶桑。”《楚辞》曰:“出自旸谷,次于蒙汜。”时晋帝尚存,而崇媚宋公至此,视渊明有余惭矣。康乐篇亦然。】

  谢惠连

  谢宣远诗,一味镂刻,失自然之致,咏张子房作,为生硬之尤者,虽当时推重,删之。

  捣衣

  衡纪无淹度,晷运倏如摧。白露滋园菊,秋风落庭槐。肃肃莎鸡羽,烈烈寒螿啼。夕阳结空幕,宵月皓中闺。美人戒裳服,端餙相招携。簪玉出北房,鸣金步南阶。櫩高砧响发,楹长杵声哀。微芳起两袖,轻汗染双题。纨素既已成,君子行未归。裁用笥中刀,缝为万里衣。盈箧自余手,幽缄俟君开。腰带准畴昔,不知今是非。【《汉书》曰:“用昏建者杓夜半。”建者,衡。衡,斗之中央也。一结能作情语,不入纤靡。】

  西陵遇风献康乐

  我行指孟春,春仲尚未发。趣途远有期,念离情无歇。成装候良辰,漾舟陶嘉月。瞻涂意少悰,还顾情多阙。【《楚辞》曰:“陶嘉月兮总驾。”陶,喜也。】

  哲兄感仳别,相送越坰林。饮饯野亭馆,分袂澄湖阴。凄凄留子言,眷眷浮客心。回塘隐舻栧,远望绝形音。

  靡靡即长路,戚戚抱遥悲。悲遥但自弭,路长当语谁。行行道转远,去去情弥迟。昨发浦阳汭,今宿浙江湄。

  屯云蔽曾岭,惊风涌飞流。零雨润坟泽,落雪洒林丘。浮氛晦崖巘,积素或原畴。曲汜薄停旅,通川绝行舟。

  临津不得济,伫楫阻风波。萧条洲渚际,气色少谐和。西瞻兴游叹,东睇起凄歌。积愤成疢痗,无萱将如何。【雅音徘徊,清婉可诵。】

  秋怀

  平生无志意,少小婴忧患。如何乘苦心,矧复值秋晏。皎皎天月明,奕奕河宿烂。萧瑟含风蝉,寥唳度云雁。寒商动清闺,孤灯暖幽幔。耿介繁虑积,展转长宵半。夷险难预谋,倚伏昧前算。虽好相如达,不同长卿慢。颇悦郑生偃,无取白衣宦。未知古人心,且从性所玩。宾至可命觞,朋来当染翰。高台骤登践,清浅时陵乱。颓魄不再圆,倾羲无两旦。金石终销毁,丹青暂雕焕。各勉玄发欢,无贻白首叹。因歌遂成赋,聊用布亲串。【虽好相如之达,而不同其慢;颇悦郑均之偃仰,而无取其为白衣尚书,故下云且从性所玩也。汲冢纪年,懿王元年,天再旦于郑。串,音惯,读作穿上声者非。】

  泛湖归出楼中望月

  日落泛澄瀛,星罗游轻桡。憩树面曲汜,临流对回潮。辍策共骈筵,并坐相招要。哀鸿鸣沙渚,悲猿响山椒。亭亭映江月,■〈風劉〉■〈風劉〉出谷飙。斐斐气幂岫,泫泫露盈条。近瞩祛幽蕴,远视荡喧嚣。晤言不知罢,从夕至清朝。

  谢庄

  北宅秘园

  夕天霁晚气,轻霞澄暮阴。微风清幽幌,余日照青林。收光渐窗歇,穷园自荒深。绿池翻素景,秋怀响寒音。伊人傥同爱,弦酒共栖寻。【栖寻,谓同栖息、同游寻也。诸谢诗独详康乐,余所收从略。】

  鲍照

  明远乐府,如五丁凿山,开人世所未有,后太白往往效之。五言古亦在颜、谢之间。抗音吐怀,每成亮节。其高处远轶机、云,上追操、植。五言古雕琢与谢公相似,自然处不及。

  代东门行【代,犹拟也。】

  伤禽恶弦惊,倦客恶离声。离声断客情,宾御皆涕零。涕零心断绝,将去复还诀。一息不相知,何况异乡别。遥遥征驾远,杳杳白日晚。居人掩闺卧,行子夜中饭。野风吹秋木,行子心肠断。食梅常苦酸,衣葛常苦寒。丝竹徒满座,忧人不解颜。长歌欲自慰,弥起长恨端。【“食梅常苦酸”一联,与《青青河畔草》篇忽入“枯桑知天风,海水知天寒”一种神理。】

  代放歌行

  蓼虫避葵堇,习苦不言非。小人自龌龊,安知旷士怀。鸡鸣洛城里,禁门平旦开。冠盖纵横至,车骑四方来。素带曳长飙,华缨结远埃。日中安能止,钟鸣犹未归。夷世不可逢,贤君信爱才。明虑自天断,不受外嫌猜。一言分珪爵,片善辞草莱。岂伊白璧赐,将起黄金台。今君有何疾,临路独迟回。【《楚辞》曰:“蓼虫不徒乎葵藿。”言蓼虫处辛辣,食苦恶,不徒葵藿,食甘美也。“素带”二语,写尽富贵人尘俗之状,汉诗中所谓“冠带日相索”也。】

  代白头吟

  直如朱丝绳,清如玉壶冰。何惭宿昔意,猜恨坐相仍。人情贱恩旧,世议逐衰兴。毫发一为瑕,丘山不可胜。食苗实硕鼠,点白信苍蝇。凫鹄远成美,薪刍前见陵。申黜褒女进,班去真姬升。周王日沦惑,汉帝益嗟称。心赏犹难恃,貌恭岂易凭。古来共如此,非君独抚膺。【“凫鹄远成美”,言鸡以近而忘其美,鹄以所从来远而觉其美也。用田饶答鲁哀公语意。“薪刍前见陵”,陵,侵也,即譬如积薪,后来者处上意。】

  代东武吟

  主人且勿喧,贱子歌一言。仆本寒乡士,出身蒙汉恩。始随张校尉,占募到河源。后逐李轻车,追虏穷塞坦。密涂亘万里,宁岁犹七奔。肌力尽鞍甲,心思历凉温。将军既下世,部曲亦罕存。时事一朝异,孤绩谁复论?少壮辞家去,穷老还入门。腰镰刈葵藿,倚杖牧鸡豚。昔如韝上鹰,今似槛中猿。徒结千载恨,空负百年怨。【平声。】充席思君幄,疲马恋君轩。愿垂晋主惠,不愧田子魂。张校尉谓张骞。【李轻车谓李蔡。七奔,《左传》:“吴入州来,子重、子反,于是乎一岁七奔命。”“弃席”用晋文公事,“疲马”用田子方事,俱见《韩诗外传》。】

  代出自蓟北门行

  羽檄起边亭,烽火入咸阳。征师屯广武,分兵救朔方。严秋筋竿劲,虏阵粗且强。天子按剑怒,使者遥相望。雁行缘石径,鱼贯度飞梁。箫鼓流汉思,旌甲被胡霜。疾风冲塞起,沙砾自飘扬。马毛缩如猬,角弓不可张。时危见臣节,世乱识忠良。投躯报明主,身死为国殇。【明远能为抗壮之音,颇似孟德。】

  代鸣雁行

  邕邕鸣雁鸣始旦,齐行命侣入云汉。中夜相失群离乱,留连徘徊不忍散。憔悴仪容君不知,辛苦风霜亦何为?

  代淮南王

  淮南王,好长生,服食炼气读仙经。琉璃作碗牙作盘,金鼎玉匕合神丹。合神丹,戏紫房,紫房彩女弄明珰,鸾歌凤舞断君肠。朱城九门门九闺,愿逐明月入君怀。入君怀,结君佩,怨君恨君恃君爱。筑城思坚剑思利,同盛同衰莫相弃。【怨、恨、爱并在一句中,是乐府句法。下“筑城”句,是乐府神理。】

  代春日行

  献岁发,吾将行。春山茂,春日明。园中鸟,多嘉声。梅始发,桃始青。泛舟舻,齐棹惊。奏采菱,歌鹿鸣。微风起,波微生。弦亦发,酒亦倾。入莲池,折桂枝。芳袖动,芬叶披。两相思,两不知。【声情骀宕。末六字比“心悦君兮君不知”更深。】

  代白纻舞歌辞四首

  系奉诏作。

  吴刀楚制为佩袆,纤罗雾谷垂羽衣。含商咀征歌露晞,珠履飒沓纨袖飞。凄风夏起素云回,车怠马烦客忘归,兰膏明烛承夜辉。

  桂宫柏寝拟天居,朱爵文窗韬绮疏。象床瑶席镇犀渠,雕屏匼匝组帷舒。秦筝赵瑟挟笙竽,垂珰散珮盈玉除,停觞不语欲谁须?

  三星参差露沾湿,弦悲管清月将入。寒光萧条候虫急,荆王流叹楚妃泣。红颜难长时易戢,凝华结藻久延立,非君之故岂安集?

  池中赤鲤庖所捐,琴高乘去腾上天。命逢福世丁溢恩,簪金藉绮升曲弦。恩厚德深委如山,洁诚洗志期暮年,乌白马角宁足言?

  拟行路难

  奉君金卮之美酒,玳瑁玉匣之雕琴。七彩芙蓉之羽帐,九华葡萄之锦衾。红颜零落岁将暮,寒光宛转时欲沉。愿君裁悲且减思,听我抵节行路吟。不见柏梁铜雀上,宁闻古诗清吹音。

  洛阳名工铸为金博山,千斫复万镂,上刻秦女携手仙。承君清夜之欢娱,列置帏里明烛前。外发龙鳞之丹彩,内含麝芬之紫烟。如今君心一朝异,对此长叹终百年。

  璇闺玉墀上椒阁,文窗绣户垂罗幕。中有一人字金兰,被服纤罗采芳藿。春燕参差风散梅,开帏对景弄春爵。含歌揽涕恒抱愁,人生几时得为乐。宁作野中之双凫,不愿云间之别鹤。

  泻水置平地,各自东西南北流。人生亦有命,安能行叹复坐愁?酌酒以自宽,举杯断绝歌路难。心非木石岂无感,吞声踯躅不敢言。【妙在不曾说破,读之自然生愁。起手无端而下,如黄河落天走东海也。若移在中间,犹是恒调。】

  对案不能食,拔剑击柱长叹息。丈夫生世会几时,安能蹀躞垂羽翼?弃置罢官去,还家自休息。朝出与亲辞,暮还在亲侧。弄儿床前戏,看妇机中织。自古圣贤尽贫贱,何况我辈孤且直。【家庭之乐,岂宦游可比,明远乃亦不免俗见耶。江淹恨赋,亦以左对孺人,顾弄稚子为恨,功名中人,怀抱尔尔。】

  愁思忽而至,跨马出北门。举头四顾望,但见松柏园,荆棘郁蹲蹲。中有一鸟名杜鹃,言是古时蜀帝魂。声音哀苦鸣不息,羽毛憔悴似人髡。飞走树间啄虫蚁,岂忆往日天子尊。念此死生变化非常理,中心恻怆不能言。

  中庭五株桃,一株先作花,阳春妖冶二三月,从风簸荡落西家。西家思妇见悲惋,零泪沾衣抚心叹。初我送君出户时,何言淹留节回换。床席生尘明镜垢,纤腰瘦削发蓬乱。人生不得恒称意,惆怅倚徙至夜半。

  锉蘖染黄丝,黄丝历乱不可治。我昔与君始相值,尔时自谓可君意。结带与君言,死生好恶不相置。今朝见我颜色衰,意中索寞与先异。还君金钗玳瑁簪,不忍见之益愁思。【悲凉跌宕,曼声促节,体自明远独创。】

  梅花落

  中庭杂树多,偏为梅咨嗟。问君何独然,念其霜中能作花,霜中能作实。摇荡春风媚春日,念尔零落逐寒风,徒有霜华无霜质。【以花字联上嗟字成韵,以实字联下日字成韵,格法甚奇。】

  登黄鹤矶

  木落江渡寒,雁还风送秋。临流断商弦,瞰川悲棹讴。适郢无东辕,还夏有西浮。三崖隐丹磴,九派引沧流。泪竹感湘别,弄珠怀汉游。岂伊药饵泰,得夺旅人忧。【出语苍坚,发端有力。】

  日落望江赠荀丞

  旅人乏愉乐,薄暮增思深。日落岭云归,延颈望江阴。乱流灇大壑,长雾匝高林。林际无穷极,云边不可寻。惟见独飞鸟,千里一扬音。推其感物情,则知游子心。君居帝京内,高会日挥金。岂念慕群客,咨嗟恋景沉。

  吴兴黄浦亭庾中郎别

  风起洲渚寒,云上日无辉。连山眇烟雾,长波迥难依。旅雁方南过,浮客未西归。已经江海别,复与亲眷违。奔景易有穷,离袖安可挥?欢觞为悲酌,歌服成泣衣。温念终不渝,藻志远存追。役人多牵滞,顾路惭奋飞。昧心附远翰,炯言藏佩韦。

  赠傅都曹别

  轻鸿戏江潭,孤雁集洲沚。邂逅两相亲,缘念共无已。风雨好东西,一隔顿万里。追忆栖宿时,声容满心耳。落日川渚寒,愁云绕天起。短翮不能翔,徘徊烟雾里。

  行京口至竹里

  高柯危且竦,锋石横复仄。复涧隐松声,重崖伏云色。冰闭寒方壮,风动鸟倾翼。斯志逢雕严,孤游值曛逼。兼涂无憩鞍,半菽不遑食。君子树令名,细人效命力。不见长河水,清浊俱不息。

  上浔阳还都道中作

  昨夜宿南陵,今旦入芦洲。客行惜日月,崩波不可留。侵星赴早路,毕景逐前俦。鳞鳞夕云起,猎猎晚风遒。腾沙郁黄雾,翻浪扬白鸥。登舻眺淮甸,掩泣望荆流。绝目尽平原,时见远烟浮。倏悲坐还合,俄思甚兼秋。未尝违户庭,安能千里游。谁令乏古节,贻此越乡忧。

  发后渚

  江上气早寒,仲秋始霜雪。从军乏衣粮,方冬与家别。萧条背乡心,凄怆清渚发。凉埃晖平皋,飞潮隐修樾,孤光独徘徊,空烟视升灭。涂随前峰远,意逐后云结。华志分驰年,韶颜惨惊节。推琴三起叹,声为君断绝。【琢句宁生涩,不肯凡近。】

  咏史

  五都矜财雄,三川养声利。千金不市死,明经有高位。京城十二衢,飞甍各鳞次。仕子彯华缨,游客竦轻辔。明星晨未晞,轩盖已云至。宾御纷飒沓,鞍马光照地。寒暑在一时,繁华及春媚。君平独寂寞,身世两相弃。【陶朱公曰:“吾闻千金之子,不死于市。”住得斗绝,昔人所谓勒舞马势也。】

  拟古

  鲁客事楚王,怀金袭丹素。既荷主人恩,又蒙令尹顾。日晏罢朝归,舆马塞衢路。宗党生光华,宾仆远倾慕。富贵人所欲,道德亦何惧。南国有儒生,迷方独沦误。伐木清江湄,设罝守毚兔。

  十五讽诗书,篇翰靡不通。弱冠参多士,飞步游秦宫。侧睹君子论,预见古人风。两说穷舌端,五车摧笔锋。羞当白璧贶,耻受聊城功。晚节从世务,乘障远和戎。解佩袭犀渠,卷帙奉卢弓。始愿力不足,安知今所终?【《韩诗外传》:“楚襄王遣使者持金千斤,白璧百双,聘庄子为相。庄子不许。”】

  幽并重骑射,少年好驰逐。毡带佩双鞬,象弧插雕服。兽肥春草短,飞鞚越平陆。朝游雁门上,暮还楼烦宿。石梁有余劲,惊雀无全目。汉虏方未和,边城屡翻覆。留我一白羽,将以分符竹。【《阙子》曰:“宋景公使弓人为弓,九年乃成。公援弓东面而射之,矢逾于西霜之山,集于彭城之东,其余力益劲,犹饮羽于石梁。”《帝王世纪》曰:“羿与吴贺北游,贺使羿射雀。羿曰:‘生之乎?杀之乎?’贺曰:‘射其左目。’羿中其右目。抑首而愧,终身不忘。”】

  凿井北陵隈,百丈不及泉。生事本澜漫,何用独精坚?幼壮重寸阴,衰暮及轻年。放驾息朝歌,提爵止中山。日夕登城隅,周回视洛川。街衢积冻草,城郭宿寒烟。繁华悉何在?宫阙久崩填。空谤齐景非,徒称夷叔贤。【末即贤愚同尽意。】

  河畔草未黄,胡雁已矫翼。秋萤扶户吟,寒妇成夜织。去岁征人还,流传旧相识。闻君上陇时,东望久叹息。宿昔改衣带,朝旦异容色。念此忧如何,夜长愁更多。明镜尘匣中,瑶琴生网罗。【“扶户吟”,扶,犹依也。】

  蜀汉多奇山,仰望与云平。阴崖积夏雪,阳谷散秋荣。朝朝见云归,夜夜闻猿鸣。忧人本自悲,孤客易伤情。临堂设樽酒,留酌思平生。石以坚为性,君勿惭素诚。【《拟古》诸作,得陈思太冲遗意。】

  绍古辞

  橘生湘水侧,菲陋人莫传。逢君金华宴,得在玉几前。三川穷名利,京洛富妖妍。恩荣难久恃,隆宠易衰偏。观席妾凄怆,睹翰君泫然。徒抱忠孝志,犹为葑菲迁。

  昔与君别时,蚕妾初献丝。何言年月驶,寒衣已捣治。绦绣多废乱,篇帛久尘缁。离心壮为剧,飞念如悬旗。石席我不爽,德音君勿欺。【易旌为旗,古人亦有此种强押。】

  瑟瑟凉海风,竦竦寒山木。纷纷羁思盈,慊慊夜弦促。访言山海路,千里歌别鹤。弦绝空咨嗟,形音谁赏录。辛苦异人状,美貌改如玉。徒畜巧言鸟,不解心款曲。

  学刘公干体

  胡风吹朔雪,千里度龙山。集君瑶台上,飞舞两楹前。兹晨自为美,当避艳阳天。艳阳桃李节,皎洁不成妍。

  遇铜山掘黄精

  土肪閟中经,水芝韬内策。宝饵缓童年,命药驻衰历。矧蓄终古情,重拾烟雾迹。羊角栖断云,榼口流隘日。铜溪昼森沉,乳窦夜涓滴。既类风门磴,复像天井壁。蹀蹀寒叶离,灇灇秋水积。松色随野深,月露依草白。空守江海思,岂怀梁郑客。得仁古无怨,顺道今何惜。【清而幽,谢公诗中无此一种,此唐人先声也。】

  秋夜

  遁迹避纷喧,货农栖寂寞。荒径驰野鼠,空庭聚山雀。既远人世欢,还赖泉卉乐。折柳樊场圃,负绠汲潭壑。霁旦见云峰,风夜闻海鹤。江介早寒来,白露先秋落。麻垄方结叶,瓜田已扫箨。倾晖忽西下,回景思华幕。攀萝席中轩,临觞不能酌。终古自多恨,幽悲共沦铄。

  玩月城西门廨中

  始见西南楼,纤纤如玉钩。末映西北墀,娟娟似蛾眉。蛾眉蔽珠栊,玉钩隔琐窗。三五二八时,千里与君同。夜移衡汉落,裴徊帷户中。归华先委露,别叶早辞风。客游厌苦辛,仕子倦飘尘。休浣自公日,宴慰及私辰。蜀琴抽白雪,郢曲发阳春。肴干酒未阕,金壶起夕沦。回轩驻轻盖,留酌待情人。【少陵所云俊逸,应指此种。】

  鲍令晖

  代葛沙门妻郭小玉作

  明月何皎皎,垂幌照罗茵。若共相思夜,知同忧怨晨。芳华岂矜貌,霜露不怜人。君非青云逝,飘迹事咸秦。妾持一生泪,经秋复度春。

  题书后寄行人

  自君之出矣,临轩不解颜。砧杵夜不发,高门昼恒关。帐中流熠耀,庭前华紫兰。杨枯识节异,鸿归知客寒。游用暮冬尽,除春待君还。杨枯十字作意。

  吴迈远

  胡笳曲

  轻命重意气,古来岂但今。缓颊献一说,扬眉受千金。边风落寒草,鸣笳堕飞禽。越情结楚思,汉耳听胡音。既怀离俗伤,复悲朝光侵。日当故乡没,遥见浮云阴。

  古意赠今人

  寒乡无异服,毡褐代文练。日日望君归,年年不解綖。荆扬春蚤和,幽蓟犹霜霰。北寒妾已知,南心君不见。谁为道辛苦,寄情双飞燕。形迫杼煎丝,颜落风催电。容华一朝改,惟余心不变。【北寒南心,巧于著词。】

  长相思

  晨有行路客,依依造门端。人马风尘色,知从河塞还。时我有同栖,结宦游邯郸。将不异客子,分饥复共寒。烦君尺帛书,寸心从此殚。遣妾长憔悴,岂复歌笑颜。檐隐千霜树,庭枯十载兰。经春不举袖,秋落宁复看。一见愿道意,君门已九关。虞卿弃相印,担簦为同欢。闺阴欲蚤霜,何事空盘桓。

  王徽

  杂诗思妇临高台,长想凭华轩。弄弦不成曲,哀歌送苦言。箕帚留江介,良人处雁门。讵忆无衣苦,但知狐白温。日暗牛羊下,野雀满空园。孟冬寒风起,东壁正中昏。朱火独照人,抱景自愁怨。谁知心曲乱,所思不可论。

  王僧达

  答颜延年

  长卿冠华阳,仲连擅海阴。珪璋既文府,精理亦道心。君子耸高驾,尘轨实为林。崇情符远迹,清气溢素襟。结游略年义,笃顾弃浮沈,寒荣共偃曝,春酝时献斟。聿来岁序暄,轻云出东岑。麦垄多秀色,杨园流好音。欢此乘日暇,忽忘逝景侵。幽衷何用慰,翰墨久谣吟。栖凤难为条,淑贶非所临。诵以永周旋,匣以代兼金。【亦著意追琢,答颜诗与颜体相似。《庄子》曰:“忘年志义,振于无境。”】

  和琅琊王依古

  少年好驰侠,旅宦游关源。既践终古迹,聊讯兴亡言。隆周为薮泽,皇汉成山樊。久没离宫地,安识寿陵园?仲秋边风起,孤蓬卷霜根。白日无精景,黄沙千里昏。显轨莫殊辙,幽途岂异魂。圣贤良已矣,抱命复何怨!【寿陵,景帝陵也。】

  沈庆之

  侍宴诗

  《南史》云:“孝武令群臣赋诗,庆之有口辩,手不能书,上令作赋,庆之曰:‘臣请口授师伯,上令颜师伯执笔,庆之云云。’上甚悦,众坐并称其词意之美。”

  微生遇多幸,得逢时运昌。朽老筋力尽,徒步还南冈。辞荣此圣世,何愧张子房。【武臣诗不嫌其直,与曹景宗诗并传。】

  陆凯

  赠范晔诗

  《荆州记》曰:“凯与范晔交善,自江南寄梅花一枝与晔,赠诗云云。”

  折梅逢驿使,寄与陇头人。江南无所有,聊赠一枝春。

  汤惠休

  怨诗行

  明月照高楼,含君千里光。巷中情思满,断绝孤妾肠。悲风荡帷帐,瑶翠坐自伤。妾心依天末,思与浮云长。啸歌视秋草,幽叶岂再扬。暮兰不待岁,离华能几芳。愿作张女引,流悲绕君堂。君堂严且秘,绝调徒飞扬。【只一起便是绝唱,文通碧云之句,庶足相拟。禅寂人作情语,转觉入微,微处亦可证禅也。颜延之谓惠休制作委巷间歌谣耳。方当误后生,岂因其近于艳耶?】

  刘俣

  诗一首

  城上草,植根非不高。所恨风霜蚤。【似谣。】

  渔父

  答孙缅歌《南史》:浔阳太守孙缅遇渔父,与论用世之道。渔父曰:“仆山海狂人,不达世务,未辨贫贱,无论荣贵。”乃歌云云。于是悠然鼓而去。

  竹竿籊籊,河水浟浟。相忘为乐,贪饵吞钩。非夷非惠,聊以忘忧。【东方先生曰:“首阳为拙,柳下为工,此斟酌于工拙之间。”】

  宋人歌

  《南史》:檀道济宋之良将,为敌所畏,宋主疑而杀之。宋人作歌。可怜白符鸠,枉杀檀江州。

  石城谣

  《南史》:袁粲谋举兵诛齐高帝,褚渊发其谋。粲遇害,而渊独辅政。百姓语曰。

  可怜石头城,宁为袁粲死,不作褚渊生。

  青溪小姑歌

  蒋侯妹。

  日暮风吹,叶落依枝。丹心寸意,愁君未知。

●古诗源卷十二

○齐诗

  谢朓

  玄晖灵心秀口,每诵名句,渊然泠然,觉笔墨之中,笔墨之外,别有一段深情妙理。康乐每板拙,玄晖多清俊,然诗品终在康乐下,能清不能厚也。

  江上曲

  易阳春草出,踟蹰日已暮。莲叶尚田田,淇水不可渡。愿子淹桂舟,时同千里路。千里既相许,桂舟复容与。江上可采菱,清歌共南楚。

  同谢谘议咏铜雀台

  繐帷飘井干,罇酒若平生。郁郁西陵树,讵闻鼓吹声。芳襟染泪迹,婵娟空复情。玉座犹寂寞,况乃妾身轻。【笑魏武也,而托之于树,何等含蕴。可悟立言之妙。】

  玉阶怨

  夕殿下珠帘,流萤飞复息。长夜缝罗衣,思君此何极。【竟是唐人绝句。在唐人中为最上者。】

  金谷聚

  渠碗送佳人,玉杯邀上客。车马一东西,别后思今夕。【别离情事,以澹澹语出之,其情自深。苏李诗亦不作蹙蹶声也。】

  入朝曲

  隋王鼓吹曲十首之一。

  江南佳丽地,金陵帝王州。逶迤带绿水,迢递起朱楼。飞甍夹驰道,垂杨荫御沟。凝笳翼高盖,叠鼓送华辀。献纳云台表,功名良可收。

  同王主簿有所思

  佳期期未归,望望下鸣机。徘徊东陌上,月出行人稀。【即景含情,怨在言外。】

  京路夜发

  自丹阳之宣城郡。

  扰扰整夜装,肃肃戒徂两。晓星正寥落,晨光复泱漭。犹沾余露团,稍见朝霞上。故乡邈已敻,山川修且广。文奏方盈前,怀人去心赏。敕躬每跼蹐,瞻恩惟震荡。行矣倦路长,无由税归鞅。

  和徐都曹出新亭渚

  徐勉有昧旦出新亭渚诗。

  宛洛佳遨游,春色满皇州。结轸青郊路,回瞰苍江流。日华川上动,风光草际浮。桃李成蹊径,桑榆荫道周。东都已俶载,言归海绿畴。

  游敬亭山

  兹山亘百里,合沓与云齐。隐沦既已托,灵异居然栖。上干蔽白日,下属带回溪。交藤荒且蔓,賬枝耸复低。独鹤方朝唳,饥鼯此夜啼。渫云已漫漫,夕雨亦凄凄。我行虽纡组,兼得寻幽蹊。缘源殊未极,归径窅如迷。要欲追奇趣,即此凌丹梯。皇恩竟已矣,兹理庶无睽。

  游东田

  戚戚苦无悰,携手共行乐。寻云陟累榭,随山望菌阁。远树暖阡阡,生烟纷漠漠。鱼戏新荷动,鸟散余花落。不对芳春酒,还望青山郭。

  暂使下都夜发新林至京邑赠西府同僚

  大江流日夜,客心悲未央,徒念关山近,终知返路长。秋河曙耿耿,寒渚夜苍苍。引领见京室,宫雉正相望。金波丽鳷鹊,玉绳低建章。驱车鼎门外,思见昭丘阳。驰晖不可接,何况隔两乡。风云有鸟道,江汉限无梁。常恐鹰隼击,时菊委严霜。寄言罻罗者,寥廓已高翔。【成王定鼎于郏,其南门曰鼎门。一起滔滔莽莽,其来无端,望京一段,眷恋不已。“秋河”六语,应关山近,“驱车”六语,应返路长。时眺被谗而去,故有末二语。言已翔乎寥廓,罗者无如何也,用长卿难父老篇语意。】

  酬王晋安

  梢梢枝早劲,涂涂露晚晞。南中荣橘柚,宁知鸿雁飞。拂雾朝青阁,日旰坐彤闱。怅望一途阻,参差百虑依。春草秋更绿,公子未西归。谁能久京洛,缁尘染素衣。【《楚辞》曰:“白露纷以涂。”涂,谓厚也。鸿雁南栖衡阳,不入晋安之郡,故曰“宁知”,晋安,即今之泉州。】

  郡内高斋闲望答吕法曹

  郡为宣城郡。

  结构何迢递,旷望极高深。窗中列远岫,庭际俯乔林。日出众鸟散,山瞑孤猿吟。已有池上酌,复此风中琴。非君美无度,孰为劳寸心?惠而能好我,问以瑶华音。若遗金门步,见就玉山岑。

  新亭渚别范零陵云

  洞庭张乐地,潇湘帝子游。云去苍梧野,水还江汉流。停骖我怅望,辍棹子夷犹。广平听方籍,茂陵将见求。心事俱已矣,江上徒离忧。【言范同广平,而声听方籍,已当居茂陵之下。将因彼而求见也,郭袤为广平太守。】

  之宣城郡出新林浦向板桥

  江路西南永,归流东北骛。天际识归舟,云中辨江村。旅思倦摇摇,孤游昔已屡。既欢怀禄情,复协沧洲趣。嚣尘自兹隔,赏心于此遇。虽无玄豹姿,终隐南山雾。

  在郡卧病呈沈尚书

  尚书,约也。

  淮阳股肱守,高卧犹在兹。况复南山曲,何异幽栖时?连阴盛农节,笞笠聚东菑。高阁常昼掩,荒阶少诤辞。珍簟清夏室,轻扇动凉飔。嘉鲂聊可荐,渌蚁方独持。夏李沈朱实,秋藕折轻丝。良辰竟何许,夙昔梦佳期。坐啸徒可积,为邦岁已期。弦歌终莫取,抚几令自嗤。【南阳太守弘农成缙,任功曹岑晊,时人语曰:“南阳太守岑公孝,弘农成缙但坐啸。”】

  晚登三山还望京邑

  灞涘望长安,河阳视京县。白日丽飞甍,参差皆可见。余霞散成绮,澄江静如练。喧鸟覆春洲,杂英满芳甸。去矣方滞淫,怀哉罢欢宴。佳期怅何许,泪下如流霰。有情知望乡,谁能鬒不变。

  直中书省

  紫殿肃阴阴,彤庭赫弘敞。风动万年枝,日华承露掌。玲珑结绮钱,深沈映朱网。红药当阶翻,苍苔依砌上。兹言翔凤池,鸣珮多清响。信美菲吾室,中园思偃仰。朋情以郁陶,春物方骀荡。安得凌风翰,聊恣山泉赏。【《东宫旧事》曰:“窗有四面,结绮连钱。】

  宣城郡内登望

  借问下车日,匪直望舒圆。寒城一以眺,平楚正苍然。山积陵阳阻,溪流春谷泉。威纡距遥甸,巉岩带远天。切切阴风暮,桑柘起寒烟。怅望心已极,惝恍魂屡迁。结发倦为旅,平生早事边。谁规鼎食盛,宁要狐白鲜。方弃汝南诺,言税辽东田。【“寒城”,一联格高,朱子亦赏之。《续汉书》曰:“汝南太守宗资,任用范滂,时人谣曰:‘汝南太守范孟博,南阳宗资主画诺。’”《魏志》曰:“管宁闻公孙度令行海外,遂至辽东。”】

  高斋视事

  余雪映青山,寒雾开白日。暧暧江村见,离离海树出。披衣就清盥,凭轩方秉笔。列俎归单味,连驾止容膝。空为大国忧,纷诡谅非一。安得扫蓬径,锁吾愁与疾。【起四句写雪后入神。】

  落日怅望

  昧旦多纷喧,日晏未遑舍。落日余清阴,高枕东窗下。寒槐渐如束,秋菊行当把。借问此何时,凉风怀朔马。已伤暮归客,复思离居者。情嗜幸非多,案牍偏为寡。既乏琅政,方憩洛阳社。

  移病还园示亲属

  疲策倦人世,敛性就幽蓬。停琴伫凉月,灭烛听归鸿。凉蒹乘暮析,秋华临夜空。叶低知露密,崖断识云重。折荷葺寒袂,开镜盼衰容。海暮腾清气,河关秘栖冲。烟衡时未歇,芝兰去相从。

  送江兵曹檀主簿朱孝廉还上国

  方舟泛春渚,携手趋上京。安知慕归客,讵意山中情。香风蕊上发,好鸟叶间鸣。挥袂送君已,独此夜琴声。

  秋夜

  秋夜促织鸣,南邻捣衣急。思君隔九重,夜夜空伫立。北窗轻幔垂,西户月光入。何知白露下,坐视阶前湿。谁能长分居,秋尽冬复及!

  和何议曹郊游

  春心澹容与,挟弋步中林。朝光映红萼,微风吹好音。江陲得清赏,山际果幽寻。未尝远离别,知此惬归心。流溯终靡已,嗟行方至今。

  和王著作融八公山

  谢玄败苻坚处。

  二别阻汉坻,双崤望河澳。兹岭复巑岏,分区奠淮服。东限琅琊台,西距孟诸陆。阡眠起杂树,檀栾荫修竹。日隐涧疑空,云聚岫如复。出没眺楼雉,远近送春目。戎州昔乱华,素景沦伊谷。阽危赖宗衮,微管寄明牧。长蛇固能翦,奔鲸自此曝。道峻芳尘流,业遥年运倏。平生仰令图,吁嗟命不淑。浩荡别亲知,连翩戒征轴。再远馆姓宫,两去河阳谷。风烟四时犯,霜雨朝夜沐。春秀良已雕,秋场庶能筑。【戎州乱华,谓苻坚;素景,谓晋以金德王也。宗衮,谓谢安;明牧,谓谢玄;微管,即微管仲吾其被发左衽意。古人引用,多割截者。长蛇奔鲸,喻苻坚、苻融也。平生仰令图以下,皆眺自谓。小谢诗俱极流利,而此篇及《和伏武昌》作,典重质实,俱宗仰康乐。】

  和伏武昌登孙权故城

  伏曼容为武昌太守。

  炎灵遗剑玺,当涂骇龙战。圣期缺中壤,霸功兴宇县。鹊起登吴山,凤翔凌楚甸。衿带穷岩险,帷帟【音亦。】尽谋选。北拒溺骖镳,西龛收组练。江海既无波,俯仰流英盼。裘冕类禋郊,卜揆崇离殿。钓台临讲阅,樊山开广宴。文物共葳蕤,声明且葱茜。三光厌分景,书轨欲同荐。参差世祀忽,寂寞市朝变。舞馆识余基,歌梁想遗啭。故林衰木平,芳池秋草遍。雄图怅若兹,茂宰深遐睠。幽客滞江皋,从赏乖缨弁。清卮阻献酬,良书限闻见。幸藉芳音多,承风采余绚。于役倘有期,鄂渚同游衍。【炎灵,谓汉。当涂谓魏。言当道而高大者,魏也。帷帟尽谋选,言帷帐共事者皆善谋,而诸侯之选也。北拒,谓御曹操。西龛,谓败西蜀。龛与戡同。《周礼》曰:“王祀昊天上帝则服大裘而冕,祀五帝亦如之。”卜揆,即卜云其吉。揆之以日,言作室也。《三国名臣颂》曰:“三光参分,宇宙暂隔。”此言“厌分景”者,几欲混一天下也。“参差世祀忽”以下,指亡国后说。茂宰,谓伏武昌。幽客,自谓。《墨子》曰:“墨子献书于惠王,王受而读之,曰:‘此良书也。’”此指武昌原作。宣城系遥和,非共登城者,玩末二句自见。】

  新治北窗和何从事

  国小暇日多,民淳纷务屏。辟牖期清旷,开帘候风景。泱泱日照溪,团团云去岭。岧嶤兰橑峻,骈阗石路整。池北树如浮,竹外山犹影。自来弥弦望,及君临箕颍。清文蔚且咏,微言超已领。不见城壕侧,思君朝夕顷。回舟方在辰,何以慰延颈。

  和江丞北戍琅琊城

  春城丽白日,阿阁跨层楼。苍江忽渺渺,驱马复悠悠。京洛多尘雾,淮济未安流。岂不思抚剑,惜哉无轻舟。夫君良自勉,岁暮勿淹留。

  和王中丞闻琴

  凉风吹月露,圆景动清阴。蕙风入怀抱,闻君此夜琴。萧瑟满林听,轻鸣响涧音。无为澹容与,蹉跎江海心。

  离夜

  玉绳隐高树,斜汉耿层台。离堂华烛尽,别幌清琴哀。翻潮尚知恨,客思渺难裁。山川不可尽,况乃故人杯。

  王孙游

  绿草蔓如丝,杂树红英发。无论君不归,君归芳已歇。

  临溪送别

  怅望南浦时,徙倚北梁步。叶上凉风初,日隐轻霞暮。荒城迥易阴,秋溪广难渡。沫泣岂徒然,君子行多露。

  王融

  渌水曲

  湛露改寒司,交莺变春旭。琼树落晨红,瑶塘水初渌。日霁沙溆明,风泉动华烛。遵渚泛兰觞,乘漪弄清曲。斗酒千金轻,寸阴百年促。何用尽欢娱,王度式如玉。

  巫山高

  想像巫山高,薄暮阳台曲。烟霞乍舒卷,猿鸟时断续。彼美如可期,寤言纷在瞩。怃然坐相思,秋风下庭绿。

  萧谘议西上夜集

  徘徊将所爱,惜别在河梁。衿袖三春隔,江山千里长。寸心无远近,边地有风霜。勉哉勤岁暮,敬矣事容光。山中殊未怿,杜若空自芳。

  和王友德元古意二首

  游禽暮知返,行人独未归。坐销芳香气,空度明月辉。嚬容入朝镜,思泪点春衣。巫山彩云没,淇上绿杨稀。待君竟不至。秋雁双双飞。

  霜气下孟津,秋风度函谷。念君凄以寒,当轩卷罗谷。纤手废裁缝,曲鬓罢膏沐。千里不相闻,寸心郁纷蕴。【平声。】况复飞萤夜,木叶乱纷纷。

  张融

  别诗

  白云山上尽,清风松下歇。欲识离人悲,孤台见明月。

  刘绘

  有所思

  别离安可再,而我更重之。佳人不相见,明月空在帷。共御满堂酌,独敛向隅眉。中心乱如雪,宁知有所思。

  孔稚圭

  游太平山

  石险天貌分,林交日容缺。阴涧落春荣,寒岩留夏雪。【阴森。】

  陆厥

  临江王节士歌

  木叶下,江波连,秋月照浦云歇山。秋思不可裁,复带秋叶来。秋风来已寒,白露惊罗纨。节士慷慨发冲冠,弯弓挂若木,长剑竦云端。

  江孝嗣

  北戍琅琊城诗

  驱马一连翩,日下情不息。芳树似佳人,惆怅余何极。薄暮苦羁愁,终朝伤旅食。丈夫许人世,安得顾心忆。按剑勿复言,谁能耕与织。

  东昏时百姓歌

  《金陵志》:“东昏侯即台城阅武堂为芳乐苑,又于苑中立店肆,以潘妃为市令。”

  阅武堂,种杨柳。至尊屠肉,潘妃沽酒。

○梁诗

  武帝

  逸民

  如垄生木,木有异心。如林鸣鸟,鸟有殊音。如江游鱼,鱼有浮沈。岩岩山高,湛湛水深。事迹易见,理相难寻。【渊渊浑浑,不类齐梁风格。】

  西洲曲

  一作晋辞。

  忆梅下西洲,折梅寄江北。单衫杏子红,双鬓鸦雏色。西洲在何处,两桨桥头渡。日暮伯劳飞,风吹乌桕树。树下即门前,门中露翠钿。开门郎不至,出门采红莲。采莲南塘秋,莲花过人头。低头弄莲子,莲子青如水。置莲怀袖中,莲心彻底红。忆郎郎不至,仰首望飞鸿。飞鸿满西洲,望郎上青楼。楼高望不见,尽日阑干头。阑干十二曲,垂手明如玉。卷帘天自高,海水摇空绿。海水梦悠悠,君愁我亦愁。南风知我意,吹梦到西洲。【续续相生,连跗接萼,摇曳无穷,情味愈出。似绝句数首,攒簇而成,乐府中又生一体。初唐张若虚、刘希夷,七言古,发源于此。】

  拟青青河畔草

  幕幕绣户丝,悠悠怀昔期。昔期久不归,乡国旷音徽。音徽空结迟,半寝觉如至。既寤了无形,与君隔平生。月似云掩光,叶似霜摧老。当途竟自容,莫肯为妾道。

  河中之水歌

  一作晋辞。

  河中之水向东流,洛阳女儿名莫愁。莫愁十三能织绮,十四采桑南陌头。十五嫁为卢家妇,十六生儿字阿侯。卢家兰室桂为梁,中有郁金苏合香。头上金钗十二行,足下丝履五文章。珊珊挂镜烂生光,平头奴子擎履箱。人生富贵何所望?恨不早嫁东家王。

  东飞伯劳歌

  一作古辞

  东飞伯劳西飞燕,黄姑织女时相见。谁家儿女对门居,开颜发艳照里闾。南窗北牖挂明光,罗帏绮帐脂粉香。女儿年纪十五六,窈窕无双颜如玉。三春已暮花从风,空留可怜谁与同。【何许骀宕。】

  天安寺疏圃堂

  乘和荡犹豫,此焉聊止息。连山去无限,长洲望不极。参差照光彩,左右皆春色。晻暧瞩游丝,出没看飞翼。其乐信难忘,翛然宁有适。

  藉田

  寅宾始出日,律中方星鸟。千亩土膏紫,万顷陂色缥。严驾伫霞昕,浥露逗光晓。启行天犹暗,伐鼓地未悄。苍龙发蟠蜿,青旂引窈窕。仁化洽孩虫,德令禁胎夭。耕藉乘月映,遗滞指秋杪。年丰廉让多,岁薄礼节少。公卿秉耒耜,庶甿荷锄耰。【同摄。】一人惭百王,三推先亿兆。【典重肃穆,能与题称。】

  简文帝

  诗至萧梁,君臣上下,惟以艳情为娱,失温柔敦厚之旨,汉、魏遗轨,荡然扫地矣,故所选从略。

  折杨柳

  杨柳乱成丝,攀折上春时。叶密鸟飞得,风轻花落迟。城高短箫发,林空画角悲。曲中无别意,并是为相思。【“风轻花落迟”五字隽绝。】

  临高台

  高台半行云,望望高不极。草树无参差,山河同一色。仿佛洛阳道,道远难别识。玉阶故情人,情来共相忆。【“山河同一色”,自是登高远望神理。少陵《登塔》云:“俯视但一气,焉能辨皇州?”更觉雄跨数倍。】

  纳凉

  斜日晚骎骎,池塘生半阴。避暑高梧侧,轻风时入襟。落花还就影,惊蝉乍失林。游鱼吹水沫,神蔡上荷心。翠竹垂秋采,丹枣映疏砧。无劳夜游曲,寄此托微吟。

  元帝

  咏阳云楼檐柳

  杨柳非花树,依楼自觉春。枝边通粉色,叶里映红巾。带日交帘影,因吹扫席尘。拂檐应有意,偏宜桃李人。【咏杨柳者,唐人佳句甚多,然不如梁元二语,有天然之致。“落星依远戍,斜月半平林”,二语澹远可风,摘录于此。】

  折杨柳

  巫山巫峡长,垂柳复垂杨。同心且同折,故人怀故乡。山似莲花艳,流如明月光。寒夜猿声彻,游子泪沾裳。【连上篇,此种音节,竟是五言近体矣。古诗之亡,亡于齐梁之间,唐陈射洪起而廓清之。文得昌黎,诗得射洪,挽回之功不小。】

  沈约

  家令诗,较之鲍、谢,性情声色俱逊一格矣。然在萧梁之代,亦推大家。以边幅尚阔,词气尚厚,能存古诗一脉也。尔时江屯骑、何水曹,各自成家,可以鼎足。水部名句极多,然渐入近体。

  临高台

  高台不可望,望远使人愁。连山无断绝,河水复悠悠。所思竟何在,洛阳南陌头。可望不可见,何用解人忧。

  夜夜曲

  河汉纵且横,北斗横复直。星汉空如此,宁知心有忆。孤灯暧不明,寒机晓犹织。零泪向谁道,鸡鸣徒叹息。

  新安江至清浅深见底贻京邑游好

  眷言访舟客,兹川信可珍。洞彻随清浅,皎镜无冬春。千仞写高树,百丈见游鳞。沧浪有时浊,清济涸无津。岂若乘斯去,俯映石磷磷。纷吾隔嚣滓,宁假濯衣巾。愿以潺水,沾君缨上尘。

  直学省愁卧

  学省,国学也。

  秋风吹广陌,肃瑟入南闱。愁人掩轩卧,高窗时动扉。虚馆清阴满,神宇暧微微。网虫垂户织,夕鸟傍櫩飞。缨珮空为忝,江海事多违。山中有桂树,岁暮可言归。【诗品自在,是《文选》体。】

  宿东园

  陈王斗鸡道,安仁采憔路。东郊岂异昔,聊可闲余步。野径既盘纡,荒阡亦交互。槿篱疏复密,荆扉新且故。树顶鸣风飙,草根积霜露。惊麏去不息,征鸟时相顾。茅栋啸愁鸱,平冈走寒兔。夕阴带层阜,长烟引轻素。飞光忽我遒,岂止岁云暮。若蒙西山药,颓龄倘能度。【潘岳诗曰:“出自东郊,忧心摇摇。遵彼莱田,言采其樵。”西山药,见魏文诗。】

  别范安成

  生平少年日,分手易前期。及尔同衰暮,非复别离时。勿言一尊酒,明日难重持。梦中不识路,何以慰相思。【一片真气流出,句句转,字字厚,去《十九首》不远。】

  伤谢

  吏部信才杰,文峰振奇响。调与金石谐,思逐风云上。岂言陵霜质,忽随人事往。尺璧尔何冤,一日同丘壤。【三四语能状谢朓之诗。】

  石塘濑听猿

  噭噭夜猿鸣,溶溶晨雾合。不知声远近,惟见山重沓。既欢乐岭唱,复伫西岩答。

  游沈道士馆

  秦皇御宇宙,汉帝恢武功。欢娱人事尽,情性犹未充。锐意三山上,托慕九霄中。既表祈年观,复立望仙宫。宁为心好道,直由意无穷。曰余知止足,是愿不须丰。遇可淹留处,便欲息微躬。山嶂远重叠,竹树近蒙笼。开襟濯寒水,解带临清风。所累非物外,为念在玄空。朋来握石髓,宾至驾轻鸿。都令人径绝,惟使云路通。一举凌倒景,【同影。】无事适华嵩。寄言赏心客,岁暮尔来同。【谷永曰:“遇风轻举,登遐倒景。”言身在日月之上,日月反从下照,故其景倒也。“欢娱人事尽”十字,“宁为心好道”十字,从来富贵人慕神仙之故,断得确,说得尽。】

  早发定山

  夙龄爱远壑,晚莅见奇山。标峰彩虹外,置岭白云间。倾壁忽斜竖,绝顶复孤圆。归流海漫漫,出浦水溅溅。野棠开未落,山樱发欲然。忘归属兰杜,怀禄寄芳荃。眷言采三秀,徘徊望九仙。【通体对偶,亦成一格。】

  冬节后至丞相第诣世子车中作

  《齐书》:“豫章王嶷甍,赠丞相、杨州牧。长子廉,为世子。”

  廉公失权势,门馆有虚盈。贵贱犹如此,况乃曲池平。高车尘未灭,珠履故余声。宾阶绿钱满,客位紫苔生。谁当九原上,郁郁望佳城。【《史记·廉颇传》曰:“廉颇失势之时,故客尽去。乃复为将,又复至。】

  奉和竟陵王经刘瓛墓

  表闾钦逸轨,式暮礼真魂。化涂终渺默,神理暧犹存。尘经未辍幌,高衡已委门。日芜子云舍,徒望董生园。华阴无遗布,楚席有灵樽。元泉倘能慰,长夜且勿论。【华阴句,用王烈遗盗牛者布事。】

●古诗源卷十三

○梁诗

  江淹

  文通颇能修饬,而风骨未高。

  从冠军建平王登庐山香炉峰

  广成爱神鼎,淮南好丹经。此山具鸾鹤,往来尽仙灵。瑶草正翕赩,玉树信葱青。绛气下萦薄,白云上杳冥。中坐瞰蜿虹,俛伏视流星。不寻遐怪极,则知耳目惊。日落长沙渚,曾阴万里生。藉兰素多意,临风默含情。方学松柏隐,羞逐市井名。幸承光诵末,伏思托后旍。

  望荆山

  奉诏至江汉,始知楚塞长。南关绕桐柏,西岳出鲁阳。寒郊无留影,秋日悬清光。悲风挠重林,云霞肃川涨。岁晏君如何,零泪沾衣裳。玉柱空掩露,金樽坐含霜。一闻苦寒奏,再使艳歌伤。【萧瑟。】

  古离别

  《杂拟》共三十首,今存五首。

  远与君别者,乃至雁门关。黄云蔽千里,游子何时还。送君如昨日,檐前露已团。不惜蕙草晚,所悲道里寒。君在天一涯,妾身长别离。愿一见颜色,不异琼树枝。兔丝及水萍,所寄终不移。【《淮南子》曰:“夫萍树根于水,木树根于土,天地性也,此借以表已志之贞。”】

  班婕妤咏扇

  纨扇如团月,出自机中素。画作秦王女,乘鸾向烟雾。彩色世所重,虽新不代故。窃愁凉风至,吹我玉阶树。君子恩未毕,零落在中路。

  刘太尉琨伤乱

  皇晋遘阳九,天下横氛雾。秦赵值薄蚀,幽并逢虎据。伊余荷宠灵,感激徇驰骛。虽无六奇术,冀与张韩遇。宁戚扣角歌,桓公遭乃举。荀息冒险难,实以忠贞故。空令日月逝,愧无古人度。饮马出城壕,北望沙漠路。千里何萧条,白日隐寒树。投袂既愤懑,抚枕怀百虑。功名惜未立,玄发已改素。时哉苟有会,治乱惟冥数。【末段悲壮,去太尉不远。】

  陶征君潜田居

  种苗在东皋,苗生满阡陌。虽有荷锄倦,浊酒聊自适。日暮巾柴车,路暗光已夕。归人望烟火,稚子候檐隙。问君亦何为,百年会有没。但愿桑麻成,蚕月得纺绩。素心正如此,开径望三益。【得彭泽之清逸矣。】

  休上人怨别

  西北秋风至,楚客心悠哉。日暮碧云合,佳人殊未来。露彩方泛艳,月华始徘徊。宝书为君掩,瑶瑟讵能开。相思巫山渚,怅望阳云台。高罏绝沈燎,绮席生浮埃。桂水日千里,因之平生怀。【有佳句。】

  效阮公诗

  岁暮怀感伤,中夕弄清琴。戾戾曙风急,团团明月阴。孤云出北山,宿鸟惊东林。谁谓人道广,忧慨自相寻。宁知霜雪后,独见松竹心。

  少年学击剑,从师至幽州。燕赵兵马地,惟见古时丘。登城望山水,平原独悠悠。寒暑有往来,功名安可留?

  若木出海外,本自丹水阴。群帝共上下,鸾鸟相追寻。千龄犹旦夕,万世更浮沉。岂与异乡士,瑜瑕论浅深。

  昔余登大梁,西南望洪河。时寒原野旷,风急霜露多仲冬正惨切,日月少精华。落叶纵横起,飞鸟时相过。搔首广川阴,怀归思如何。常愿反初服,闲步颍水阿。

  宵月辉西极,女圭映东海。佳丽多异色,芬葩有奇采。绮缟非无情,光阴命谁待?不与风雨变,长共山川在。人道则不然,消散随风改。【能脱当时排偶之习,然较之阮公,相去不可数计。】

  范云

  有所思

  如何有所思,而无相见时。宿昔梦颜色,阶庭寻履綦。高张更何已,引满终自持。欲知忧能老,为视镜中丝。

  赠张徐州谡

  田家樵采去,薄暮方来归。还闻稚子说,有客款柴扉。傧从皆珠玳,裘马悉轻肥。轩盖照墟落,传瑞生光辉。疑是徐方牧,既是复疑非。思旧昔言有,此道今已微。物情弃疵贱,何独顾衡闱。恨不具鸡黍,得与故人挥。怀情徒草草,泪下空霏霏。寄书云间雁,为我西北飞。【既是疑非,跌宕有神。】

  送沈记室夜别

  桂水澄夜氛,楚山清晓云。秋风两乡怨,秋月千里分。寒枝宁共采,霜猿行独闻。扪萝正忆我,折桂方思君。

  之零陵郡次新亭

  江干远树浮,天末孤烟起。江天自如合,烟树还相似。沧流未可源,高帆去何已。

  别诗

  洛阳城东西,长作经时别。昔去雪如花,今来花似雪。【自然得之,故佳。后人学步,便觉有意。】

  任昉

  赠郭桐庐出溪口见候余既未至郭仍进村维舟久之郭生乃至

  朝发富春渚,蓄意忍相思。涿令行春返,冠盖溢川坻。望久方来萃,悲欢不自持。沧江路穷此,湍险方自兹。叠嶂易成响,重以夜猿悲。客心幸自弭,中道遇心期。亲好自斯绝,孤游从此辞。【如题转落,不见痕迹。长题以此种为式。】

  赠徐征君

  促生悲永路,早交伤晚别。自我隔容徽,于焉徂岁月。情非山河阻,意似江湖悦。东皋有儒素,杳与荣名绝。曾是违赏心,曷用箴余缺。眇焉追平生,尘书废不阅。信此伊能已,怀抱岂暂辍。何以表相思,贞松擅严节。

  别萧谘议【衍。】

  离烛有穷辉,别念无终绪。歧言未及申,离目已先举。揆景巫衡阿,临风长楸浦。浮云难嗣音,裴徊怅谁与。傥有关外驿,聊访狎鸥渚。

  出郡传舍哭范仆射【三首之一。】

  与子别几辰,经涂不盈旬。弗睹朱颜改,徒想平生人。宁知安歌日,非君撤瑟晨。已矣余何叹,辍舂哀国均。【“宁知安歌日”一联,令人几不敢言欢娱,情辞极为深宛。】

  邱迟

  侍宴乐游苑送张徐州应诏

  诘旦阊阖开,驰道闻凤吹。轻荑承玉辇,细草藉龙骑。风迟山尚响,雨息云犹积。【音渎。】巢空初鸟飞,荇乱新鱼戏。实惟北门重,匪亲孰为寄。参差别念举,肃穆恩波被。小臣信多幸,投生岂酬义。【《史记·齐威王》曰:“吾使有黔夫者,使守徐州,则燕人祭北门,故知与徐州关合,非寻常征引。”《西征赋》曰:“岂生命之易投?”】

  旦发渔浦潭

  渔潭雾未开,赤亭风已飏。棹歌发中流,鸣鞞响沓嶂。村童忽相聚,野老时一望。诡怪石异象,崭绝峰殊状。森森荒树齐,析析寒沙涨。藤垂岛易陟,崖倾屿难傍。信是永幽栖,岂徒暂清旷。坐啸昔有委,卧治今可尚。

  柳恽

  江南曲

  汀洲采白苹,日暖江南春。洞庭有归客,潇湘逢故人。故人何不返,春花复应晚。不道新知乐,只言行路远。

  赠吴均

  寒云晦沧洲,奔潮溢南浦。相思白露亭,永望秋风渚。心知别路长,谁谓若燕楚。关候日辽绝,如何附行旅。愿作野飞鸟,飘然自轻举。

  捣衣诗

  孤衾引思绪,独枕怆忧端。深庭秋草绿,高门白露寒。思君起清夜,促柱奏幽兰。不怨飞蓬苦,徒伤蕙草残。

  行役滞风波,游人淹不归。亭皋木叶下,陇首秋云飞。寒园夕鸟集,思牖草虫悲。嗟矣当春服,安见御冬衣。

  鹤鸣劳永叹,采菉伤时暮。念君方远游,望妾理纨素。秋风吹绿潭,明月悬高树。佳人饰净容,招携从所务。

  步櫩杳不极,离堂肃已扃。轩高夕杵散,气爽夜砧鸣。瑶华随步响,幽兰逐袂生。踟蹰理金翠,容与纳宵清。【捣衣只于末首正点,以上写情。】

  庾肩吾

  奉和春夜应令

  春牖对芳洲,珠帘新上钩。烧香知夜漏,刻烛验更筹。天禽下北阁,织女入西楼。月皎疑非夜,林疏似更秋。水光悬荡壁,山翠下添流。讵假西园燕,无劳飞盖游。【写景娟秀。一结是应令体。】

  乱后行经吴御亭

  御亭一回望,风尘千里昏。青袍异春草,白马即吴门。獯戎鲠伊洛,杂种乱轘辕。辇道同关塞,王城似太原。休明鼎尚重,秉礼国犹存。殷牖爻虽赜,尧城吏转尊。泣血悲东走,横戈念北奔。方凭七庙略,誓雪五陵冤。人事今如此,天道共谁论。【御亭,吴大帝所建,在晋陵,别本作邮亭误。】

  咏长信宫中草

  委翠似知节,含芳如有情。全由履迹少,并欲上阶生。【“并欲”字,唐人多此种字法。】

  经陈思王墓

  公子独忧生,邱垄擅余名。采樵枯树尽,犁田荒隧平。宁追宴平乐,讵想谒承明。旦余来锡命,兼言事结成。飘飖河朔远,飐飙飓风鸣。雁与云俱阵,涉将蓬共惊。枯桑落古社,寒鸟归孤城。陇水哀笳曲,渔阳惨鼓声。离家来远客,安得不伤情?【庾肩吾,张正见,其诗声色臭味俱备。诗之佳者,在声色臭味之俱备,如庾如张是也。诗之高者,在声色臭味之俱无,如陶渊明是也。梁、陈、隋间人,专工琢句,如庾肩吾《泛舟后湖》、“残虹收度雨,缺岸上新流”,张正见《赋得白云临浦》、“疏叶临嵇竹,轻鳞入郑船”,《江总赠人》、“露洗山扉月,霜开石路烟”,隋炀帝“鸟击初移树、鱼寒欲隐苔”,皆成名俊,然比之“池塘生春草,天际识归舟”等句,痕迹宛然矣,于此足觇风气。】

  吴均

  答柳恽

  清晨发陇西,日暮飞狐谷。秋月照层岭,寒风扫高木。雾露夜侵衣,关山晓催轴。君去欲何之,参差间原陆。一见终无缘,怀悲空满目。

  酬别江主簿屯骑

  有客告将离,赠言重兰蕙。泛舟当泛济,结交当结桂。济水有清源,桂树多芳根。毛公与朱亥,俱在信陵门。赵瑟凤凰柱,吴醥金罍樽。我有北山志,留连为报恩。夫君皆逸翮,搏景复陵骞。白云间海树,秋日暗平原。寒虫鸣趯趯,落叶飞翻翻。何用赠分首,自有北堂萱。【“结交当结桂”,桂即当君子看。】

  主人池前鹤

  本自乘轩者,为君阶下禽。摧藏多好貌,清唳有奇音。稻粱惠既重,华池遇亦深。怀恩未忍去,非无江海心。

  酬周参军

  日暮忧人起,倚户怅无欢。水传洞庭远,风送雁门寒。江南霜雪重,相如衣服单。沈云隐乔树,细雨灭层峦。且当对樽酒,朱弦永夜弹。

  春咏

  春从何处来,拂水复惊梅。云障青锁闼,风吹承露台。美人隔千里,罗帏闭不开。无由得共语,空对相思杯。【一起飘逸。】

  山中杂诗

  山际见来烟,竹中窥落日。鸟向檐上飞,云从窗里出。【四句写景,自成一格。】

  何逊

  仲言诗,虽乏风骨,而情词宛转,浅语俱深,宜为沈、范心折。阴、何并称,然何自远胜。

  日夕望江山赠鱼司马

  湓城带湓水,湓水萦如带。日夕望高城,耿耿青云外。城中多宴赏,丝竹常繁会。管声已流悦,弦声复凄切。歌黛惨如愁,舞腰凝欲绝。仲秋黄叶下,长风正骚屑。早雁出云归,故燕辞檐别。昼悲在异县,夜梦还洛汭。洛汭河悠悠,起望西南楼。的的帆向浦,团团月映洲。谁能一羽化,轻举逐飞浮。【音响得之,《西洲》。】

  道中赠桓司马季

  晨缆虽同解,晚洲阻共入。犹如征鸟飞,差池不可及。本愿申羁旅,何言异翔集。君渡北江时,讵令南浦泣。

  入西塞示南府同僚

  露清晚风冷,天曙江光爽。薄云岩际出,初月波中上。黯黯连障阴,骚骚急沫响。回查急碍浪,群飞争戏广。伊余本羁客,重睽复心赏。望乡虽一路,怀归成二想。在昔爱名山,自知欢独往。情游乃落魄,得性随怡养。年事以蹉跎,生平任浩荡。方还让夷路,谁知羡鱼网。

  赠诸游旧

  弱操不能植,薄技竟无依。浅智终已矣,令名安可希。扰扰从役倦,屑屑身事微。少壮轻年月,迟幕惜光辉。一涂今未是,万绪昨如非。新知虽已乐,旧爱尽睽违。望乡空引领,极目泪沾衣。旅客长憔悴,春物自芳菲。岸花临水发,江燕绕樯飞。无由下征帆,独与暮潮归。

  送韦司马别

  送别临曲渚,征人慕前侣。离言虽欲繁,离思终无绪。悯悯分手毕,萧萧行帆举。举帆越中流,望别上高楼。予起南枝怨,子结北风愁。逦逦山蔽日,汹汹浪隐舟。隐舟邈已远,裴徊落日晚。归衢并驾奔,别馆空筵卷。想子敛眉去,知予衔泪返。衔泪心依依,薄暮行人稀。暧暧入塘港,蓬门已掩扉。帘中看月影,竹里见萤飞。萤飞飞不息,独愁空转侧。北窗倒长簟,南邻夜闻织。弃置勿复陈,重陈长叹息。【每于顿挫处,蝉联而下,一往情深。】

  别沈助教

  可怜玉匣剑,复此飞凫舄。未觉爱生憎,忽见双成只。一朝别笑语,万事成畴昔。道遒若波澜,人生异金石。愿君深自爱,共念悲无益。

  与苏九德别

  宿昔梦颜色,咫尺思言宴。何况杳来期,各在天一面。踟蹰暂举酒,倏忽不相见。春草似青袍,秋月如团扇。三五出重云,当知我忆君。萋萋若被径,怀抱不相闻。【末四句分顶秋月、春草,随手成法,无所不可。】

  宿南洲浦

  幽栖多暇豫,从役知辛苦。解缆及朝风,落帆依瞑浦。违乡已信次,江月初三五。沈沈夜看流,渊渊朝听鼓。霜洲渡旅雁,朔飙吹宿莽。夜泪坐淫淫,是夕偏怀土。

  和萧谘议岑离闺怨

  晓河没高栋,斜月半空庭。窗中度落叶,帘外隔飞萤。含悲下翠帐,掩泣闭金屏。昔期今未返,春草寒复青。思君无转易,何异北辰星。

  临行与故游夜别

  历稔共追随,一旦辞群匹。复如东注水,未有西归日,夜雨滴空阶,晓灯暗离室。相悲各罢酒,何时同促膝。

  与胡兴安夜别

  居人行转轼,客子暂维舟。念此一筵笑,分为两地愁。露湿寒塘草,月映清淮流。方抱新离恨,独守故园秋。

  慈姥矶

  暮烟起遥岸,斜日照安流。一同心赏夕,暂解去乡忧。野岸平沙合,连山远雾浮。客悲不自已,江上望归舟。【己不能归,而望他舟之归,情事黯然。】

  相送

  客心已百念,孤游重千里。江暗雨欲来,浪白风初起。

  王籍

  入若耶溪

  艅艎何泛泛,空水共悠悠。阴霞生远岫,阳景逐回流。蝉噪林逾静,鸟鸣山更幽。此地动归念,长年悲倦游。【隽语当时传诵,以为文外独绝。】

  刘峻

  自江州还入石头诗

  鼓枻浮大川,延睇洛城观。洛城何郁郁,杳与云霄半。前望苍龙门,斜瞻白鹤馆。槐垂御沟道,柳缀金堤岸。迅马晨风趋,轻与流水散。高歌梁尘下,絙瑟荆禽乱。我思江海游,曾无朝市玩。忽寄灵台宿,空轸及关叹。仲子入南楚,伯鸾出东汉。何敢栖树枝,取毙王孙弹。

  刘孝绰

  古意

  燕赵多佳丽,白日照红妆。荡子十年别,罗衣双带长。春楼怨难守,玉阶空自伤。复此归飞燕,衔泥绕曲房。差池入绮幕,上下傍雕梁。故居犹可念,故人安可忘。相思昏望绝,宿昔梦容光。魂交忽在御,转侧定他乡。徒然顾枕席,谁与同衣裳。空使兰膏夜,炯炯对繁霜。

  陶弘景

  诏问山中何所有赋诗以答

  答齐高帝诏。

  山中何所有,岭上多白云。只可自怡悦,不堪持寄君。即独寐寤宿,永矢勿告意。

  寒夜怨

  夜云生,夜鸿惊,凄切嘹唳伤夜情。空山霜满高烟平,铅华沈照帐孤明。寒月微,寒风紧,愁心绝,愁泪尽。情人不胜怨,思来谁能忍?【音节近词。“空山”七字却高。】

  曹景宗

  光华殿侍宴赋竞病韵

  景宗破魏师凯旋,帝于光华殿宴饮联句,景宗启求赋诗。时韵已尽,惟余“竞、病”二字,景宗操笔而成,帝深叹赏。朝贤惊嗟累日。

  去时儿女悲,归来笳鼓竞。借问行路人,何如霍去病?

  徐悱

  古意酬到长史溉登琅琊城

  在润州江宁县西北十八里。

  甘泉惊烽候,上谷抵楼兰。此江称豁险,兹山复郁盘。表里穷形胜,襟带尽岩峦。修篁壮下属,危楼峻上干。登陴越遐望,回首见长安。金沟朝灞浐,甬道入鸳鸾。鲜车骛华毂,汗马跃银鞍。少年负壮气,耿介立冲冠。怀纪燕山石,思开函谷丸。岂如灞上戏,羞取路傍观。寄言封侯者,数奇良可叹。【在尔时已为高响。】

  虞羲

  咏霍将军北伐

  拥旄为汉将,汗马出长城。长城地势险,万里与云平。凉秋八九月,胡骑入幽并。飞狐白日晚,瀚海愁云生。羽书时断绝,刁斗昼夜惊。乘墉挥宝剑,蔽日引高旍。云屯七萃士,鱼丽六郡兵。胡笳关下思,羌笛陇头鸣。骨都先自詟,日逐次亡精。玉门罢斥堠,甲第始修营。位登万庾积,功立百行成。天长地自久,人道有亏盈。未穷激楚乐,已见高台倾。当令麟阁上,千载有雄名。【《汉书》:“匈奴有骨都侯,有日逐王。《雍门周说》孟尝君曰:“千秋万岁后,高台既已倾,曲池又已平。”不为纤靡之习所囿,居然杰作。】

  卫敬瑜妻王氏

  孤燕诗

  《南史》:“贞女所居户有巢燕,常双飞来去。后忽孤飞,贞女感其偏栖,乃以缕系脚为志。后岁,此燕更来,犹带前缕,女复为诗曰。”

  昔年无偶去,今春犹独归。故人恩义重,不忍复双飞。【贞洁语出以和婉,愈能感人。】

  乐府歌辞

  企喻歌

  以下横吹曲,乃北音也。

  男儿欲作健,结伴不须多。鹞子经天飞,群雀两向波。

  前行看后行,齐著铁裲裆。前头看后头,齐著铁■〈釒互〉鉾。

  男儿可怜虫,出门怀死忧。尸丧狭谷中,白骨无人收。【有同袍同泽之风。】

  幽州马客吟歌

  辞快马常苦瘦,剿儿常苦贫。黄禾起羸马,有钱始作人。

  琅琊王歌辞

  新买五尺刀,悬著中梁柱。一日三摩挲,剧于十五女。

  客行依主人,愿得主人强。猛虎依深山,愿得松柏长。【正意在前,喻意在后,古人往往有之。】

  懀马高缠鬃,遥知身是龙。谁能骑此马,惟有广平公。【按《晋书》,广平公、姚弼兴之子、泓之弟也。】

  钜鹿公主歌辞

  官家出游雷大鼓,细乘犊车开后户。车前女子年十五,手弹琵琶玉节舞。钜鹿公主殷照女,皇帝陛下万几主。

  陇头歌辞

  朝发欣城,暮宿陇头。寒不能语,舌卷入喉。【奇语。】

  陇头流水,鸣声幽咽。遥望秦川,心肠断绝。【此章同汉辞。】

  折杨柳歌辞

  上马不捉鞭,反折杨柳枝。蹀坐吹长笛,愁杀行客儿。

  遥看孟津河,杨柳郁婆娑。我是■〈扌鹵〉家儿,不解汉儿歌。

  健儿须快马,快马须健儿。■〈必〉跋黄尘下,然后别雄雌。

  木兰诗

  唧唧复唧唧,木兰当户织。不闻机杼声,惟闻女叹息。问女何所思,问女何所忆。女亦无所思,女亦无所忆。昨夜见军帖,可汗大点兵。军书十二卷,卷卷有爷名。阿爷无大儿,木兰无长兄。愿为市鞍马,从此替爷征。东市买骏马,西市买鞍鞯。南市买辔头,北市买长鞭。朝辞爷娘去,暮宿黄河边。不闻爷娘唤女声,但闻黄河流水鸣溅溅。旦辞黄河去,暮至黑水头。不闻爷娘唤女声,但闻燕山胡骑声啾啾。万里赴戎机,关山度若飞。朔气传金柝,寒光照铁衣。将军百战死,壮士十年归。归来见天子,天子坐明堂。策勋十二转,赏赐百千强。可汗问所欲,木兰不用尚书郎。“愿驰千里足,送儿还故乡。”爷娘闻女来,出郭相扶将。阿姊闻妹来,【一作阿妹闻姊来。】当户理红妆。小弟闻姊来,磨刀霍霍向猪羊。开我东阁门,坐我西间床。脱我战时袍,著我旧时裳。当窗理云鬓,对镜帖花黄。出门看伙伴,伙伴皆惊惶。同行十二年,不知木兰是女郎。雄兔脚扑朔,雌兔眼迷离。两兔傍地走,安能辨我是雄雌?【事奇诗奇,卑靡时得此,如凤凰鸣,庆云见,为之快绝。唐人韦元甫有《拟木兰诗》一篇,后人并以此篇为韦作,非也。韦系中唐人,杜少陵草堂一篇,后半全用此诗章法矣,断以梁人作为允。】

  捉搦歌

  华阴山头百丈井,下有流水澈骨冷。可怜女子能照影,不见其余见斜领。

  黄桑柘屐蒲子履,中央有丝两头系。小时怜母大怜婿,何不早嫁论家计。

●古诗源卷十四

○陈诗

  阴铿

  渡青草湖

  亦作庾信诗。

  洞庭春溜满,平湖锦帆张。沅水桃花色,湘流杜若香。穴去茅山近,江连巫峡长。带天澄迥碧,映日动浮光。行舟逗远树,度鸟息危樯。滔滔不可测,一苇讵能航。

  广陵岸送北使

  行人引去节,送客舣归舻。即是观涛处,仍为郊赠衢。汀洲浪已息,邗江路不纡。亭嘶背枥马,樯转向风乌。海上春云杂,天际晚帆孤。离舟对零雨,别渚望飞凫。定知能下泪,非但一杨朱。

  江津送刘光禄不及

  依然临送渚,长望倚河津。鼓声随听绝,帆势与云邻。泊处空余鸟,离亭已散人。林寒正下叶,钓晚欲收纶。如何相背远,江汉与城闉。

  和傅郎岁暮还湘州

  苍茫岁欲晚,辛苦客方行。大江静犹浪,扁舟独且征。棠枯绛叶尽,芦冻白花轻。戍人寒不望,沙禽迥未惊。湘波各深浅,空轸念归情。

  开善寺

  鹫岭春光遍,王城野望通。登临情不极,萧散趣无穷。莺随入户树,花逐下山风。栋里归云白,窗外落晖红。古石何年卧,枯树几春空。淹留昔未及,幽桂在芳丛。【诗至于陈,专工琢句,古诗一线绝矣。少陵绝句云:“颇学阴、何苦用心。”又《赠太白》云:“李侯有佳句,往往似阴铿。”此特赏其句,非取其格也。】

  徐陵

  出自蓟北门行

  蓟北聊长望,黄昏心独愁。燕山对古刹,代郡隐城楼。屡战桥恒断,长冰堑不流。天云如地阵,汉月带胡秋。渍土泥函谷,挼绳缚凉州。平生燕颔相,会自得封侯。【巧句。】

  别毛永嘉

  愿子厉风规,归来振羽仪。嗟余今老病,此别空长离。白马君来哭,黄泉我讵知。徒劳脱宝剑,空挂陇头枝。【似达愈悲,《孝穆集》中,不易多得。】

  关山月

  关山三五夜,客子忆秦川。思妇高楼上,当窗应未眠。星旗映疏勒,云阵上祁连。战气今如此,从军复几年。

  周弘让

  留赠山中隐士

  行行访名岳,处处必留连。遂至一岩里,灌木上参天。忽见茅茨屋,暧暧有人烟。一士开门出,一士呼我前。相看不道姓,焉知隐与仙。【清真似陶诗一派,陈隋时得之大难。】

  周弘正

  还草堂寻处士弟

  四时易荏苒,百龄倏将半。故老多零落,山僧尽凋散。宿树倒为查,旧水侵成岸。幽寻属令弟,依然归旧馆。感物自多伤,况乃春莺乱。

  江总

  遇长安使寄裴尚书

  传闻合浦叶,远向洛阳飞。北风尚嘶马,南冠独不归。去云目徒送,离琴手自挥。秋蓬失处所,春草屡芳菲。太息关山月,风尘客子衣。

  入摄山栖霞寺

  净心抱冰雪,暮齿逼桑榆。太息波川迅,悲哉人世拘。岁华皆采获,冬晚共严枯。濯流济八水,开襟入四衢。兹山灵妙合,当与天地俱。石濑乍深浅,崖烟递有无。缺碑横古隧,盘木卧荒涂。行行备履历,步步怜威纡。高僧迹共远,胜地心相符。樵隐各有得,丹青独不渝。【寺僧犹有郎诠二师、居士明绍、治中萧塑像图。】遗风伫芳桂,比德喻生刍。寄言长往客,凄然伤鄙夫。【薄有清气,急当收入。总持更有游摄山诗,中云:“荷衣步林泉,麦气凉昏晓”,亦佳句也。】

  南还寻草市宅

  入隋后南还之作。

  红颜辞巩洛,白首入轘辕。乘春行故里,徐步采芳荪。径毁悲求仲,林残忆巨源。见桐犹识井,看柳尚知门。花落空难遍,莺啼静易喧。无人访语默,何处叙寒温。百年独如此,伤心岂复论。

  并州羊肠坂

  三春别帝乡,五月度羊肠。本畏车轮折,翻嗟马骨伤。惊风起朔雁,落照尽胡桑。关山定何许,徒御惨悲凉。

  于长安归还扬州九月九日行薇山亭赋韵

  心逐南云逝,形随北雁来。故乡篱下菊,今日几花开?

  哭鲁广达

  为韩擒虎所执遇害者。

  黄泉虽抱恨,白日自留名。悲君感义死,不作负恩生。【不嫌自污,真情可悯。】

  闺怨篇

  寂寂青楼大道边,纷纷白雪绮窗前。池上鸳鸯不独自,帐中苏合还空然。屏风有意障明月,灯火无情照独眠。辽西水冻春应少,蓟北鸿来路几千。愿君关山及早度,照妾桃李片时妍。【竟似唐律,稍降则为填词矣,学者当防其渐。】

  张正见

  秋日别庾正员

  征途愁转旗,连骑惨停镳。朔气凌疏木,江风送上潮。青雀离帆远,朱鸢别路遥。唯有当秋月,夜夜上河桥。【遇好句不十分卑弱者,亦便收入,钞诗者至此,眼界放下几许矣。】

  关山月

  岩间度月华,流彩映山斜。晕逐连城璧,轮随出塞车。唐謣遥合影,秦桂远分花。欲验盈虚驶,方知道路赊。【秦置桂林。言桂林之花,远分于月中也。】

  何胥

  被使出关

  出关登陇坂,回首望秦川。绛水通西晋,机桥指北燕。奔流下激石,古木上参天。莺啼落春后,雁度在秋前。平生屡此别,肠断自催年。【“莺啼”一联,极言风景之异。】

  韦鼎

  长安听百舌

  万里风烟异,一鸟忽相惊。那能对远客,还作故乡声。

  陈昭

  昭君词

  跨鞍今永诀,垂泪别亲宾。汉地随行尽,胡关逐望新。交河拥塞雾,陇日暗沙尘。唯有孤明月,犹能远送人。【雅音。】

○北魏诗【附】

  刘昶

  断句

  《南史》:“昶兵败奔魏,弃母、妻,惟携妾一人,骑马自随。在道慷慨为断句。”

  白云满鄣来,黄尘暗天起。关山四面绝,故乡几千里。

  常景

  司马相如《北史》:“景淹滞门下,积岁不至显官,以蜀司马相如、王褒、严君平、扬子云皆有高才而无重位,乃托意以赞之。

  长卿有艳才,直致不群性。郁若春烟举,皎如秋月映。游梁虽好仁,仕汉常称病。清贞非我事,穷达委天命。

  王褒

  王子挺秀质,逸气干青云。明珠既绝俗,白鹄信惊群。才世苟不合,遇否途自分。空枉碧鸡命,徒献金马文。【汉宣帝遣王褒祀金马碧鸡之神,褒中道卒,故曰空枉、曰徒献云。】

  严君平

  严君性沈静,立志明霜雪。味道综微言,端蓍演妙说。才屈罗仲口,位结李强舌。素尚迈金贞,清标陵玉彻。

  扬雄

  蜀江导清流,扬子挹余休。含光绝后彦,覃思邈前修。世轻久不赏,玄谈物无求。当涂谢权宠,置酒得闲游。【不及五君咏者,颜作能写性情,此只引得故实也。以气体大方,收之。】

  温子升

  从驾幸金墉城

  兹城实佳丽,飞甍自相并。胶葛拥行风,岧峣閟流景。御沟属清洛,驰道通丹屏。湛淡水成文,参差树交影。长门久已闭,离宫一何静。细草缘玉阶,高枝荫桐井。微微夕渚暗,肃肃暮风冷。神行扬翠旂,天临肃清警。伊臣从下列,逢恩信多幸。康衢虽已泰,弱力将安骋。【略有三谢之体。】

  捣衣

  长安城中秋夜长,佳人锦石捣流黄。香杵纹砧知近远,传声递响何凄凉。七夕长河烂,中秋明月光。蠮螉塞边逢候雁,鸳鸯楼上望天狼。【直是唐人。】

  胡叟

  示陈伯达

  《北史》:“叟入沮渠牧犍,牧犍遇之不重,乃为诗示伯达云。”

  群犬吠新客,佞暗排疏宾。直途既已塞,曲路非所遵。望卫惋祝鮀,盼楚悼灵均。何用宣忧怀,托翰寄辅仁。【辅仁是康乐一种用法,其词太直,在北朝取其风格。】

  胡太后

  杨白花

  《梁书》:“杨华少有勇力,容貌雄伟,魏太后逼通之。华惧及祸,乃率其部曲降梁,太后思之,为作《杨白花歌》,使宫人连臂蹋足歌之,声甚凄惋。”

  阳春二三月,杨柳齐作花。春风一夜入闺闼,杨花飘荡落南家。含情出户脚无力,拾得杨花泪沾臆。春去秋来双燕子,愿衔杨花入窠里。【音韵缠绵,令读者忘其秽亵,后人作此题,竟赋杨花,失其旨矣,柳子厚一篇,若隐若露,剧佳。】

  杂歌谣辞

  咸阳王歌

  《北史》:“后魏咸阳王禧谋逆伏诛后,宫人为之歌。其歌流于江表,北人在南者,弦管奏之,莫不泣下。”

  可怜咸阳王,奈可作事误。金床玉几不能眠,夜踏霜与露。洛水湛湛弥岸长,行人那得渡。【深情出以婉节,自能动人。一时文人诗,浅率无味,愧宫中女子多矣。】

  李波小妹歌

  《魏书》:“广平人李波,宗族强盛,残掠不已。百姓为之语云云。刺史李安世诱波等杀之,州内肃然。”

  李波小妹字雍容,褰裙逐马如卷蓬。左射右射必叠双。妇女尚如此,男子安可逢?

○北齐诗【附】

  邢邵

  思公子

  绮罗日减带,桃李无颜色。思君君未归,归来岂相识?

  祖珽

  挽歌

  昔日驱驷马,谒帝长杨宫。旌悬白云外,骑猎红尘中。今来向漳浦,素盖转悲风。荣华与歌笑,万里尽成空。

  郑公超

  送庾羽骑抱

  旧宅青山远,归路白云深。迟暮难为别,摇落更伤心。空城落日影,迥地浮云阴。送君自有泪,不假听猿吟。【翻得新。】

  萧悫

  上之回

  发轫城西畤,回舆事北游。山寒石道冻,叶下故宫秋。朔路传清警,边风卷画旒。岁余巡省毕,拥仗返皇州。【声律俱谐,唐音中之佳者。】

  和崔侍中从驾经山寺

  钩陈夜警徼,河汉晓参横。游骑腾文马,前驱转翠旌。野禽喧曙色,山树动秋声。云表金轮见,岩端画栱明。塔疑从地涌,盖似积香成。泉高下溜急,松古上枝平。仪台多北思,丽藻蔚缘情。自嗤非照乘,何以继连城。

  秋思

  清波收潦日,华林鸣籁初。芙蓉露下落,杨柳月中疏。燕帏缃绮被,赵带流黄裾。相思阻音息,结梦感离居。【“芙蓉”一联,不从雕琢而得,自是佳句。】

  颜之推

  古意

  十五好诗书,二十弹冠仕。楚王赐颜色,出入章华里。作赋凌屈原,读书夸左史。数从明月宴,或侍朝云祀。登山摘紫芝,泛江采绿芷。歌舞未终曲,风尘暗天起。吴师破九龙,秦兵割千里。孤兔穴宗庙,霜露沾朝市。璧入邯郸宫,剑去襄城水。未获殉陵墓,独生良足耻。悯悯思旧都,恻恻怀君子。白发窥明镜,忧伤没余齿。【直述中怀,转见古质。】

  从周入齐夜度砥柱

  侠客重艰辛,夜出小平津。马色迷关吏,鸡鸣起戍人。露鲜华剑彩,月照宝刀新。问我将何去,北海就孙宾。【《后汉书》:“中常侍唐衡,兄唐玹,尽杀赵岐家属。岐逃难江湖间,匿名卖饼。时孙嵩察岐非常人,曰:‘我北海孙宾硕。’因藏岐复壁中。数年,诸唐后灭,岐因赦乃免。】

  冯淑妃

  感琵琶弦

  本齐主后,后为周师所获,以赐代王达,侍王弹琵琶,因弦断作诗。

  虽蒙今日宠,犹忆昔时怜。欲知心断绝,应看膝上弦。

  斛律金

  敕勒歌

  《北史》:“北齐神武,使斛律金唱敕勒,自和之。”

  敕勒川,阴山下。天似穹庐,笼盖四野。天苍苍,野茫茫,风吹草低见牛羊。【莽莽而来,自然高古,汉人遗响也。】

  杂歌谣辞

  童谣

  《北史·齐本纪》:“后魏末,文宣未受禅时,有童谣。按藁然两头,于文为‘高’,河边,水边羊,帝名也。”

  一束藁,两头然,河边羖■〈羊歷〉飞上天。

○北周诗【附】

  庾信

  陈、隋间人。但欲得名句耳。子山于琢句中,复饶清气,故能拔出于流俗中,所谓轩鹤立鸡群者耶。子山诗固是一时作手。以造句能新,使事无迹,比何水部似又过之。武陵陈胤倩谓少陵不能青出于蓝,直是亦步亦趋,则又太甚矣。名句如《步虚词》云:汉帝看桃核,齐侯问枣花。《山池》云:荷风惊浴鸟,桥影聚行鱼。《和宇文内史》云:树宿含樱鸟,花留酿蜜蜂。《军行》云:塞迥翻榆叶,关寒落雁毛。《法筵》云:佛影胡人记,经文汉语翻。《酬薛文学》云:羊肠连九阪,熊耳对双峰。《和人》云:早雷惊蛰户,流雪长河源。《园庭》云:樵隐恒同路,人禽或对巢。《清晨临泛》云:猿啸风还急,鸡鸣潮欲来。《冬狩》云:惊雉逐鹰飞,腾猿看箭转。《和人》云:络纬无机织,流萤带火寒。《咏画屏》云:石险松横植,岩悬涧竖流。爱静鱼争乐,依人鸟入怀。《梦入堂内》云:日光钗影动,窗影镜花摇。少陵所云清新者耶?

  商调曲

  君以宫唱,宽大而谟明。闻义则可行,有熊为政。访道于容成,殷汤受命,委任于阿衡。忠其敬事,有罪不逃刑。诵其箴谏,言之无隐情。有刚有新,四方可以宁。既颂既雅,天下乃升平。专精一致,金石为之开。动其两心,妻子恩情乘。苟利社稷,无有不尽褱。昊天降祐,元首惟康哉。【黄帝有熊氏,命容成作盖天。】

  礼乐既正,神人所以和。玉帛有序,志欲静干戈。各分符瑞,俱誓裂山河。今日相乐,对酒且当歌。道德以喻,听撞钟之声。神奸不若,观铸鼎之形。酆宫既朝,诸侯于是穆。岐阳或狩,淮夷自此平。若涉大川,言凭于舟楫。如和鼎实,有寄于盐梅。君臣一体,可以静氛埃。得人则治,何世无奇才。【别为一体,当存以备观览。在尔时,宗庙之乐,亦用靡靡,此如蒉桴土鼓也。】

  乌夜啼

  促柱繁弦非子夜,歌声舞态异前溪。御史府中何处宿,洛阳城头那得栖。弹琴蜀郡卓家女,织锦秦川窦氏妻。讵不自惊长泪落,到头啼乌恒夜啼。

  对酒歌

  春水望桃花,春洲藉芳杜。琴从绿珠借,酒就文君取。牵马向渭桥,日曝山头晡。山简接■〈罒離〉倒,王戎如意舞。筝鸣金谷园,笛韵平阳坞。人生一百年,欢笑惟三五。何处觅钱刀,求为洛阳贾。【起结致佳。作意嵚嵜,终归平顺,风气使然也。】

  奉和泛江

  春江下白帝,画舸向黄牛。锦缆回沙碛,兰桡避荻洲。湿花随水泛,空巢逐树流。建平船柿下,荆门战舰浮。岸社多乔木,山城足迥楼。日落江风静,龙吟回上游。

  同卢记室从军

  河图论阵气,金匮辨星文。地中鸣鼓角,天上下将军。函犀恒七属,络铁本千群。飞梯聊度绛,合弩暂凌汾。寇阵先中断,妖营即两分。连烽对岭度,嘶马隔河闻。箭飞如疾雨,城崩似壤云。英王于此战,何用武安君。

  至老子庙应诏

  虚无推驭辨,寥廓本乘蜺。三门临苦县,九井对灵溪。盛丹须竹节,量药用刀圭。石似临邛芋,芝如封禅泥。毻【音妥。】毛新鹄小,盘根古树低。野戍孤烟起,春山百鸟啼。路有三千别,途经七圣迷。唯当别关吏,直向流沙西。【《神仙传》:“老子耳有三门。”《郡国志》:苦县老子庙有九井。悠悠三千,路难涉矣,赵至语,七圣俱迷,用轩辕访道事。】

  拟咏怀

  无穷孤愤,倾吐而出,工拙都忘,不专拟阮。

  畴昔国士遇,生平知己恩。直言珠可吐,宁知炭可吞。一顾重尺璧,千金轻一言。悲伤刘孺子,凄怆史皇孙。无因同武骑,归守霸陵园。

  榆关断音信,汉使绝经过。胡笳落泪曲,羌笛断肠歌。纤腰减束素,别泪损横波。恨尽终不歇,红颜无复多。枯木期填海,青山望断河。

  摇落秋为气,凄凉多怨情。啼枯湘水竹,哭壤杞梁城。天亡遭愤战,日蹙值愁兵。直虹朝映垒,长星夜落营。楚歌饶恨曲,南风多死声。眼前一杯酒,谁论身后名?

  横流遘屯慝,上惨结重氛。哭市闻妖兽,颓山起怪云。绿林多散卒,清波有败军。智士今安用,忠臣且未闻。惜无万金产,东求沧海君。【《隋巢子》:三苗大乱,龙生于庙,犬哭于市。】

  日晚荒城上,苍茫余落晖。都护楼兰返,将军疏勒归。马有风尘色,人多关塞衣。阵云平不动,秋蓬卷欲飞。闻道楼船战,今年不解围。

  萧条亭障远,凄怆风尘多。关门临白狄,城影入黄河。秋风别苏武,寒水送荆轲。谁言气盖世,晨起账中歌。【“城影”句悲壮。】

  步兵未饮酒,中散未弹琴。索索无真气,昏昏有俗心。涸鲋常思水,惊飞每失林。风云能变色,松竹且悲吟。由来不得意,何必往长岑。【易震卦云,震索索。】

  悲歌度燕水,弭节出阳关。李陵从此去,荆卿不复还。故人形影灭,音书两俱绝。遥看塞北云,悬想关山雪。游子河梁上,应将苏武别。【如闻羽声。未路但收李陵,古人章法。】

  喜晴应诏敕自疏韵

  御辨诚膺录,维皇称有建。雷泽昔经渔,负夏时从贩。柏梁骖驷马,高陵驰六传。有序属宾连,无私表平宪。河堤崩故柳,秋水高新堰。心斋愍昏垫,乐彻怜胥怨。禅河秉高论,法轮开胜辩。王城水斗息,洛浦河图献。伏泉还习坎,归风已回巽。桐枝长旧围,蒲节抽新寸。山薮欣藏疾,幽栖得无闷。有庆兆民同,讼年天子万。【“高陵”句,用汉文本纪乘六传至高陵事,周明帝之立,亦相似也。谷洛水斗,见国语。】

  和王少保遥伤周处士

  王少保褒集,阙此题诗。

  冥漠尔游岱,凄凉余向秦。虽言异生死,同是不归人。昔余仕冠盖,值子避风尘。望气求真隐,伺关待逸民。忽闻泉石友,芝桂不防身。怅然张仲蔚,悲哉郑子真。三山犹有鹤,五柳更应春。遂令从渭水,投吊往江滨。

  奉和永丰殿下言志

  立德齐今古,资仁一毁誉。无机抱瓮汲,有道带经锄。处下唯名惠,能贤本姓蘧。未论惊宠辱,安知系惨舒。

  咏画屏风诗

  昨夜鸟声春,惊鸣动四邻。今朝梅树下,定有咏花人。流星浮酒泛,粟瑱绕杯唇。何劳一片雨,唤作阳台神。

  三危上凤翼,九坂度龙鳞。路高山里树,云低马上人。悬崖泉溜响,深谷鸟声春。住马来相问,应知有姓秦。

  梅花

  常年腊月半,已觉梅花阑。不信今春晚,俱来雪里看。树动悬冰落,枝高出手寒。早知觅不见,真悔著衣单。【古人咏梅,清高越俗,后人愈刻画,愈觉粘滞。古人取神,后人取形也。】

  寄徐陵

  故人倘思我,及此平生时。莫待山阳路,空闻吹笛悲。

  和侃法师

  客游经岁月,羁旅故情多。近学衡阳雁,秋分俱渡河。

  重别周尚书

  阳关万里道,不见一人归。唯有河边雁,秋来南向飞。【从子山时势地位想之,愈见可悲。】

  王褒

  关山篇

  从军山陇坂,驱马度关山。关山恒掩蔼,高峰白云外。遥望秦川水,千里长如带。好勇自秦中,意气多豪雄。少年便习战,十四已从戎。辽水深难渡,榆关断未通。

  渡河北

  秋风吹木叶,还似洞庭波。常山临代郡,亭障绕黄河。心悲异方乐,肠断陇头歌。薄暮临征马,失道北山阿。【起调甚高。】

○隋诗

  炀帝

  炀帝诗,能作雅正语,比陈后主胜之。

  饮马长城窟行示从征群臣

  肃肃秋风起,悠悠行万里。万里何所行,横溪筑长城。岂台小子智,先圣之所营。树兹万世策,安此亿兆生。讵敢惮焦思,高枕于上京。北河秉武节,千里卷戎旌。山川互出没,原野穷超忽。摐金止行阵,鸣鼓兴士卒。千乘万骑动,饮马长城窟。秋昏塞外云,雾暗关山月。缘岩驿马上,乘空烽火发。借问长城候,单于入朝谒。浊气静天山,晨光照高阙。释兵仍振旅,要荒事方举。饮至告言旋,功归清庙前。

  白马篇

  白马金贝装,横行辽水傍。问是谁家子,宿卫羽林郎。文犀六属铠,宝剑七星光。山虚弓响彻,地迥角声长。宛河推勇气,陇蜀擅威强。轮台受降虏,高阙翦名王。射熊入飞观,校猎下长杨。英名欺卫霍,智策篾平良。凫夷时失礼,卉服犯边疆。征兵集蓟北,轻骑出渔阳。进军随日晕,挑战逐星芒。阵移龙势动,营开虎翼张。冲冠入死地,攘臂越金汤。尘飞战鼓急,风交征旆扬。转斗平华地,追奔扫鬼方。本持身许国,况复武功彰。会令千载后,流誉满旂常。【二章气体自阔大,而骨力未能振起。故知风格初成,菁华未备。】

  杨素

  武人亦复奸雄,而诗格清远,转似出世高人,真不可解。

  山斋独坐赠薛内史二首

  居山四望阻,风云竟朝夕。深溪横古树,空岩卧幽石。日出远岫明,鸟散空林寂。兰庭动幽气,竹室生虚白。落花入户飞,细草当阶积。桂酒徒盈樽,故人不在席。日落山之幽,临风望羽客。

  岩壑澄清景,景清岩壑深。白云飞暮色,绿水激清音。涧户散余彩,山窗凝宿阴。花草共萦映,树石相陵临。独坐对陈榻,无客有鸣琴。寂寂幽山里,谁知无闷心。

  赠薛播州

  《北史》:“素以诗遗薛道衡,薛曰:‘人之将死,其言也善,若是乎?’未几而卒。”

  在昔天地闭,品物属屯蒙。和平替王道,哀怨结人风。麟伤世已季,龙战道将穷。乱海飞群水,贯日引长虹。干戈异革命,揖让非至公。【落句是奸雄语,曹孟德时或有此。】

  两河定宝鼎,八水域神州。函关绝无路,京洛化为丘。漳滏尔连沼,泾渭余别流。生郊满戎马,涉路起风牛。班荆疑莫遇,赠缟竟无由。

  道昏虽已朗,政故犹未新。刳舟洹水际,结网大川滨。出游迎钓叟,入梦访幽人。植林虽各树,开荣岂异春?相逢一时泰,共幸百年身。【“植林”一联,言己与薛各奋事功,遣词甚雅。】

  荏苒积岁时,契阔同游处。阊阖既趋朝,承明还宴语。上林陪羽猎,甘泉侍清曙。迎风含暑气,飞雨凄寒序。相顾惜光阴,留情共延伫。

  滔滔彼江汉,实为南国纪。作牧求明德,若人应斯美。高卧未褰帷,飞声已千里。还望白云天,日暮秋风起。岘山君傥游,泪落应无已。

  汉阴政已成,岭表人犹蠹。弹冠比方新,还珠总如故。楚人结去思,越俗歌来暮。阳乌尚归飞,别寉还回顾。君见南枝巢,应思北风路。

  养病愿归闲,居荣在知足。栖迟茂陵下,优游沧海曲。故人情可见,今人遵路瞩。荒居接野穷,心物俱非俗。桂树芳丛生,山幽竟何欲!

  秋水鱼游日,春树鸟鸣时。濠梁暮共往,幽谷有相思。千里悲无驾,一见杳难期。山河散琼蕊,庭树下丹滋。物华不相待,迟暮有余悲。

  衔悲向南浦,寒色黯沈沈。风起洞庭险,烟生云梦深。独飞时慕侣,寡和乍孤音。木落悲时暮,时暮感离心。离心多苦调,讵假雍门琴。【从天下之乱,说到定鼎,次说求材,次说立朝,次说薛之出守,颂春政成,次说己之归闲,末致相思之意,一题几章,须具此章法。未尝不排,而不觉排偶之迹,骨高也。】

  卢思道

  游梁城

  扬镳历汴浦,回扈入梁墟。汉藩文雅地,清尘暧有余。宾游多任侠,台苑盛簪裾。叹息徐公剑,悲凉邹子书。亭皋落照尽,原野沍寒初。鸟散空城夕,烟销古树疏。东越严子陵,西蜀马相如。修名窃所慕,长谣独课虚。

  薛道衡

  昔昔盐

  昔昔,犹夜夜也。盐,引之转而讹也。

  垂柳覆金堤,蘼芜叶复齐。水溢芙蓉沼,花飞桃李蹊。采桑秦氏女,织锦窦家妻。关山别荡子,风月守空闺。恒敛千金笑,长垂双玉啼。盘龙随镜隐,彩凤逐帷低。飞魂同夜鹊,倦寝忆晨鸡。暗牖悬蛛网,空梁落燕泥。前年过代北,今岁往辽西。一去无消息,那能惜马蹄。【“暗牖悬蛛网”二句,从张景阳“青苔依空墙,蜘蛛网四屋”化出。而其发原,则在“伊威在室,蛸在户”,但后人愈巧耳。】

  敬酬杨仆射山斋独坐

  相望山河近,相思朝夕劳。龙门竹箭急,华岳莲花高。岳高障重叠,鸟道风烟接。遥原树若荠,远水舟如叶。叶舟旦旦浮,惊波夜夜流。露寒洲渚白,月冷函关秋。秋夜清风发,弹琴即鉴月。虽非庄舄歌,吟咏常思越。【杨素封越国公。“遥原”二语,孟襄阳祖此句法。】

  人日思归

  入春才七日,离家已二年。人归落雁后,思发在花前。

  虞世基

  出塞

  上将三略远,元戎九命尊。愐怀古人节,思酬明主恩。山西多勇气,塞北有游魂。扬桴度陇坂,勒骑上平原。誓将绝沙漠,悠然去玉门。轻赍不遑舍,惊策骛戎轩。懔懔边风急,萧萧征马烦。雪暗天山道,冰塞交河源。雾烽黯无色,霜旗冻不翻。耿介倚长剑,日落风尘昏。

  入关

  陇云低不散,黄河咽复流。关山多道里,相接几重愁。

  孙万寿

  和周记室游旧京

  大夫愍周庙,王子泣殷墟。自然心断绝,何关系惨舒。仆本漳滨士,旧国亦沦胥。紫陌风尘起,青坛冠盖疏。台留子建赋,宫落仲将书。谯周自题柱,商容谁表闾。闻君怀古曲,同病亦涟洳。方知周处叹,前后信非虚。【三四语翻得高,韦诞字仲将,为魏书凌云台者,周处将战死,叹曰:“军无后继必败,不徒身亡,为国取耻。”】

  早发扬州还望乡邑

  乡关不再见,怅望穷此晨。山烟蔽钟阜,水雾隐江津。洲渚敛寒色,杜若变芳春。无复归飞羽,空悲沙塞尘。

  东归在路率尔成咏

  学宦两无成,归心自不平。故乡尚千里,山秋猿夜鸣。人愁惨云色,客意惯风声。羁恨虽多绪,俱是一伤情。

  王胄

  别周记室

  五里徘徊寉,三声断绝猿。何言俱失路,相对泣离樽。别路凄无已,当歌寂不喧。贫交欲有赠,掩涕竟无言。

  尹式

  别宋常侍

  游人杜陵北,送客汉川东。无论去与住,俱是一飘蓬。秋鬓含霜白,衰颜倚酒红。别有相思处,啼乌杂夜风。

  孔德绍

  送蔡君知入蜀

  金陵已去国,铜梁忽背飞。失路远相送,他乡何日归。

  夜宿荒村

  绵绵夕漏深,客恨转伤心。抚弦无人听,对酒时独斟。故乡万里绝,穷愁百虑侵。秋草思边马,绕枝惊夜禽。风度谷余响,月斜山半阴。劳歌欲叙意,终是白头吟。

  孔绍安

  落叶

  早秋惊落叶,飘零似客心。翻飞未肯下,犹言惜故林。【颇能寄托。】

  别徐永元秀才

  金汤既失险,玉石乃同焚。坠叶还相覆,落羽更为群。岂谓三秋节,重伤千里分。促离弦易转,幽咽水难闻。欲识相思处,山川间白云。【“坠叶”一联,比乱离之后,两人结契,非寻常写景,下转到惜别。】

  陈子良

  送别

  落叶聚还散,征禽去不归。以我穷途泣,沾君出塞衣。【不堪。亦见《何逊集》,略有异同。】

  七夕看新妇隔巷停车

  隔巷遥停幰,非复为来迟。只言更尚浅,未是渡河时。写来合并无迹。

  王申礼

  赋得岩穴无结构

  岩间无结构,谷处极幽寻。叶落秋巢迥,云生石路深。早梅香野径,清涧响丘琴。独有栖迟客,留连芳杜心。

  吕让

  和入京

  俘囚经万里,憔悴度三春。发改河阳鬓,衣余京洛尘。钟仪悲去楚,随会泣留秦。既谢平吴利,终成失路人。

  明余庆

  从军行

  三边烽乱惊,十万且横行。风卷常山阵,笳喧细柳营。剑花寒不落,弓月晓逾明。会取淮南地,持作朔方城。【“剑花”一联,唐人极摹此种句法。】

  大义公主

  公主,后周宇文氏女,嫁为突厥沙钵略妻,初名千金公主。隋灭周,自伤宗祀绝灭,每怀复隋之志,日夜言于沙钵略,悉众为寇,后沙钵略内附,赐姓杨氏,改封大义公主。隋平陈后,以陈叔宝屏风赐主,主心恒不平,因书屏风为诗。

  书屏风诗

  盛衰等朝暮,世道若浮萍。荣华实难守,池台终自平。富贵今何在,空事写丹青。杯酒恒无乐,弦歌讵有声。余本皇家子,飘流入虏庭。一朝睹成败,怀抱忽纵横。古来共如此,非我独申名。唯有明君曲,偏伤远嫁情。【英气勃勃。事虽不成,精卫之志,不可泯灭。】

  无名氏

  送别诗

  杨柳青青著地垂,杨花漫漫搅天飞。柳条折尽花飞尽,借问行人归不归。【竟似盛唐人手笔。《东虚记》云:“此诗作于大业末年,指炀帝巡游无度,民穷财尽,望其返国。五子作歌之意也。”】

  鸡鸣歌

  东方欲明星烂烂,汝南晨鸡登坛唤。曲终漏尽严具陈,月没星稀天下旦。千门万户递鱼钥,宫中城上飞乌鹊。
!![[国风-周南]]

!![[国风-召南]]

!![[国风-邶风]]

!![[国风-鄘风]]

!![[国风-卫风]]

!![[国风-王风]]

!![[国风-郑风]]

!![[国风-齐风]]

!![[国风-魏风]]

!![[国风-唐风]]

!![[国风-秦风]]

!![[国风-陈风]]

!![[国风-曹风]]

!![[国风-桧风]]

!![[国风-豳风]]
!!国风 邶风 柏舟

泛彼柏舟,亦泛其流。耿耿不寐,如有隐忧。微我无酒,以敖以游。

我心匪鉴,不可以茹。亦有兄弟,不可以据。薄言往诉,逢彼之怒。

我心匪石,不可转也。我心匪席,不可卷也。威仪棣棣,不可选也。

忧心悄悄,愠于群小。覯闵既多,受侮不少。静言思之,寤辟有摽。

日居月诸,胡迭而微?心之忧矣,如匪浣衣。静言思之,不能奋飞。

!!国风 邶风 绿衣

绿兮衣兮,绿衣黄裹。心之忧矣,曷维其已!

绿兮衣兮,绿衣黄裳。心之忧矣,曷维其亡!

绿兮丝兮,女所治兮。我思古人,俾无訧兮!

絺兮绤兮,凄其以风。我思古人,实获我心!

!!国风 邶风 燕燕

燕燕于飞,差池其羽。之子于归,远送于野。瞻望弗及,泣涕如雨。

燕燕于飞,颉之颃之。之子于归,远于将之。瞻望弗及,伫立以泣。

燕燕于飞,下上其音。之子于归,远送于南。瞻望弗及,实劳我心。

仲氏任只,其心塞渊。终温且惠,淑慎其身。先君之思,以勖寡人。

!!国风 邶风 日月

日居月诸,照临下土。乃如之人兮,逝不古处?胡能有定?宁不我顾。

日居月诸,下土是冒。乃如之人兮,逝不相好。胡能有定?宁不我报。

日居月诸,出自东方。乃如之人兮,德音无良。胡能有定?俾也可忘。

日居月诸,东方自出。父兮母兮,畜我不卒。胡能有定?报我不述。

!!国风 邶风 终风

终风且暴,顾我则笑,谑浪笑敖,中心是悼。

终风且霾,惠然肯来,莫往莫来,悠悠我思。

终风且曀,不日有曀,寤言不寐,愿言则嚏。

曀曀其阴,虺虺其雷,寤言不寐,愿言则怀。

!!国风 邶风 击鼓

击鼓其镗,踊跃用兵。土国城漕,我独南行。

从孙子仲,平陈与宋。不我以归,忧心有忡。

爰居爰处?爰丧其马?于以求之?于林之下。

死生契阔,与子成说。执子之手,与子偕老。

于嗟阔兮,不我活兮。于嗟洵兮,不我信兮。

!!国风 邶风 凯风

凯风自南,吹彼棘心。棘心夭夭,母氏劬劳。

凯风自南,吹彼棘薪。母氏圣善,我无令人。

爰有寒痊在浚之下。有子七人,母氏劳苦。

睍睆黄鸟,载好其音。有子七人,莫慰母心。

!!国风 邶风 雄雉

雄雉于飞,泄泄其羽。我之怀矣,自诒伊阻。

雄雉于飞,下上其音。展矣君子,实劳我心。

瞻彼日月,悠悠我思。道之云远,曷云能来?

百尔君子,不知德行。不忮不求,何用不臧。

!!国风 邶风 匏有苦叶

匏有苦叶,济有深涉。深则厉,浅则揭。

有瀰济盈,有鷕雉鸣。济盈不濡轨,雉鸣求其牡。

雍雍鸣雁,旭日始旦。士如归妻,迨冰未泮。

招招舟子,人涉卬否。不涉卬否,卬须我友。

!!国风 邶风 谷风

习习谷风,以阴以雨。黾勉同心,不宜有怒。采葑采菲,无以下体?德音莫违,及尔同死。

行道迟迟,中心有违。不远伊迩,薄送我畿。谁谓荼苦,其甘如荠。宴尔新婚,如兄如弟。

泾以渭浊,湜湜其沚。宴尔新婚,不我屑以。毋逝我梁,毋发我笱。我躬不阅,遑恤我后。

就其深矣,方之舟之。就其浅矣,泳之游之。何有何亡,黾勉求之。凡民有丧,匍匐救之。

不我能畜,反以我为仇。既阻我德,贾用不售。昔育恐育鞫,及尔颠覆。既生既育,比予于毒。

我有旨蓄,亦以御冬。宴尔新婚,以我御穷。有洸有溃,既诒我肄。不念昔者,伊余来塈。

!!国风 邶风 式微

式微,式微,胡不归?微君之故,胡为乎中露!

式微,式微,胡不归?微君之躬,胡为乎泥中!

!!国风 邶风 旄丘

旄丘之葛兮,何诞之节兮。叔兮伯兮,何多日也?

何其处也?必有与也!何其久也?必有以也!

狐裘蒙戎,匪车不东。叔兮伯兮,靡所与同。

琐兮尾兮,流离之子。叔兮伯兮,褎如充耳。

!!国风 邶风 简兮

简兮简兮,方将万舞。日之方中,在前上处。

硕人俣俣,公庭万舞。有力如虎,执辔如组。

左手执龠,右手秉翟。赫如渥赭,公言锡爵。

山有榛,隰有苓。云谁之思?西方美人。彼美人兮,西方之人兮。

!!国风 邶风 泉水

毖彼泉水,亦流于淇。有怀于卫,靡日不思。娈彼诸姬,聊与之谋。

出宿于泲,饮饯于祢。女子有行,远父母兄弟,问我诸姑,遂及伯姊。

出宿于干,饮饯于言。载脂载辖,还车言迈。遄臻于卫,不瑕有害?

我思肥泉,兹之永叹。思须与漕,我心悠悠。驾言出游,以写我忧。

!!国风 邶风 北门

出自北门,忧心殷殷。终窭且贫,莫知我艰。已焉哉!天实为之,谓之何哉!

王事适我,政事一埤益我。我入自外,室人交遍谪我。已焉哉!天实为之,

谓之何哉!

王事敦我,政事一埤遗我。我入自外,室人交遍摧我。已焉哉!天实为之,

谓之何哉!

!!国风 邶风 北风

北风其凉,雨雪其雱。惠而好我,携手同行。其虚其邪?既亟只且!

北风其喈,雨雪其霏。惠而好我,携手同归。其虚其邪?既亟只且!

莫赤匪狐,莫黑匪乌。惠而好我,携手同车。其虚其邪?既亟只且!

!!国风 邶风 静女

静女其姝,俟我于城隅。爱而不见,搔首踟蹰。

静女其娈,贻我彤管。彤管有炜,说怿女美。

自牧归荑,洵美且异。匪女之为美,美人之贻。

!!国风 邶风 新台

新台有泚,河水瀰瀰。燕婉之求,蘧篨不鲜。

新台有洒,河水浼浼。燕婉之求,蘧篨不殄。

鱼网之设,鸿则离之。燕婉之求,得此戚施。

!!国风 邶风 二子乘舟

二子乘舟,泛泛其景。愿言思子,中心养养!

二子乘舟,泛泛其逝。愿言思子,不瑕有害?

!!国风 豳风 七月

七月流火,九月授衣。一之日觱发,二之日栗烈。无衣无褐,何以卒岁?三之日于耜,四之日举趾。同我妇子,馌彼南亩。田畯至喜。

七月流火,九月授衣。春日载阳,有鸣仓庚。女执懿筐,遵彼微行,爰求柔桑。春日迟迟,采蘩祁祁。女心伤悲,殆及公子同归。

七月流火,八月萑苇。蚕月条桑,取彼斧斨。以伐远扬,猗彼女桑。七月鸣鵙,八月载绩。载玄载黄,我朱孔阳,为公子裳。

四月秀葽,五月鸣蜩。八月其获,十月陨萚。一之日于貉,取彼狐狸,为公子裘。二之日其同,载缵武功。言私其豵,献<豕幵>于公。

五月斯螽动股,六月莎鸡振羽。七月在野,八月在宇,九月在户,十月蟋蟀,入我床下。穹窒熏鼠,塞向墐户。嗟我妇子,曰为改岁,入此室处。

六月食郁及薁,七月亨葵及菽。八月剥枣,十月获稻。为此春酒,以介眉寿。

七月食瓜,八月断壶,九月叔苴,采荼薪樗。食我农夫。

九月筑场圃,十月纳禾稼。黍稷重穋,禾麻菽麦。嗟我农夫,我稼既同,上入执宫功。昼尔于茅,宵尔索綯,亟其乘屋,其始播百谷。

二之日凿冰冲冲,三之日纳于凌阴。四之日其蚤,献羔祭韭。九月肃霜,十月涤场。朋酒斯飨,曰杀羔羊,跻彼公堂。称彼兕觥:万寿无疆!

!!国风 豳风 鸱鸮

鸱鸮鸱鸮,既取我子,无毁我室。恩斯勤斯,鬻子之闵斯。

迨天之未阴雨,彻彼桑土,绸缪牖户。今女下民,或敢侮予?

予手拮据,予所捋荼。予所蓄租,予口卒瘏,曰予未有室家。

予羽谯谯,予尾翛翛,予室翘翘。风雨所漂摇,予维音哓哓!

!!国风 豳风 东山

我徂东山,慆々不归。我来自东,零雨其濛。我东曰归,我心西悲。制彼裳衣,勿士行枚。蜎々者蠋,烝在桑野。敦彼独宿,亦在车下。

我徂东山,慆々不归。我来自东,零雨其濛。果臝之实,亦施于宇。伊威在室,蟏蛸在户。町畽鹿场,熠耀宵行。不可畏也,伊可怀也。

我徂东山,慆々不归。我来自东,零雨其濛。鹳鸣于垤,妇叹于室。洒扫穹窒,我征聿至。有敦瓜苦,烝在栗薪。自我不见,于今三年。

我徂东山,慆々不归。我来自东,零雨其濛。仓庚于飞,熠耀其羽。之子

于归,皇驳其马。亲结其缡,九十其仪。其新孔嘉,其旧如之何?

!!国风 豳风 破斧

既破我斧,又缺我斨。周公东征,四国是皇。哀我人斯,亦孔之将。

既破我斧,又缺我锜。周公东征,四国是吪。哀我人斯,亦孔之嘉。

既破我斧,又缺我銶。周公东征,四国是遒。哀我人斯,亦孔之休。

!!国风 豳风 伐柯

伐柯如何?匪斧不克。取妻如何?匪媒不得。

伐柯伐柯,其则不远。我覯之子,笾豆有践。

!!国风 豳风 九罭

九罭之鱼,鳟鲂。我覯之子,衮衣绣裳。

鸿飞遵渚,公归无所,於女信处。鸿飞遵陆,公归不复,於女信宿。

是以有衮衣兮,无以我公归兮,无使我心悲兮。

!!国风 豳风 狼跋

狼跋其胡,载疐其尾。公孙硕肤,赤舄几几。

狼疐其尾,载跋其胡。公孙硕肤,德音不瑕?
!!国风 曹风 蜉蝣

蜉蝣之羽,衣裳楚楚。心之忧矣,于我归处。

蜉蝣之翼,采采衣服。心之忧矣,于我归息。

蜉蝣掘阅,麻衣如雪。心之忧矣,于我归说。

!!国风 曹风 候人

彼候人兮,何戈与礻殳。彼其之子,三百赤芾。

维鹈在梁,不濡其翼。彼其之子,不称其服。

维鹈在梁,不濡其咮。彼其之子,不遂其媾。

薈兮蔚兮,南山朝隮。婉兮娈兮,季女斯饥。

!!国风 曹风 鸤鸠

鸤鸠在桑,其子七兮。淑人君子,其仪一兮。其仪一兮,心如结兮。

鸤鸠在桑,其子在梅。淑人君子,其带伊丝。其带伊丝,其弁伊骐。

鸤鸠在桑,其子在棘。淑人君子,其仪不忒。其仪不忒,正是四国。

鸤鸠在桑,其子在榛。淑人君子,正是国人,正是国人。胡不万年?

!!国风 曹风 下泉

冽彼下泉,浸彼苞稂。忾我寤叹,念彼周京。

冽彼下泉,浸彼苞萧。忾我寤叹,念彼京周。

冽彼下泉,浸彼苞蓍。忾我寤叹,念彼京师。

芃芃黍苗,阴雨膏之。四国有王,郇伯劳之。
!!国风 陈风 宛丘

子之汤兮,宛丘之上兮。洵有情兮,而无望兮。

坎其击鼓,宛丘之下。无冬无夏,值其鹭羽。

坎其击缶,宛丘之道。无冬无夏,值其鹭翿。

!!国风 陈风 东门之枌

东门之枌,宛丘之栩。子仲之子,婆娑其下。

穀旦于差,南方之原。不绩其麻,市也婆娑。

穀旦于逝,越以鬷迈。视尔如荍,贻我握椒。

!!国风 陈风 衡门

衡门之下,可以栖迟。泌之洋洋,可以乐饥。

岂其食鱼,必河之鲂?岂其取妻,必齐之姜?

岂其食鱼,必河之鲤?岂其取妻,必宋之子?

!!国风 陈风 东门之池

东门之池,可以沤麻。彼美淑姬,可与晤歌。

东门之池,可以沤纻。彼美淑姬,可与晤语。

东门之池,可以沤菅。彼美淑姬,可与晤言。

!!国风 陈风 东门之杨

东门之杨,其叶牂牂。昏以为期,明星煌煌。

东门之杨,其叶肺肺。昏以为期,明星晢晢。

!!国风 陈风 墓门

墓门有棘,斧以斯之。夫也不良,国人知之。知而不已,谁昔然矣。

墓门有梅,有鸮萃止。夫也不良,歌以讯之。讯予不顾,颠倒思予。

!!国风 陈风 防有鹊巢

防有鹊巢,邛有旨苕。谁侜予美?心焉忉忉。

中唐有甓,邛有旨鹝。谁侜予美?心焉惕惕。

!!国风 陈风 月出

月出皎兮。佼人僚兮。舒窈纠兮。劳心悄兮。

月出皓兮。佼人懰兮。舒忧受兮。劳心慅兮。

月出照兮。佼人燎兮。舒夭绍兮。劳心惨兮。

!!国风 陈风 株林

胡为乎株林?从夏南!匪适株林,从夏南!

驾我乘马,说于株野。乘我乘驹,朝食于株!

!!国风 陈风 泽陂

彼泽之陂,有蒲与荷。有美一人,伤如之何?寤寐无为,涕泗滂沱。

彼泽之陂,有蒲与蕳。有美一人,硕大且卷。寤寐无为,中心悁悁。

彼泽之陂,有蒲菡萏。有美一人,硕大且俨。寤寐无为,辗转伏枕。
!!国风 桧风 羔裘

羔裘逍遥,狐裘以朝。岂不尔思?劳心忉忉。

羔裘翱翔,狐裘在堂。岂不尔思?我心忧伤。

羔裘如膏,日出有曜。岂不尔思?中心是悼。

!!国风 桧风 素冠

庶见素冠兮,棘人栾栾兮。劳心慱々兮。

庶见素衣兮,我心伤悲兮。聊与子同归兮。

庶见素韠兮,我心蕴结兮。聊与子如一兮。

!!国风 桧风 隰有苌楚

隰有苌楚,猗傩其枝,夭之沃沃,乐子之无知。

隰有苌楚,猗傩其华,夭之沃沃,乐子之无家。

隰有苌楚,猗傩其实,夭之沃沃,乐子之无室。

!!国风 桧风 匪风

匪风发兮,匪车偈兮。顾瞻周道,中心怛兮。

匪风飘兮,匪车嘌兮。顾瞻周道,中心吊兮。

谁能亨鱼?溉之釜鬵。谁将西归?怀之好音。
!!国风 齐风 鸡鸣

鸡既鸣矣,朝既盈矣。匪鸡则鸣,苍蝇之声。

东方明矣,朝既昌矣。匪东方则明,月出之光。

虫飞薨薨,甘与子同梦。会且归矣,无庶予子憎。

!!国风 齐风 还

子之还兮,遭我乎狃之间兮。并驱从两肩兮,揖我谓我儇兮。

子之茂兮,遭我乎狃之道兮。并驱从两牡兮,揖我谓我好兮。

子之昌兮,遭我乎狃之阳兮。并驱从两狼兮,揖我谓我臧兮。

!!国风 齐风 著

俟我于著乎而,充耳以素乎而,尚之以琼华乎而。

俟我于庭乎而,充耳以青乎而,尚之以琼莹乎而。

俟我于堂乎而,充耳以黄乎而,尚之以琼英乎而。

!!国风 齐风 东方之日

东方之日兮,彼姝者子,在我室兮。在我室兮,履我即兮。

东方之月兮,彼姝者子,在我闼兮。在我闼兮,履我发兮。

!!国风 齐风 东方未明

东方未明,颠倒衣裳。颠之倒之,自公召之。

东方未晞,颠倒裳衣。倒之颠之,自公令之。

折柳樊圃,狂夫瞿瞿。不能辰夜,不夙则莫。

!!国风 齐风 南山

南山崔崔,雄狐绥绥。鲁道有荡,齐子由归。既曰归止,曷又怀止?

葛屦五两,冠緌双止。鲁道有荡,齐子庸止。既曰庸止,曷又从止?

蓺麻如之何?衡从其亩。取妻如之何?必告父母。既曰告止,曷又鞠止?

析薪如之何?匪斧不克。取妻如之何?匪媒不得。既曰得止,曷又极止?

!!国风 齐风 甫田

无田甫田,维莠骄骄。无思远人,劳心忉忉。

无田甫田,维莠桀桀。无思远人,劳心怛怛。

婉兮娈兮。总角丱兮。未几见兮,突而弁兮!

!!国风 齐风 卢令

卢令令,其人美且仁。

卢重环,其人美且鬈。

卢重鋂,其人美且偲。

!!国风 齐风 敝笱

敝笱在梁,其鱼鲂鳏。齐子归止,其从如云。

敝笱在梁,其鱼鲂鱮。齐子归止,其从如雨。

敝笱在梁,其鱼唯唯。齐子归止,其从如水。

!!国风 齐风 载驱

载驱薄薄,蕈茀朱鞹。鲁道有荡,齐子发夕。

四骊济济,垂辔沵々。鲁道有荡,齐子岂弟。

汶水汤汤,行人彭彭。鲁道有荡,齐子翱翔。

汶水滔滔,行人儦々。鲁道有荡,齐了游敖。

!!国风 齐风 猗嗟

猗嗟昌兮,颀而长兮。抑若扬兮,美目扬兮。巧趋跄兮,射则臧兮。

猗嗟名兮,美目清兮。仪既成兮,终日射侯,不出正兮,展我甥兮。

猗嗟娈兮,清扬婉兮。舞则选兮,射则贯兮,四矢反兮,以御乱兮。
!!国风 秦风 车邻

有车邻邻,有马白颠。未见君子,寺人之令。

阪有漆,隰有栗。既见君子,并坐鼓瑟。今者不乐,逝者其耋。

阪有桑,隰有杨。既见君子,并坐鼓簧。今者不乐,逝者其亡。

!!国风 秦风 驷驖

驷驖孔阜,六辔在手。公之媚子,从公于狩。

奉时辰牡,辰牡孔硕。公曰左之,舍拔则获。

游于北园,四马既闲。輶车鸾镳,载猃歇骄。

!!国风 秦风 小戎

小戎俴收,五楘梁辀。游环胁驱,阴靷鋈续。文茵畅毂,驾我骐馵。言念君子,温其如玉。在其板屋,乱我心曲。

四牡孔阜,六辔在手。骐骝是中,騧骊是骖。龙盾之合,鋈以觼軜。言念君子,温其在邑。方何为期?胡然我念之!

俴驷孔群,厹矛鋈錞。蒙伐有苑,虎韔镂膺。交韔二弓,竹闭绲縢。言念君子,载寝载兴。厌厌良人,秩秩德音。

!!国风 秦风 蒹葭

蒹葭苍苍,白露为霜。所谓伊人,在水一方,溯洄从之,道阻且长。溯游从之,宛在水中央。

蒹葭萋萋,白露未晞。所谓伊人,在水之湄。溯洄从之,道阻且跻。溯游从之,宛在水中坻。

蒹葭采采,白露未已。所谓伊人,在水之涘。溯洄从之,道阻且右。溯游从之,宛在水中沚。

!!国风 秦风 终南

终南何有?有条有梅。君子至止,锦衣狐裘。颜如渥丹,其君也哉!

终南何有?有纪有堂。君子至止,黻衣绣裳。佩玉将将,寿考不忘!

!!国风 秦风 黄鸟

交交黄鸟,止于棘。谁从穆公?子车奄息。维此奄息,百夫之特。临其穴,惴惴其慄。彼苍者天,歼我良人!如可赎兮,人百其身!

交交黄鸟,止于桑。谁从穆公?子车仲行。维此仲行,百夫之防。临其穴,惴惴其慄。彼苍者天,歼我良人!如可赎兮,人百其身!

交交黄鸟,止于楚。谁从穆公?子车针虎。维此针虎,百夫之御。临其穴,惴惴其慄。彼苍者天,歼我良人!如可赎兮,人百其身!

!!国风 秦风 晨风

鴥彼晨风,郁彼北林。未见君子,忧心钦钦。如何如何,忘我实多!

山有苞栎,隰有六駮。未见君子,忧心靡乐。如何如何,忘我实多!

山有苞棣,隰有树檖。未见君子,忧心如醉。如何如何,忘我实多!

!!国风 秦风 无衣

岂曰无衣?与子同袍。王于兴师,修我戈矛。与子同仇!

岂曰无衣?与子同泽。王于兴师,修我矛戟。与子偕作!

岂曰无衣?与子同裳。王于兴师,修我甲兵。与子偕行!

!!国风 秦风 渭阳

我送舅氏,曰至渭阳。何以赠之?路车乘黄。

我送舅氏,悠悠我思。何以赠之?琼瑰玉佩。

!!国风 秦风 权舆

於我乎,夏屋渠渠,今也每食无余。于嗟乎,不承权舆!

於我乎,每食四簋,今也每食不饱。于嗟乎,不承权舆!
!!国风 唐风 蟋蟀

蟋蟀在堂,岁聿其莫。今我不乐,日月其除。无已大康,职思其居。好乐无荒,良士瞿瞿。

蟋蟀在堂,岁聿其逝。今我不乐,日月其迈。无已大康,职思其外。好乐无荒,良士蹶蹶。

蟋蟀在堂,役车其休。今我不乐,日月其慆。无以大康。职思其忧。好乐无荒,良士休休。

!!国风 唐风 山有枢

山有枢,隰有榆。子有衣裳,弗曳弗娄。子有车马,弗驰弗驱。宛其死矣,他人是愉。

山有栲,隰有杻。子有廷内,弗洒弗扫。子有钟鼓,弗鼓弗考。宛其死矣,他人是保。

山有漆,隰有栗。子有酒食,何不日鼓瑟?且以喜乐,且以永日。宛其死矣,他人入室。

!!国风 唐风 扬之水

扬之水,白石凿凿。素衣朱襮,从子于沃。既见君子,云何不乐?

扬之水,白石皓皓。素衣朱绣,从子于鹄。既见君子,云何其忧?

扬之水,白石粼粼。我闻有命,不敢以告人。

!!国风 唐风 椒聊

椒聊之实,蕃衍盈升。彼其之子,硕大无朋。椒聊且,远条且。

椒聊之实,蕃衍盈匊。彼其之子,硕大且笃。椒聊且,远条且。

!!国风 唐风 绸缪

绸缪束薪,三星在天。今夕何夕,见此良人?子兮子兮,如此良人何?

绸缪束刍,三星在隅。今夕何夕,见此邂逅?子兮子兮,如此邂逅何?

绸缪束楚,三星在户。今夕何夕,见此粲者?子兮子兮,如此粲者何?

!!国风 唐风 杕杜

有杕之杜,其叶湑々。独行踽踽。岂无他人?不如我同父。嗟行之人,

胡不比焉?人无兄弟,胡不佽焉?

有杕之杜,其叶箐箐。独行睘睘。岂无他人?不如我同姓。嗟行之人,胡

不比焉?人无兄弟,胡不佽焉?

!!国风 唐风 羔裘

羔裘豹祛,自我人居居。岂无他人?维子之故。

羔裘豹褎,自我人究究。岂无他人?维子之好。

!!国风 唐风 鸨羽

肃肃鸨羽,集于苞栩。王事靡盬,不能蓺稷黍。父母何怙?悠悠苍天,曷其有所?

肃肃鸨翼,集于苞棘。王事靡盬,不能蓺黍稷。父母何食?悠悠苍天,曷其有极?

肃肃鸨行,集于苞桑,王事靡盬,不能蓺稻粱。父母何尝?悠悠苍天,曷其有常?

!!国风 唐风 无衣

岂曰无衣七兮?不如子之衣,安且吉兮!

岂曰无衣六兮?不如子之衣,安且燠兮!

!!国风 唐风 有杕之杜

有杕之杜,生于道左。彼君子兮,噬肯适我?中心好之,曷饮食之?

有杕之杜,生于道周。彼君子兮,噬肯来游?中心好之,曷饮食之?

!!国风 唐风 葛生

葛生蒙楚,蔹蔓于野。予美亡此,谁与独处?

葛生蒙棘,蔹蔓于域。予美亡此,谁与独息?

角枕粲兮,锦衾烂兮。予美亡此,谁与独旦?

夏之日,冬之夜。百岁之后,归于其居。

冬之夜,夏之日。百岁之后,归于其室。

!!国风 唐风 采苓

采苓采苓,首阳之巅。人之为言,苟亦无信。舍旃舍旃,苟亦无然。人之为言,胡得焉?

采苦采苦,首阳之下。人之为言,苟亦无与。舍旃舍旃,苟亦无然。人之为言,胡得焉?

采葑采葑,首阳之东。人之为言,苟亦无从。舍旃舍旃,苟亦无然。人之为言,胡得焉?
!!国风 王风 黍离

彼黍离离,彼稷之苗。行迈靡靡,中心摇摇。知我者,谓我心忧;不知我者,谓我何求。悠悠苍天,此何人哉?

彼黍离离,彼稷之穗。行迈靡靡,中心如醉。知我者,谓我心忧;不知我者,谓我何求。悠悠苍天,此何人哉?

彼黍离离,彼稷之实。行迈靡靡,中心如噎。知我者,谓我心忧;不知我者,谓我何求。悠悠苍天,此何人哉?

!!国风 王风 君子于役

君子于役,不知其期。曷至哉?鸡栖于埘。日之夕矣,羊牛下来。君子于役,如之何勿思!

君子于役,不日不月。曷其有佸?鸡栖于桀。日之夕矣,羊牛下括。君子于役,苟无饥渴?

!!国风 王风 君子阳阳

君子阳阳,左执簧,右招我由房,其乐只且!

君子陶陶,左执翿,右招我由敖,其乐只且!

!!国风 王风 扬之水

扬之水,不流束薪。彼其之子,不与我戍申。怀哉怀哉,曷月予还归哉扬之!!国风 王风 中谷有蓷水,不流束楚。彼其之子,不与我戍甫。怀哉怀哉,曷月予还归哉!

扬之水,不流束蒲。彼其之子,不与我戍许。怀哉怀哉,曷月予还归哉!

中谷有蓷,暵其干矣。有女仳离,嘅其叹矣。嘅其叹矣,遇人之艰难矣。

中谷有蓷,暵其修矣。有女仳离,条其歗矣。条其歗矣,遇人之不淑矣。

中谷有蓷,暵其湿矣。有女仳离,啜其泣矣。啜其泣矣,何嗟及矣。

!!国风 王风 兔爰

有兔爰爰,雉离于罗。我生之初,尚无为我生之后,逢此百罹。尚寐无吪。

有兔爰爰,雉离于罦。我生之初,尚无造;我生之后,逢此百忧。尚寐无觉。

有兔爰爰,雉离于罿。我生之初,尚无庸;我生之后,逢此百凶。尚寐无聪。

!!国风 王风 葛藟

绵绵葛藟,在河之浒。终远兄弟,谓他人父。谓他人父,亦莫我顾!

绵绵葛藟,在河之涘。终远兄弟,谓他人母。谓他人母,亦莫我有!

绵绵葛藟,在河之漘。终远兄弟,谓他人昆。谓他人昆,亦莫我闻!

!!国风 王风 采葛

彼采葛兮,一日不见,如三月兮!

彼采萧兮,一日不见,如三秋兮!

彼采艾兮!一日不见,如三岁兮!

!!国风 王风 大车

大车槛槛,毳衣如菼。岂不尔思?畏子不敢。

大车啍々,毳衣如璊,岂不尔思?畏子不奔。

谷则异室,死则同穴。谓予不信,有如皎日。

!!国风 王风 丘中有麻

丘中有麻,彼留子嗟。彼留子嗟,将其来施施。

丘中有麦,彼留子国。彼留子国,将其来食。

丘中有李,彼留之子。彼留之子,贻我佩玖。
!!国风 卫风 淇奥

瞻彼淇奥,绿竹猗猗。有匪君子,如切如磋,如琢如磨,瑟兮僴兮,赫兮咺兮。有匪君子,终不可谖兮。

瞻彼淇奥,绿竹青青。有匪君子,充耳琇莹,会弁如星。瑟兮僴兮。赫兮咺兮,有匪君子,终不可谖兮。

瞻彼淇奥,绿竹如箦。有匪君子,如金如锡,如圭如璧。宽兮绰兮,猗重较兮。善戏谑兮,不为虐兮。

!!国风 卫风 考槃

考槃在涧,硕人之宽。独寐寤言,永矢弗谖。

考槃在阿,硕人之薖。独寐寤歌,永矢弗过。

考槃在陆,硕人之轴。独寐寤宿,永矢弗告。

!!国风 卫风 硕人

硕人其颀,衣锦褧衣。齐侯之子,卫侯之妻。东宫之妹,邢侯之姨,谭公维私。

手如柔荑,肤如凝脂,领如蝤蛴,齿如瓠犀,螓首蛾眉,巧笑倩兮,美目盼兮。

硕人敖敖,说于农郊。四牡有骄,朱幩镳镳。翟茀以朝。大夫夙退,无使君劳。

河水洋洋,北流活活。施罛濊濊,鳣鲔发发。葭菼揭揭,庶姜孽孽,庶士有朅。

!!国风 卫风 氓

氓之蚩蚩,抱布贸丝。匪来贸丝,来即我谋。送子涉淇,至于顿丘。匪我愆期,子无良媒。将子无怒,秋以为期。

乘彼垝垣,以望复关。不见复关,泣涕涟涟。既见复关,载笑载言。尔卜尔筮,体无咎言。以尔车来,以我贿迁。

桑之未落,其叶沃若。于嗟鸠兮!无食桑葚。于嗟女兮!无与士耽。士之耽兮,犹可说也。女之耽兮,不可说也。

桑之落矣,其黄而陨。自我徂尔,三岁食贫。淇水汤汤,渐车帷裳。女也不爽,士贰其行。士也罔极,二三其德。

三岁为妇,靡室劳矣。夙兴夜寐,靡有朝矣。言既遂矣,至于暴矣。兄弟不知,咥其笑矣。静言思之,躬自悼矣。

及尔偕老,老使我怨。淇则有岸,隰则有泮。总角之宴,言笑晏晏,信誓旦旦,不思其反。反是不思,亦已焉哉!

!!国风 卫风 竹竿

籊々竹竿,以钓于淇。岂不尔思?远莫致之。

泉源在左,淇水在右。女子有行,远兄弟父母。

淇水在右,泉源在左。巧笑之瑳,佩玉之傩。

淇水滺々,桧楫松舟。驾言出游,以写我忧。

!!国风 卫风 竹竿

籊々竹竿,以钓于淇。岂不尔思?远莫致之。

泉源在左,淇水在右。女子有行,远兄弟父母。

淇水在右,泉源在左。巧笑之瑳,佩玉之傩。

淇水滺々,桧楫松舟。驾言出游,以写我忧。

!!国风 卫风 芄兰

芄兰之支,童子佩觿。虽则佩觿,能不我知。容兮遂兮,垂带悸兮。

芄兰之叶,童子佩韘。虽则佩韘,能不我甲。容兮遂兮,垂带悸兮。

!!国风 卫风 河广

谁谓河广?一苇杭之。谁谓宋远?跂予望之。

谁谓河广?曾不容刀。谁谓宋远?曾不崇朝。

!!国风 卫风 伯兮

伯兮朅兮,邦之桀兮。伯也执殳,为王前驱。

自伯之东,首如飞蓬。岂无膏沐?谁适为容!

其雨其雨,杲杲出日。愿言思伯,甘心首疾。

焉得谖草?言树之背。愿言思伯。使我心痗。

!!国风 卫风 有狐

有狐绥绥,在彼淇梁。心之忧矣,之子无裳。

有狐绥绥,在彼淇厉。心之忧矣,之子无带。

有狐绥绥,在彼淇侧。心之忧矣,之子无服。

!!国风 卫风 木瓜

投我以木瓜,报之以琼琚。匪报也,永以为好也!

投我以木桃,报之以琼瑶。匪报也,永以为好也!

投我以木李,报之以琼玖。匪报也,永以为好也!
!!国风 魏风 葛屦

纠纠葛屦,可以履霜?掺掺女手,可以缝裳?要之襋之,好人服之。

好人提提,宛然左辟,佩其象揥。维是褊心,是以为刺。

!!国风 魏风 汾沮洳

彼汾沮洳,言采其莫。彼其之子,美无度。美无度,殊异乎公路。

彼汾一方,言采其桑。彼其之子,美如英。美如英,殊异乎公行。

彼汾一曲,言采其藚。彼其之子,美如玉。美如玉,殊异乎公族。

!!国风 魏风 园有桃

园有桃,其实之殽。心之忧矣,我歌且谣。不知我者,谓我士也骄。彼人是哉,子曰何其?心之忧矣,其谁知之?其谁知之,盖亦勿思!

园有棘,其实之食。心之忧矣,聊以行国。不知我者,谓我士也罔极。彼人是哉,子曰何其?心之忧矣,其谁知之?其谁知之,盖亦勿思!

!!国风 魏风 陟岵

陟彼岵兮,瞻望父兮。父曰:嗟!予子行役,夙夜无已。上慎旃哉,犹来!无止!

陟彼屺兮,瞻望母兮。母曰:嗟!予季行役,夙夜无寐。上慎旃哉,犹来!无弃!

陟彼冈兮,瞻望兄兮。兄曰:嗟!予弟行役,夙夜必偕。上慎旃哉,犹来!无死!

!!国风 魏风 十亩之间

十亩之间兮,桑者闲闲兮,行与子还兮。

十亩之外兮,桑者泄泄兮,行与子逝兮。

!!国风 魏风 伐檀

坎坎伐檀兮,置之河之干兮。河水清且涟猗。不稼不穑,胡取禾三百廛兮?

不狩不猎,胡瞻尔庭有县貆兮?彼君子兮,不素餐兮!

坎坎伐辐兮,置之河之侧兮。河水清且直猗。不稼不穑,胡取禾三百亿兮?

不狩不猎,胡瞻尔庭有县特兮?彼君子兮,不素食兮!

坎坎伐轮兮,置之河之漘兮。河水清且沦猗。不稼不穑,胡取禾三百囷兮?

不狩不猎,胡瞻尔庭有县鹑兮?彼君子兮,不素飧兮!

!!国风 魏风 硕鼠

硕鼠硕鼠,无食我黍!三岁贯女,莫我肯顾。逝将去女,适彼乐土。乐土乐土,爰得我所。

硕鼠硕鼠,无食我麦!三岁贯女,莫我肯德。逝将去女,适彼乐国。乐国乐国,爰得我直。

硕鼠硕鼠,无食我苗!三岁贯女,莫我肯劳。逝将去女,适彼乐郊。乐郊乐郊,谁之永号?
!!国风 鄘风 柏舟

泛彼柏舟,在彼中河。髧彼两髦,实维我仪。之死矢靡它。母也天只,

不谅人只!

泛彼柏舟,在彼河侧。髧彼两髦,实维我特。之死矢靡慝。母也天只,

不谅人只!

!!国风 鄘风 墙有茨

墙有茨,不可扫也。中冓之言,不可道也。所可道也,言之丑也。

墙有茨,不可襄也。中冓之言,不可详也。所可详也,言之长也。

墙有茨,不可束也。中冓之言,不可读也。所可读也,言之辱也。

!!国风 鄘风 君子偕老

君子偕老,副笄六珈。委委佗佗,如山如河。象服是宜。子之不淑,云如之

何?

玼兮玼兮,其之翟也。鬒发如云,不屑髢也。玉之瑱也,象之揥也。扬且

之晳也。胡然而天也!胡然而帝也!

瑳兮瑳兮,其之展也,蒙彼绉絺,是绁袢也。子之清扬,扬且之颜也,

展如之人兮,邦之媛也!

!!国风 鄘风 桑中

爰采唐矣?沬之乡矣。云谁之思?美孟姜矣。期我乎桑中,要我乎上宫,

送我乎淇之上矣。

爰采麦矣?沬之北矣。云谁之思?美孟弋矣。期我乎桑中,要我乎上宫,

送我乎淇之上矣。

爰采葑矣?沬之东矣。云谁之思?美孟庸矣。期我乎桑中,要我乎上宫,

送我乎淇之上矣。

!!国风 鄘风 鹑之奔奔

鹑之奔奔,鹊之彊彊。人之无良,我以为兄!

鹊之彊彊,鹑之奔奔。人之无良,我以为君!

!!国风 鄘风 定之方中

定之方中,作于楚宫。揆之以日,作于楚室。树之榛栗,椅桐梓漆,爰伐琴瑟。

升彼虚矣,以望楚矣。望楚与堂,景山与京。降观于桑,卜云其吉,终然允臧。

灵雨既零,命彼倌人,星言夙驾,说于桑田。匪直也人,秉心塞渊,騋牝三千。

!!国风 鄘风 蝃蝀

蝃蝀在东,莫之敢指。女子有行,远父母兄弟。

朝隮于西,崇朝其雨。女子有行,远兄弟父母。

乃如之人也,怀婚姻也。大无信也,不知命也!

!!国风 鄘风 相鼠

相鼠有皮,人而无仪!人而无仪,不死何为?

相鼠有齿,人而无止!人而无止,不死何俟?

相鼠有体,人而无礼,人而无礼!胡不遄死?

!!国风 鄘风 干旄

孑孑干旄,在浚之郊。素丝纰之,良马四之。彼姝者子,何以畀之?

孑孑干旟,在浚之都。素丝组之,良马五之。彼姝者子,何以予之?

孑孑干旌,在浚之城。素丝祝之,良马六之。彼姝者子,何以告之?

!!国风 鄘风 载驰

载驰载驱,归唁卫侯。驱马悠悠,言至于漕。大夫跋涉,我心则忧。

既不我嘉,不能旋反。视尔不臧,我思不远。

既不我嘉,不能旋济?视尔不臧,我思不閟。

陟彼阿丘,言采其蝱。女子善怀,亦各有行。许人尤之,众稚且狂。

我行其野,芃芃其麦。控于大邦,谁因谁极?大夫君子,无我有尤。百尔所思,不如我所之。
!!国风 召南 鹊巢

维鹊有巢,维鸠居之。之子于归,百两御之。

维鹊有巢,维鸠方之。之子于归,百两将之。

维鹊有巢,维鸠盈之。之子于归,百两成之。

!!国风 召南 采蘩

于以采蘩?于沼于沚。于以用之?公侯之事。

于以采蘩?于涧之中。于以用之?公侯之宫。

被之僮僮,夙夜在公。被之祁祁,薄言还归。

!!国风 召南 草虫

喓々草虫,趯趯阜螽。未见君子,忧心忡忡。

亦既见止,亦既覯止,我心则降。

陟彼南山,言采其蕨。未见君子,忧心惙々。

亦既见止,亦既覯止,我心则说。

陟彼南山,言采其薇。未见君子,我心伤悲。

亦既见止,亦既覯止,我心则夷。

!!国风 召南 采蘋

于以采蘋?南涧之滨。于以采藻?于彼行潦。

于以盛之?维筐及筥。于以湘之?维锜及釜。

于以奠之?宗室牖下。谁其尸之?有齐季女。

!!国风 召南 甘棠

蔽芾甘棠,勿剪勿伐,召伯所茏。

蔽芾甘棠,勿剪勿败,召伯所憩。

蔽芾甘棠,勿剪勿拜,召伯所说。

!!国风 召南 行露

厌浥行露,岂不夙夜,谓行多露。

谁谓雀无角?何以穿我屋?谁谓女无家?

何以速我狱?虽速我狱,室家不足!

谁谓鼠无牙?何以穿我墉?谁谓女无家?

何以速我讼?虽速我讼,亦不女从!

!!国风 召南 羔羊

羔羊之皮,素丝五紽。退食自公,委蛇委蛇。

羔羊之革,素丝五緎。委蛇委蛇,自公退食。

羔羊之缝,素丝五緫。委蛇委蛇,退食自公。

!!国风 召南 殷其雷

殷其雷,在南山之阳。何斯违斯,莫敢或遑?振振君子,归哉归哉!

殷其雷,在南山之侧。何斯违斯,莫敢遑息?振振君子,归哉归哉!

殷其雷,在南山之下。何斯违斯,莫或遑处?振振君子,归哉归哉!

!!国风 召南 摽有梅

摽有梅,其实七兮。求我庶士,迨其吉兮。

摽有梅,其实三兮。求我庶士,迨其今兮。

摽有梅,顷筐塈之。求我庶士,迨其谓之。

!!国风 召南 小星

嘒彼小星,三五在东。肃肃宵征,夙夜在公。寔命不同!

嘒彼小星,维参与昴。肃肃宵征,抱衾与裯。寔命不犹!

!!国风 召南 江有汜

江有汜,之子归,不我以。不我以,其后也悔。

江有渚,之子归,不我与。不我与,其后也处。

江有沱,之子归,不我过。不我过,其啸也歌。

!!国风 召南 野有死麕

野有死麕,白茅包之。有女怀春,吉士诱之。

林有朴樕,野有死鹿。白茅纯束,有女如玉。

舒而脱脱兮,无感我帨兮,无使尨也吠。

!!国风 召南 何彼襛矣

何彼襛矣,唐棣之华?曷不肃雍?王姬之车。

何彼襛矣,华如桃李?平王之孙,齐侯之子。

其钓维何?维丝伊缗。齐侯之子,平王之孙。

!!国风 召南 驺虞

彼茁者葭,壹发五豝,于嗟乎驺虞!

彼茁者蓬,壹发五豵,于嗟乎驺虞!
!!国风 郑风 缁衣

缁衣之宜兮,敝予又改为兮。适子之馆兮。还予授子之粲兮。

缁衣之好兮,敝予又改造兮。适子之馆兮,还予授子之粲兮。

缁衣之席兮,敝予又改作兮。适子之馆兮,还予授子之粲兮。

!!国风 郑风 将仲子

将仲子兮,无逾我里,无折我树杞。岂敢爱之?畏我父母。仲可怀也,父母之言亦可畏也。

将仲子兮,无逾我墙,无折我树桑。岂敢爱之?畏我诸兄。仲可怀也,诸兄之言亦可畏也。

将仲子兮,无逾我园,无折我树檀。岂敢爱之?畏人之多言。仲可怀也,人之多言亦可畏也。

!!国风 郑风 叔于田

叔于田,巷无居人。岂无居人?不如叔也。洵美且仁。

叔于狩,巷无饮酒。岂无饮酒?不如叔也。洵美且好。

叔适野,巷无服马。岂无服马?不如叔也。洵美且武。

!!国风 郑风 大叔于田

大叔于田,乘乘马。执辔如组,两骖如舞。叔在薮,火烈具举。袒裼暴虎,献于公所。将叔无狃,戒其伤女。

叔于田,乘乘黄。两服上襄,两骖雁行。叔在薮,火烈具扬。叔善射忌,又良御忌。抑罄控忌,抑纵送忌。

叔于田,乘乘鸨。两服齐首,两骖如手。叔在薮,火烈具阜。叔马慢忌,叔发罕忌,抑释掤忌,抑鬯弓忌。

!!国风 郑风 清人

清人在彭,驷介旁旁。二矛重英,河上乎翱翔。

清人在消,驷介麃麃。二矛重乔,河上乎逍遥。

清人在轴,驷介陶陶。左旋右抽,中军作好。

!!国风 郑风 羔裘

羔裘如濡,洵直且侯。彼其之子,舍命不渝。

羔裘豹饰,孔武有力。彼其之子,邦之司直。

羔裘晏兮,三英粲兮。彼其之子,邦之彦兮。

!!国风 郑风 遵大路

遵大路兮,掺执子之衤去兮。无我恶兮,不寁故也!

遵大路兮,掺执子之手兮。无我魗兮,不寁好也!

!!国风 郑风 女曰鸡鸣

女曰鸡鸣,士曰昧旦。子兴视夜,明星有烂。将翱将翔,弋凫与雁。

弋言加之,与子宜之。宜言饮酒,与子偕老。琴瑟在御,莫不静好。

知子之来之,杂佩以赠之。知子之顺之,杂佩以问之。知子之好之,杂佩以报之。

!!国风 郑风 有女同车

有女同车,颜如舜华。将翱将翔,佩玉琼琚。彼美孟姜,洵美且都。

有女同行,颜如舜英。将翱将翔,佩玉将将。彼美孟姜,德音不忘。

!!国风 郑风 山有扶苏

山有扶苏,隰有荷华。不见子都,乃见狂且。

山有乔松,隰有游龙,不见子充,乃见狡童。

!!国风 郑风 萚兮

萚兮萚兮,风其吹女。叔兮伯兮,倡予和女。

萚兮萚兮,风其漂女。叔兮伯兮,倡予要女。

!!国风 郑风 狡童

彼狡童兮,不与我言兮。维子之故,使我不能餐兮。

彼狡童兮,不与我食兮。维子之故,使我不能息兮。

!!国风 郑风 褰裳

子惠思我,褰裳涉溱。子不我思,岂无他人?狂童之狂也且!

子惠思我,褰裳涉洧。子不我思,岂无他士?狂童之狂也且!

!!国风 郑风 丰

子之丰兮,俟我乎巷兮,悔予不送兮。

子之昌兮,俟我乎堂兮,悔予不将兮。

衣锦褧衣,裳锦褧裳。叔兮伯兮,驾予与行。

裳锦褧裳,衣锦褧衣。叔兮伯兮,驾予与归。

!!国风 郑风 东门之墠

东门之墠,茹藘在阪。其室则迩,其人甚远。

东门之栗,有践家室。岂不尔思?子不我即!

!!国风 郑风 风雨

风雨凄凄,鸡鸣喈喈,既见君子。云胡不夷?

风雨潇潇,鸡鸣胶胶。既见君子,云胡不瘳?

风雨如晦,鸡鸣不已。既见君子,云胡不喜?

!!国风 郑风 子衿

青青子衿,悠悠我心。纵我不往,子宁不嗣音?

青青子佩,悠悠我思。纵我不往,子宁不来?

挑兮达兮,在城阙兮。一日不见,如三月兮。

!!国风 郑风 扬之水

扬之水,不流束楚。终鲜兄弟,维予与女。无信人之言,人实迋女。

扬之水,不流束薪。终鲜兄弟,维予二人。无信人之言,人实不信。

!!国风 郑风 出其东门

出其东门,有女如云。虽则如云。匪我思存。缟衣綦巾,聊乐我员。

出其闉阇,有女如荼。虽则如荼,匪我思且。缟衣茹藘,聊可与娱。

!!国风 郑风 野有蔓草

野有蔓草,零露漙兮。有美一人,清扬婉兮。邂逅相遇,适我愿兮。

野有蔓草,零露瀼瀼。有美一人,婉如清扬。邂逅相遇,与子偕臧。

!!国风 郑风 溱洧

溱与洧,方涣涣兮。士与女,方秉蕳兮。女曰观乎?士曰既且。且往观乎?洧之外,洵訏且乐。维士与女,伊其相谑,赠之以勺药。

溱与洧,浏其清矣。士与女,殷其盈矣。女曰观乎?士曰既且。且往观乎?洧之外,洵訏且乐。维士与女,伊其将谑,赠之以勺药。

!!国风 周南 关雎

关关雎鸠,在河之洲。窈窕淑女,君子好逑。

参差荇菜,左右流之。窈窕淑女,寤寐求之。

求之不得,寤寐思服。悠哉悠哉,辗转反侧。

参差荇菜,左右采之。窈窕淑女,琴瑟友之。

参差荇菜,左右芼之。窈窕淑女,钟鼓乐之。

!!国风 周南 葛覃

葛之覃兮,施于中谷,维叶萋萋。黄鸟于飞,集于灌木,其鸣喈喈。

葛之覃兮,施于中谷,维叶莫莫。是刈是濩,为絺为绤,服之无斁。

言告师氏,言告言归。薄汙我私,薄浣我衣。害浣害否,归宁父母。

!!国风 周南 卷耳

采采卷耳,不盈顷筐。嗟我怀人,置彼周行。

陟彼崔嵬,我马虺隤。我姑酌彼金罍,维以不永怀。

陟彼高冈,我马玄黄。我姑酌彼兕觥,维以不永伤。

陟彼砠矣,我马瘏矣,我仆痡矣,云何吁矣。

!!国风 周南 樛木

南有樛木,葛藟累之。乐只君子,福履绥之。

南有樛木,葛藟荒之。乐只君子,福履将之。

南有樛木,葛藟萦之。乐只君子,福履成之。

!!国风 周南 螽斯

螽斯羽,诜诜兮。宜尔子孙,振振兮。

螽斯羽,薨薨兮。宜尔子孙。绳绳兮。

螽斯羽,揖揖兮。宜尔子孙,蛰蛰兮。

!!国风 周南 桃夭

桃之夭夭,灼灼其华。之子于归,宜其室家。

桃之夭夭,有蕡其实。之子于归,宜其家室。

桃之夭夭,其叶蓁蓁。之子于归,宜其家人。

!!国风 周南 兔罝

肃肃兔罝,椓之丁丁。赳赳武夫,公侯干城。

肃肃兔罝,施于中逵。赳赳武夫,公侯好仇。

肃肃免罝,施于中林。赳赳武夫,公侯腹心。

!!国风 周南 芣苡

采采芣苡,薄言采之。采采芣苡,薄言有之。

采采芣苡,薄言掇之。采采芣苡,薄言捋之。

采采芣苡,薄言袺之。采采芣苡,薄言襭之。

!!国风 周南 汉广

南有乔木,不可休息。汉有游女,不可求思。

汉之广矣,不可泳思。江之永矣,不可方思。

翘翘错薪,言刈其楚。之子于归,言秣其马。

汉之广矣,不可泳思。江之永矣,不可方思。

翘翘错薪,言刈其蒌。之子于归。言秣其驹。

汉之广矣,不可泳思。江之永矣,不可方思。

!!国风 周南 汝坟

遵彼汝坟,伐其条枚。未见君子,惄如调饥。

遵彼汝坟,伐其条肄。既见君子,不我遐弃。

鲂鱼赪尾,王室如燬。虽则如毁,父母孔迩。

!!国风 周南 麟之趾

麟之趾,振振公子,于嗟麟兮。

麟之定,振振公姓,于嗟麟兮。

麟之角,振振公族,于嗟麟兮。
!![[文赋]]


!![[二京赋]]


!![[哀江南赋]]

[ ] 机器学习 - Coursera https://www.coursera.org/learn/machine-learning/home/week/1

!! 网站和索引

* ~TensorFlow 中文社区 http://www.tensorfly.cn
* 更多机器学习资源- ~TensorFlow 中文社区 http://www.tensorfly.cn
* 深度学习入门资源(主要是国外资源) - 萌新的学习日记 - 知乎专栏 https://zhuanlan.zhihu.com/p/29058973
* Awesome Deep Learning https://github.com/ChristosChristofidis/awesome-deep-learning
* 机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 1) https://github.com/ty4z2008/Qix/blob/master/dl.md
* Charlotte77 | 数学系的数据挖掘民工 - cnblogs http://www.cnblogs.com/charlotte77/

!! 书籍

* Deep Learning 中文翻译 https://github.com/exacity/deeplearningbook-chinese
* Deep Learning - An MIT Press book http://www.deeplearningbook.org
* Neural Networks and Deep Learning http://neuralnetworksanddeeplearning.com

!! 文章

* 如何入门深度学习? https://zhuanlan.zhihu.com/p/21475898
* 人人都可以做深度学习应用:入门篇 https://zhuanlan.zhihu.com/p/25482889
* MNIST机器学习入门 - ~TensorFlow 中文社区 http://www.tensorfly.cn/tfdoc/tutorials/mnist_beginners.html
* 深度学习如何入门?- 知乎回答 
** https://www.zhihu.com/question/26006703/answer/156451408
** https://www.zhihu.com/question/26006703/answer/229415675
* 原来理解 深度学习 这么简单!  www.sohu.com/a/139103528_463994

!! 课程

* 机器学习 - Coursera https://www.coursera.org/learn/machine-learning/home/week/1

!! 框架

* ~TensorFlow
* Caffe
* Torch
* Theano

!! 数学

关联:

* 机器学习应该准备哪些数学预备知识? - 知乎 https://www.zhihu.com/question/36324957
* 机器学习理论篇1:机器学习的数学基础 - DT新纪元 - 知乎专栏 https://zhuanlan.zhihu.com/p/25197792
* 机器学习中的基本数学知识 - steven yang - cnblogs http://www.cnblogs.com/steven-yang/p/6348112.html#微分differential
* [转载]《和机器学习和计算机视觉相关的数学(from LinDahua)》 - 科学网  http://blog.sciencenet.cn/blog-240720-284694.html


学习:

* 张宇高数十八讲【已完结】 - Bilibili https://www.bilibili.com/video/av12790754/
* 高等微積分 - 台大开放式课程

!! 参考

传统机器学习算法:感知机、SVM、LR、Softmax、Kmeans、DBSCAN、决策树(ID3、C4.5、CART)、GBDT、RF、xgboost、Adaboost、EM、BP神经网络、NB、LDA(fisher discrimination)、PCA、核函数、最大熵、logistic regression等等,目前想到这么多,下次博客会讲述我对它们的理解以及我的学习材料资源。

深度学习(DL是ML的一部分,不要认为DL中包含ML,推荐看看bengio老师的DL):CNN、RNN、LSTM、常用激活函数、adam等优化算法、梯度消失原因、梯度爆炸等。

自然语言理解(NPL):TF-IDF、textrank、word2vec等。

常用概念:最大似然估计(这是一个有故事的概念...)、最小二乘、模型融合方法、L1、L2正则、判别模型与生成模型、熵、KL散度、数据归一化、最优化方法(梯度下降、牛顿、共轭梯度等)、无偏估计、算法评估方法(FROC、ROC、PR、F1、AUC等)、交叉验证、bias-variance-trackoff、概率、高数、线代等等。

来源:[[从小白到机器学习算法工程师,我做了哪些准备?|http://blog.ihuxu.com/the-preparation-from-the-white-to-the-machine-learning-algorithm-engineer/]]
稼轩词   (宋)辛弃疾 撰 

  钦定四库全书

  集部十

  稼轩词

  词曲类一

  词集之属

  提要

  臣等谨案稼轩词四巻

宋辛弃疾撰弃疾有南烬纪闻已著录其词慷慨纵横有不可一世之概于倚声家为变调而异军特起能于翦红刻翠之外屹然别立一宗迄今不废观其才气俊迈虽似乎奋笔而成然岳珂桯史记弃疾自诵贺新凉永遇乐二词使座客指摘其失珂谓贺新凉词首尾二腔语句相似永遇乐词用事太多弃疾乃自改其语日数十易累月犹未竟其刻意如此云云则未始不由苦思得矣书录解题载稼轩词四巻又云信州本十二巻视长沙本为多此本为毛晋所刻亦为四巻而其总目又注原本十二巻殆即就信州本而合并之欤其集旧多讹异如二巻内丑奴儿近一阕前半是本调残阙不全自飞流万壑以下则全首系洞仙歌葢因洞仙歌五阕即在此调之后旧本遂误割第一首以补前词之阙而五阕之洞仙歌遂止存其四近万树词律中辨之甚明此本尚未及订正其中叹轻衫帽几许红尘句据其文义帽字上尚有一脱字树亦未经勘及斯足证扫叶之喻矣今并详为勘定其必不可通而无别本可证者则姑从阙疑之义焉

  乾隆四十四年二月恭校上

  总纂官 (臣)纪昀 (臣)陆锡熊 (臣)孙士毅

  总校官 (臣)陆费墀

  ●钦定四库全书

  稼轩词卷一

  (宋)辛弃疾 撰

  哨遍【秋水观】

  蜗角鬬争左触右蛮一战连千里君试思方寸此心微总虚空并包无际喻此理何言泰山毫末从来天地一稊米嗟小大相形鸠鹏自乐之二虫又何知记跖行仁义孔丘非更殇乐长年老彭悲火鼠论寒氷蚕语热定谁同异 噫贵贱随时连城纔换一羊皮谁与齐万物庄周吾梦见之正商略遗篇翩然顾笑空堂梦觉题秋水有客问洪河百川灌雨泾流不辨涯涘于是焉河伯欣然喜以天下之美尽在已渺沧溟望洋东视逡巡向若惊叹谓我非逢子大方达观之家未免长见悠然笑耳此堂之水几何其但清溪一曲而已

  又【用前韵】

  一壑自专五柳笑人晩乃归田里问谁知几者动之微望飞鸿冥冥天际论妙理浊醪正堪长醉从今自酿躬耕米嗟美恶难齐盈虚如代天耶何必人知试回头五十九年非似梦里欢娯觉来悲夔乃怜蚿谷亦亡羊算来何异 嘻物讳穷时丰狐文豹罪因皮富贵非吾愿遑遑乎欲何之正万籁都沉月明中夜心弥万里清如水却自觉神游归来坐对依稀淮岸江涘看一时鱼鸟忘情喜会我已忘机更忘已又何曾物我相视非鱼濠上遗意要是吾非子但教河伯休惭海若大小均为水耳世间喜愠更何其笑先生三仕三巳

  又【赵昌父之祖季思学士退居郑圃有亭名鱼计宇文叔通为作古赋今昌父之弟成父于所居凿池筑亭榜以旧名为成父作诗属余赋哨遍庄周论于蚁弃知于鱼得计于羊弃意其义美矣然上文论虱托于豕而得焚羊肉为蚁所慕而致残下文将并结二义乃独置豕虱不言而遽论鱼其义无所从起又间于羊蚁两句之间使羊蚁之义离不相属何耶其必有深意存焉顾后人未之晓耳或言蚁得水而死羊得水而病鱼得水而活此最穿凿不成意趣余甞反复寻绎终未能得意世必有能读此书而了其义者他日倘见之而问焉姑先识余疑于此词云尔】

  池上主人人适忘鱼鱼适还忘水洋洋乎翠藻青萍里相鱼兮无便于此甞试思庄周曾谈两事一明豕虱一羊蚁说蚁慕于膻于蚁弃知又说于羊弃意甚虱焚于豕独忘之却骤说于鱼为得计千古遗文我不知言以我非子 噫子固非鱼鱼之为计子焉知河水深且广风涛万顷堪依有网罟如云鹈鹕成阵过而留泣计应非其外海茫茫下有龙伯饥时一啖千里更任公五十犗为饵使海上人人厌腥味似鲲鹏变化□几东游入海非计直以命为戏古来谬算狂图五鼎烹死栢为平地嗟鱼欲事逺游时请三思而行可矣

  六州歌头【属得疾暴甚医者莫晓其状小愈困卧无聊戏作以自释】

  晨来问疾有鹤止庭隅吾语汝只三事太愁余病难扶手种青松树碍梅坞妨花径纔数尺如人立却须锄 秋水堂前曲沼明于镜可烛眉须被山头急雨耕垄灌泥涂谁使吾庐映污渠叹青山好檐外竹遮欲尽有还无删竹去吾乍可食无鱼爱扶疎又欲为山计千百虑累吾躯 凡病此吾过矣子奚知口不能言臆对虽卢扁药石难除有要言妙道往问北山愚庻有瘳乎

  兰陵王赋【一丘一壑】

  一丘壑老子风流占却茅檐上松月桂云脉脉石泉逗山脚寻思前事错恼杀晨猿夜鹤终须是邓禹辈人锦绣麻霞坐黄阁 长歌自深酌看天阔鸢飞渊静鱼跃西风黄菊香喷薄怅日暮云合佳人何处纳兰结佩带杜若入江海会约 遇合事难托莫击磬门前荷蒉人过仰天大笑冠簪落待说与穷达不须疑着古来贤者进亦乐退亦乐

  又【巳未八月二十日夜梦有人以石研屏见饟者其色如玉光润可爱中有一牛磨角作鬬状云湘潭里中有张其姓者多力善鬬号张难敌一日与人搏偶败忿赴河而死居三日其家人来视之浮水上则牛耳自后并水之山往往有此石或得之里中辄不利梦中异之为作诗数百言大抵皆取古之怨愤变化异物等事觉而忘其言后三日赋词以识其异】

  恨之极恨极销磨不得苌弘事人道后来其血三年化为碧郑人缓也泣吾父攻儒助墨十年梦沈痛化余秋柏之间既为实 相思重相忆被怨结中肠潜动精魄望夫江上岩岩立嗟一念中变后期长絶君看启母愤所激又俄顷为石 难敌最多力甚一忿沉渊精气为物依然困鬬牛磨角便影入山骨至今雕琢寻思人世只合化梦中蝶

  贺新郎【赋水仙】

  云卧衣裳冷看萧然风前月下水边幽影罗袜生尘凌波去汤沐烟波万顷爱一点娇黄成晕不记相逢曾解佩甚多情为我香成阵待和泪收残 粉灵均千古懐沙恨记当时悤悤忘把此仙题品烟雨凄迷僝僽损翠袂揺揺谁整谩写入瑶琴幽愤弦断招魂无人赋但金杯的皪银台润愁殢酒又独醒

  又【赋海棠】

  莫厌霓裳素染臙脂苎罗山下浣沙溪渡谁与流霞千古酝引得东风相误从臾入吴宫深处鬓乱钗横浑不醒转越江刬地迷归路烟艇小五湖去 当时倩得春留住就锦屏一曲种种断肠风度纔是清明三月近须要诗人妙句笑援笔殷懃为赋十様蛮笺纹错绮粲珠玑渊掷惊风雨重唤酒共花语

  又【赋滕王阁】

  髙阁临江渚访层城空余旧迹黯然懐古画栋朱帘当日事不见朝云暮雨但遗下西山南浦天宇修眉浮新绿映悠悠潭影恨如故空有恨奈何许 王郎健笔夸翘楚到如今落霞孤鹜竞传佳句物换星移知几度梦想珠歌翠舞为徙倚阑干凝伫目断平芜苍波晩快江风一瞬澄襟暑谁共饮有诗侣

  又【赋琵琶】

  凤尾龙香拨自开元霓裳曲罢几畨风月最苦浔阳江头客画舸亭亭待发记出塞黄云堆雪马上离愁三万里望昭阳宫殿孤鸿没弦解语恨难说 辽阳驿使音尘絶琐窗寒轻拢慢捻泪珠盈睫推手含情还却手一抹梁州哀彻千古事云飞烟灭贺老定场无消息想沉香亭北繁华歇弹到此为呜咽

  又

  柳暗凌波路送春归猛风暴雨一畨新绿千里潇湘葡萄涨人解扁舟欲去又樯燕留人相语艇子飞来生尘步唾花寒唱我新畨句波似箭催鸣橹 黄陵祠下山无数听湘娥泠泠曲罢为谁情苦行到东吴春已暮正江阔潮平稳渡望金雀觚棱翔舞前度刘郎今重到问玄都千树花存否愁为倩么弦诉

  又【陈同父自东阳来过余留十日与之同游鹅湖且会朱晦庵于紫溪不至飘然东归既别之明日余意中殊恋恋复欲追路至鹭鸶林则雪深泥滑不得前矣独饮方村怅然久之颇恨挽留之不遂也夜半投宿吴氏泉湖四望楼闻邻笛悲甚为赋乳燕飞以见意又五日同父书来索词心所同然者如此可发千里一笑】

  把酒长亭说看渊明风流酷似卧龙诸葛何处飞来林间鹊蹙踏松梢残雪要破帽多添华发剰水残山无态度被疎梅料理成风月两三鴈也潇瑟 佳人重约还轻别怅清江天寒不渡水深氷合路断车轮生四角此地行人销骨问谁使君来愁絶铸就而今相思错料当初费尽人间铁长夜笛莫吹裂

  又【同父见和再用韵答之】

  老大那堪说似而今元龙臭味孟公瓜葛我病君来高歌饮惊散楼头飞雪笑富贵千钧如髪硬语盘空谁来听记当时只有西窗月重进酒换呜瑟 事无两様人心别问渠侬神州毕竟几畨离合汗血盐车无人顾千里空收骏骨正目断关河路絶我最怜君中宵舞道男儿到此心如铁看试手补天裂

  又【用前韵赠金华杜仲髙】

  细把君诗说恍余音钧天浩荡洞庭胶葛千丈阴崖尘不到惟有层氷积雪乍一见寒生毛髪自昔佳人多薄命对古来一片伤心月金屋冷夜调瑟 去天尺五君家别看乗空鱼龙惨淡风云开合起望衣冠神州路白日销残战骨叹夷甫诸人清絶夜半狂歌悲风起听铮铮阵马檐间铁南共北正分裂

  又【三山雨中游西湖有懐赵丞相】

  翠浪吞平野挽天河谁来照影卧龙山下烟雨偏宜晴更好约略西施未嫁待细把江山图画千顷光中堆滟滪似扁舟欲下瞿塘马中有句浩难写 诗人例入西湖社记风流重来手种緑成阴也陌上游人夸故国十里水晶台榭更复道横空清夜粉黛中洲歌妙曲问当年鱼鸟无存者堂上燕又长夏

  又【和前韵】

  觅句如东野想钱塘风流处士水仙祠下更忆小孤烟浪里望断彭郎欲嫁是一色空蒙难画谁解胸中吞云梦试呼来草赋看司马须更把上林写 鸡豚旧日渔樵社问先生带湖春涨几时归也为爱瑠璃三万顷正卧水亭烟榭对玉墖澄澜深夜鴈鹜如云休报事被诗逢敌手皆勍者春草梦也宜夏

  又【又和前韵】

  碧海成桑野笑人间江翻平陆水云髙下自是三山颜色好更看雨婚烟嫁料未必龙眠能画拟向诗人求幼妇倩诸君妙手皆谈马须进酒为陶写 回头鸥鹭瓢泉社莫吟诗莫抛酒尊是吾盟也千骑而今遮白发忘却沧浪亭榭但记得灞陵呵夜我辈从来文字饮怕壮懐激烈须歌者蝉噪也绿阴夏

  又【别茂嘉十二弟鹈鴂杜鹃实两种见离骚补注】

  绿树听鹈鴂更那堪鹧鸪声住杜鹃声切啼到春归无寻处苦恨芳菲都歇算未抵人间离别马上琵琶关塞黑更长门翠辇辞金阙看燕燕送归妾 将军百战身名烈向河梁回头万里故人长絶易水萧萧西风冷满座衣冠似雪正壮士悲歌未彻啼鸟还知如许恨料不啼清泪长啼血谁共我醉明月

  又【题赵兼善龙阁东山小鲁亭】

  下马东山路恍临风周情孔思悠然千古寂寞东家丘何在缥缈危亭小鲁试重上岩岩髙处更忆公归西悲日正蒙蒙陌上多零雨嗟费却几章句 谢公雅志还成趣记风流中年懐抱长携歌舞政尔良难君臣事晩听秦筝声苦快满眼松篁千亩把似未垂功名泪算何如且作溪山主双白鸟又飞去

  又【题傅君用山园】

  曾与东山约为鯈鱼从容分得清泉一勺堪笑髙人读书处多少松窗竹阁甚长被游人占却万巻何言达时用士方穷早与人同乐新种得几花药 山头怪石蹲秋鹗俯人间尘埃野马孤撑髙攫拄杖危亭扶未到已觉云生两脚更换却朝来毛发此地千年曾物化莫呼猿且自多招鹤吾亦有一丘壑

  又【用前韵题赵晋臣敷文积翠岩余谓当筑陂于其前】

  拄杖重来约到东风洞庭张乐满空箫勺巨海拔犀头角出束向北山髙阁尚依旧争前又却老我伤懐登临际问何方可以平哀乐唯是酒万金药 劝君且作横空鹗更休论人间腥腐纷纷乌攫九万里风斯在下翻覆云头雨脚快直上昆仑濯发好卧长虹陂千里是谁言听取双黄鹤携翠影浸云壑

  又【韩仲止判院山中见访席上用前韵】

  听我三章约有谈功谈名者舞谈经深酌作赋相如亲涤器识字子云投阁算枉把精神费却此会不如公荣者莫呼来政尔妨人乐医俗士苦无药 当年众鸟看孤鹗意飘然横空直把曹吞刘攫老我山中谁是伴须信穷愁有脚似剪尽还生僧发自断此生天休问倩何人说与乗轩鹤吾有志在丘壑

  又【邑中园亭仆皆为赋此词一日独坐停云水声山色竞来相娱意溪山欲援例者遂作数语庻几彷佛渊明思亲友之意云】

  甚矣吾衰矣怅平生交游零落只今余几白发空垂三千丈一笑人间万事问何物能令公喜我见青山多妩媚料青山见我应如是情与貌略相似 一樽搔首东窗里想渊明停云诗就此时风味江左沉酣求明者岂识浊醪妙理回首叫云飞风起不恨古人吾不见恨古人不见吾狂耳知我者二三子

  又【再用前韵】

  鸟倦飞还矣笑渊明缾中储粟有无能几莲社髙人留翁语我醉宁论许事试沽酒重酙翁喜一见萧然音韵古想东篱醉卧参差是千载下竟谁似 元龙百尺髙楼里把新诗殷懃问我停云情味北夏门髙从拉拥何事须人料理翁会道繁华朝起尘土人言宁可用顾青山与我何如耳歌且和楚狂子

  又【题傅岩叟悠然阁】

  路入门前柳到君家悠然细说渊明重九晚岁凄其无诸葛惟有黄花入手更风雨东篱依旧频顾南山髙如许是先生拄杖归来后山不记何年有 是中不减匡庐秀倩西风为吾唤起翁能来否鸟倦飞还平林去云自无心出岫剩准备新诗几首欲辨忘言当年意慨遥遥我去羲农久天下事可无酒

  又【用前韵再赋】

  肘后俄生柳叹人生不如意事十常八九右手淋浪才有用闲却持螯左手谩赢得伤今感旧投阁先生惟寂寞笑是非不了身前后持此语问乌有 青山幸自重重秀问新来萧萧木落颇堪秋否总被西风都瘦损依旧千嵓万岫把万事无言搔首翁比渠侬人谁好是我常与我周旋久宁作我一杯酒

  又【严和之好古博雅以严本庄姓取蒙庄子陵四事曰濮上曰濮梁曰齐泽曰严瀬为四图属余赋词余为蜀君平之髙扬子云所谓虽隋和何以加诸者班孟坚独取子云所称述为王贡诸传序引不敢以其姓名列诸传尊之也故余谓和之当并图君平像置之四图之间庻几严氏之髙节备焉作乳燕飞词使歌之】

  濮上看垂钓更风流羊裘泽畔精神孤矫楚汉黄金公卿印比看渔竿谁小但过眼纔堪一笑惠子焉知濠梁乐望桐江千丈髙台好烟雨外几鱼鸟 古来如许髙人少细平章两翁似与巢由同调已被尧知方洗耳毕竟尘污人了要名字人间如扫我爱蜀庄沉冥者解门前不使征车到君为我尽三老

  又【和徐斯逺下第谢诸公载酒韵】

  逸气轩眉宇似王良轻车熟路骅骝欲舞我觉君非池中物咫尺蛟龙云雨时与命犹须天付兰佩芳菲无人问叹灵均欲向重华诉空郁郁共谁语 儿曹不料扬雄赋怪当年甘泉误说青葱王树风引船回沧溟阔目断三山伊阻但笑指吾庐何许门外苍官三百辈尽堂堂八尺须髯古谁载我带湖去

  念奴娇【书东流村壁】

  野塘花落又匆匆过了清明时节刬地东风欺客梦一枕云屏寒怯曲岸持觞垂杨系马此地曾轻别楼空人去旧游飞燕能说 闻道绮陌东头行人曾见帘底纤纤月旧恨春江流不断新恨云山千迭料得明朝樽前重见镜里花难折也应惊问近来多少华发

  又【登建康赏心亭呈史留守致道】

  我来吊古上危楼赢得闲愁千斛虎踞龙盘何处是只有兴亡满目柳外斜阳水边归鸟陇上吹乔木片帆西去一声谁喷霜竹 却忆安石风流东山岁晩泪落哀筝曲儿辈功名都付与长日惟消碁局寳镜难寻碧云将暮谁劝杯中绿江头风怒朝来波浪翻屋

  又【西湖和人韵】

  晩风吹雨战新荷声乱明珠苍璧谁把香奁收寳镜云锦周遭红碧飞鸟翻空游鱼吹浪惯趂笙歌席坐中豪气看君一饮千石 遥想处士风流鹤随人去已作飞僊客茆舍疎篱今在否松竹已非畴昔欲说当年望湖楼下水与云寛窄醉中休问断肠桃叶消息

  又【和韩南涧载酒见过云楼观雪】

  兔园旧赏怅遗踪飞鸟千山都絶缟带银杯江上路惟有南枝香别万事新竒青山一夜对我头先白倚岩千树玉龙飞上琼阙 莫惜雾鬓云鬟试教骑鹤去约尊前月自与诗翁磨冻砚看扫幽兰新阕便拟明年人间挥汗留斫层氷洁此君何事晩来曾为腰折

  又【赋雨岩效朱希真体】

  近来何处有吾愁何处还知吾乐一点凄凉千古意独倚西风寥阔剪竹寻泉和云种树唤做真闲着此心闲处未应长藉丘壑 休说往事皆非而今觉是且把酒尊酌醉里不知谁是我非月非云非鹤露冷松梢风髙桂子醉了还醒却北窗髙卧莫教啼鸟惊觉

  又【双陆和陈仁和韵】

  少年横槊气凭陵酒圣诗豪余事袖手傍观初未识两两三三而已变化须臾鸥翻石镜鹊抵星桥外捣残秋练玉砧犹想纤指 堪笑千古争心等闲一胜■〈扌弃〉了光阴费老子忘机浑谩与鸿鹄飞来天际武媚宫中韦娘局上休把兴亡记布衣百万看君一笑沉醉

  又【赋白牡丹和范先之韵】

  对花何似似吴宫初教翠围红阵欲笑还愁羞不语惟有倾城娇韵翠葢风流牙签名字旧赏那堪省天香染露晓来衣润谁整 最爱弄玉团酥就中一朶曾入扬州咏华屋金盘人未醒燕子飞来春尽最忆当年沉香亭北无限春风恨醉中休问夜深花睡香冷

  又【和信守王道夫席上韵】

  风狂雨横是邀勒园林几多桃李待上层楼无气力尘满栏干谁倚傍火添衣移香就枕莫卷朱帘起元宵过也春寒犹自如此 为问几日新晴鸠鸣屋上鹊报檐前喜揩拭老来诗句眼要看拍堤春水月下凭肩花边繋马此兴今休矣溪南酒贱光阴只在弹指

  又【戏赠善作墨梅者】

  江南尽处堕玉京僊子絶尘英秀彩笔风流偏解写姑射氷姿清瘦笑杀春工细窥天巧妙絶应难有丹青图画一时都愧凡陋 还似篱落孤山嫰寒清晓祇欠香沾袖淡竚轻盈谁付与弄粉调朱纤手疑是花神朅来人世占得佳名久松篁佳韵倩君添做三友

  又【题梅】

  疎疎淡淡问阿谁堪比太真颜色笑杀东君虚占断多少朱朱白白雪里温柔水边明秀不借春工力骨清香嫰逈然天与竒絶 甞记宝籞寒轻琐窗睡起玉纤纤轻摘漂泊天涯空瘦损犹有当年标格万里风烟一溪霜月未怕欺他得不如归去阆风有个人惜

  又【瓢泉酒酣和东坡韵】

  倘来轩冕问还是今古人间何物旧日重城愁万里风月而今坚壁药笼功名酒垆身世可惜蒙头雪浩歌一曲坐中人物三杰 休叹黄菊凋零孤标应也有梅花争发醉里重揩西望眼惟有孤鸿明灭万事从教浮云来去枉了冲冠髪故人何在长庚应伴残月

  又【再用韵和洪莘之通判丹桂词】

  道人元是道家风来作烟霞中物翠幰裁犀遮不定红透玲珑油壁借得春工惹将秋露熏做江梅雪我评花谱便应推此为杰 憔悴何处芳枝十郎手种看明年花发生断虚空香色界不怕西风起灭别驾风流多情更要簪满嫦娥发等闲折尽玉斧重倩修月

  又

  洞庭春晩旧相传恐是人间尤物收拾瑶池倾国艳来向朱栏一壁透户龙香隔帘莺语料得肌如雪月妖真态是谁教避人杰 酒罢归对寒窗相留昨夜应是梅花发赋了髙唐犹想象不管孤灯明灭半面难期多情易感几点星星髪绕梁声在为伊忘味三月

  又【赵晋臣敷文十月望生日自赋词属余和韵】

  看公风骨似长松磊落多生竒节世上儿曹都蓄缩冻芋旁堆秋瓞结屋溪头境随人胜不是江山别紫云如阵妙歌争唱新阕 尊酒一笑相逢与公臭味菊花兰须悦天上四时调玉烛万事宜询黄发看取东归周家叔父手把元龟说祝公长似十分今夜明月

  又【和赵国兴知录韵】

  为沽美酒过溪来谁道幽人难致更觉元龙楼百尺湖海平生豪气自叹年来看花索句老不如人意东风归路一川松竹如醉 怎得身似庄周梦中蝴蝶花底人间世记取江头三月暮风雨不为春计万斛愁来金貂头上不抵银瓶贵无多笑我此篇聊当宾戏

  又【重九席上】

  龙山何处记当年髙会重阳佳节谁与老兵共一笑落帽参军华发莫倚忘懐西风也解点检尊前客凄凉今古眼中三两飞蝶 须信采菊东篱千载之上只有陶彭泽爱说琴中如得趣弦上何劳声切试把空林翁还肯道何必杯中物临风一笑请翁同醉今夕

  又【用韵答傅先之提举】

  君诗好处似邹鲁儒家还有竒节下笔如神强押韵遗恨都无毫发炙手炎来掉头冷去无限长安客丁宁黄菊未消勾引蜂蝶 天上绛阙清都听君归去我自癯山泽人道君才刚百錬美玉都成泥切我爱风流醉中倾倒丘壑胸中物一杯相属莫孤风月今夕

  又【赋傅岩叟香月堂两梅】

  未须草草赋梅花多少骚人词客总被西湖林处士不肯分留风月疎影横斜暗香浮动把断春消息试将花品细参今古人物 看取香月堂前岁寒相对楚龚之洁自与诗家成一种不系南昌仙籍怕是当年香山老子姓白名来江国谪人仙字太白还又名白

  又【余既为傅岩叟两梅赋词傅君用席上有请云家有四古梅今百年矣未有一品题乞援香月堂例欣然许之且用前篇体制戏赋】

  是谁调护岁寒枝都把苍苔封了茆舍疎篱江上路清夜月髙山小摸索应知曹刘沈谢何况霜天晓芬芳一世料君长被花恼 惆怅立马行人一枝最爱竹外横斜好我向东邻曾醉里唤起诗家二老拄杖而今婆娑雪里又识商山皓请君置酒看渠与我倾倒

  沁园春【带湖新居将成】

  三径初成鹤怨猿惊稼轩未来甚云山自许平生意气衣冠人笑抵死尘埃意倦须还身闲贵早岂为莼羮鲈鲙哉秋江上看惊弦鴈避骇浪船回 东冈更葺茅斋好都把轩窗临水开要小舟行钓先应种柳疎篱护竹莫碍观梅秋菊堪餐春兰可佩留待先生手自栽沉吟久怕君恩未许此意徘徊

  又【送赵景明知县东归再用前韵】

  伫立潇湘黄鹄髙飞望君未来快东风吹断西江对语急呼斗酒旋拂尘埃却怪英姿有如君者犹欠封侯万里哉空赢得道江南佳句只有方回 锦帆画舫行斋怅雪浪粘天江景开记我行南浦送君折柳君逢驿使为我攀梅落帽山前呼鹰台下人道花须满县栽都休问看云霄髙处鹏翼徘徊

  又【戊申岁奏邸忽腾报谓余以病挂冠因赋此】

  老子平生笑尽人间儿女怨根况白头能几定应独往青云得意见说长存抖擞衣冠怜渠无恙合挂当年神武门都如梦算能争几许鸡晓钟昏 此心无有新寃况抱瓮年来自灌园但凄凉顾影频悲往事殷勤对佛欲问前因却怕青山也妨贤路休鬬樽前见在身山中友试髙吟楚些重与招魂

  又【期思旧呼竒狮或云碁狮皆非也余考之荀卿书云孙叔敖期思之鄙人也期思属弋阳郡此地旧属弋阳县虽古之弋阳期思见之图记者不同然有弋阳则有期思也桥壊复成父老请余赋作沁园春以证之】

  有美人兮玉佩琼琚吾梦见之问斜阳犹照渔樵故里长桥谁记今古期思物化苍茫神游彷佛春与猿吟秋鹤飞还惊啸向晴波忽见千丈虹霓 觉来西望崔嵬更上有青枫下有溪待空山自荐寒氷秋菊中流却送桂棹兰旗万事长嗟百年双鬓吾非斯人谁与归凭阑久正清愁未了醉墨休题

  又【答余叔良】

  我试评君君定何如玉川似之记李花初发乗云共语梅花开后对月相思白发重来画桥一望秋水长天孤鹜飞同吟处看佩揺明月衣卷青霓 相君髙节崔嵬是此处耕岩与钓溪被西风吹尽村箫社鼓青山留得松葢云旗吊古愁浓懐人日暮一片心从天外归新词好似凄凉楚些字字堪题

  又【答杨世长】

  我醉狂吟君作新声倚歌和之算芬芳定向梅间得意轻清多是雪里寻思朱雀桥边何人会道野草斜阳春燕飞都休问甚元无霁雨却有晴霓 诗坛千丈崔嵬更有笔如山云作溪着君才未数曹刘敌手风骚合受屈宋降旗谁识相如平生自许慷慨须乗驷马归长安路问垂虹千柱何处曾题

  又【灵山齐庵赋时筑偃湖未成】

  迭嶂西驰万马回旋众山欲东正惊湍直下跳珠倒溅小桥横截缺月初弓老合投闲天教多事检校长生十万松吾庐小在龙蛇影外风雨声中 争先见面重重看爽气朝来三四峰似谢家子弟衣冠磊落相如庭户车骑雍容我觉其间雄深雅健如对文章太史公新堤路问偃湖何日烟水蒙蒙

  又【弄溪赋】

  有酒忘杯有笔忘诗弄溪奈何看从横斗转龙蛇起陆崩腾决去雪练倾河袅袅东风悠悠倒影揺动云山水又波还知否欠菖蒲攅港绿竹缘坡 长松谁剪嵳峩笑野老来耘山上禾算只因鱼鸟天然自乐非关风月闲处偏多芳草春深佳人日暮濯发沧浪独浩歌裴回久人间有谁似老子婆娑

  又【期思卜筑】

  一水西来千丈晴虹十里翠屏喜草堂经岁重来杜老斜川好景不负渊明老鹤髙飞一枝移宿长笑蜗牛戴屋行平章了待十分佳处着个茅亭 青山意气峥嵘似为我归来嫌媚生解频教花鸟前歌后舞更催云水暮送朝迎酒圣诗豪可能无势我乃而今驾驭卿清溪上被山灵却笑白发归耕

  又【将止酒戒酒杯使勿近】

  杯汝前来老子今朝点检形骸甚长年抱渇咽如焦釡于今喜溢气似犇雷漫说刘伶古今达者醉后何妨死便埋浑如许叹汝于知已真少恩哉 更凭歌舞为媒算合作人间鸩毒猜况疾无小大生于所爱物无美恶过则为灾与汝成言勿留亟退吾力犹能肆汝杯杯再拜道麾之即去有召须来

  又【城中诸公载酒入山余不得以止酒为解遂破戒一醉再用韵】

  杯汝知乎酒泉罢侯鸱夷乞骸更髙阳入谒都称虀臼杜康初筮正得云雷细数从前不堪余恨岁月都将曲蘖埋君诗好似提壶却劝沽酒何哉 君言病岂无媒似壁上雕弓蛇暗猜记醉眠陶令终全至乐独醒屈子未免沈菑欲听公言惭非勇者司马家儿解覆杯还堪笑借今宵一醉为故人来

  又【用邴原事寿赵茂嘉郎中时以置兼济仓赈济里中除直秘阁】

  甲子相髙亥首曾疑绛县老人看长身玉立鹤般风度方颐□□虎様精神文烂卿云诗凌鲍谢笔势骎骎更右军浑余事羡僊都梦觉金阙名存 门前父老忻忻焕奎阁新襃诏语温记他年帷幄须依日月只今剑履快上星辰人道阴功天教多寿看到貂蝉七叶孙君家里是几枝丹桂几树灵椿

  又【和呉子似县尉】

  我见君来顿觉吾庐溪山美哉怅平生肝胆都成楚越只今胶漆谁是陈雷搔首踟蹰爱而不见要得诗来渇望梅还知否怯清风入手日看千回 直须抖擞尘埃人怪我柴门今始开向松间乍可从他喝道庭中切莫踏破苍苔岂有文章谩劳车马待唤青刍白饭来君非我任功名意气莫恁徘徊

  水调歌头【舟次扬州和杨济翁周显先韵】

  落日塞尘起边马猎清秋汉家组练十万列舰耸层楼谁道投鞭飞渡忆昔鸣镝血污风雨佛狸愁季子正年少匹马黑貂裘 今老矣搔白首过扬州倦游欲去江上手种橘千头二客东南名胜万巻诗书事业甞试与君谋莫射南山虎直觅富平侯

  又

  落日古城角把酒劝君留长安路逺何事风雪弊貂裘散尽黄金身世不管秦楼人怨归计狎沙鸥明夜扁舟去和月载离愁 功名事身未老几时休诗书万巻致身须到古伊周莫学班超投笔纵得封侯万里憔悴老边州何处依刘客寂寞赋登楼

  又【淳熙丁酉自江陵移帅隆兴到官之二月被召司马监赵卿王漕饯别司马赋水调歌头席间次韵时王公明枢密薨坐客终夕为兴门戸之叹故前章及之】

  我饮不须劝正怕酒尊空别离亦复何恨此别恨匆匆头上貂蝉贵客花外麒麟髙冢人世竟谁雄出门一笑去千里落花风 孙刘辈能使我不为公余发种种如是此事付渠侬但得平生湖海除了醉吟风月此外百无功毫髪皆帝力更乞鉴湖东

  又【淳熙已亥自湖北漕移湖南周总领王漕赵守置酒南楼席上留别】

  折尽武昌柳挂席上潇湘二年鱼鸟江上笑我往来忙富贵何时休问离别中年堪恨憔悴鬓成霜丝竹陶写耳急羽且飞觞 序兰亭歌赤壁绣衣香使君千骑鼓吹风采汉侯王莫把离歌频唱可惜南楼佳处风月已凄凉在家贫亦好此语试平章

  又【盟鸥】

  带湖吾甚爱千丈翠奁开先生杖屦无事一日走千回凡我同盟鸥鹭今日既盟之后来往莫相猜白鹤在何处甞试与偕来 破青萍排翠藻立苍苔窥鱼笑汝痴计不解举吾杯废沼荒丘畴昔明月清风此夜人世几欢哀东岸绿阴少杨柳更须栽

  又【汤朝美司諌见和用韵为谢】

  白日射金阙虎豹九关开见君諌疏频上谈笑挽天回千古忠肝义胆万里蛮烟瘴雨往事莫惊猜政恐不免耳消息日边来 笑吾庐门掩草径封苔未应两手无用要把蟹螯杯说剑论诗余事醉舞狂歌欲倒老子颇堪哀白发宁有种一一醒时栽

  又【严子文同傅安道和前韵因再和谢之】

  寄我五云字恰向酒边开东风过尽归鴈不见客星回均道琐窗风月更着诗翁杖屦合作雪堂猜【子文作雪斋寄书云近以旱无以延客】岁旱莫留客霖雨要渠来 短灯檠长剑铗欲生苔雕弓挂壁无用照影落清杯多病关心药饵小摘亲鉏菜甲老子政须哀夜雨北窗竹更倩野人栽

  又【和赵景明知县韵】

  官事未易了且向酒边来君如无我问君懐抱向谁开但放平生丘壑莫管傍人嘲骂深蛰要惊雷白发还自啸何地置衰颓 五车书千石饮百篇才新词未到琼瑰先梦满吾懐已过西风重九且要黄花入手诗兴未关梅君要花满县桃李趂时栽

  又【寿赵漕介庵】

  千里渥洼种名动帝王家金銮当日奏草落笔万龙蛇带得无边春下等待江山都老教看鬓方鸦莫管钱流地且拟醉黄花 唤双成歌弄玉舞丽华一觞为饮千岁江海吸流霞闻道清都帝所要挽银河仙浪西北洗胡沙回首日边去云里认飞车

  又【和王政之右司呉江观雪见寄】

  造化故豪纵千里玉鸾飞等闲更把万斛琼粉葢玻瓈好巻垂虹千丈只放氷壶一色云海路应迷老子旧游处回首梦耶非 谪仙人鸥鸟伴两忘机掀髯把酒一笑诗在片帆西寄语烟波旧侣闻道莼鲈正美休裂芰荷衣上界足官府汗漫与君期

  又【九日游云洞和韩南涧尚书韵】

  今日复何日黄菊为谁开渊明谩爱重九胷次正崔嵬酒亦关人何事政自不能不尔谁遣白衣来醉把西风扇随处障尘埃 为公饮须一日三百杯此心髙处东望云气见蓬莱翳凤骖鸾公去落佩倒冠吾事抱病且登台归路踏明月人影共徘徊

  又【再用韵呈南涧】

  千古老蟾口云洞揷天开涨痕当日何事汹涌到崔嵬攫土抟沙儿戏翠谷苍崖几变风雨化人来万里须臾耳野马骤空埃 笑年来蕉鹿梦画蛇杯黄花憔悴风露野碧涨荒莱此会明年谁健后日犹今视昔歌舞只空台爱酒陶元亮无酒正徘徊

  又【再用韵答李子永提干】

  君莫赋幽愤一语试相开长安车马道上平地起崔嵬我愧渊明久矣犹借此翁湔洗素壁写归来斜日透虚隙一线万飞埃 断吾生左持蟹右持杯买山自种云树山下斸烟莱百錬都成绕指万事直须称好人世几舆台刘郎更堪笑刚赋看花回

  又【庆韩南涧尚书七十】

  上古八千岁纔是一春秋不应此日刚把七十寿君侯看取垂天云翼九万里风在下与造物同游君欲计岁月甞试问庄周 醉淋浪歌窈窕舞温柔从今杖屦南涧白日为君留闻道钧天帝所频上玉巵春酒冠葢拥龙楼快上星辰去名姓动金瓯

  又【席上用黄徳和推官韵寿南涧】

  上界足官府公是地行僊青毡剑履旧物玉立近天颜莫怪新来白发恐是当年柱下道徳五千言南涧旧活计猿鹤且相安 歌秦缶寳康瓠世皆然不知清庙钟磬零落有谁编莫问行藏用舍毕竟山林钟鼎底事有亏全再拜荷公赐双鹤一千年【公以双鹤见寿】

  又【和信守郑舜举蔗庵韵】

  万事到白发日月几西东羊肠九折岐路我老惯经从竹树前溪风月鸡酒东家父老一笑偶相逢此乐竟谁觉天外有冥鸿 味平生公与我定无同玉堂金马自有佳处着诗翁好鎻云烟窗戸怕入丹青图画飞去了无踪此语更痴絶真有虎头风

  又【送守信王桂发】

  酒罢且勿起重挽使君须一身都是和气别去意何如我辈情锺休问父老田头说尹泪落独怜渠秋水见毛发千尺定无鱼 望青阙左黄阁右紫枢东风桃李陌上下马拜除书屈指吾生余几多病妨人痛饮此事正愁余江湖有归鴈能寄草堂无

  又【送郑厚卿赴衡州】

  寒食不少住千骑拥春衫衡阳石鼓城下记我旧停骖襟以潇湘桂岭带以洞庭青草紫葢屹西南文字起骚雅刀剑化新蚕 看使君于此事定不凡奋髯抵几堂上樽爼自髙谈莫信君门万里但使民歌五袴归诏凤凰衔君去我谁饮明月影成三

  又【提朝李君索余赋野秀绿遶二诗余诗寻医久矣姑合二榜之意赋水调歌头以遗之然君才气不减流辈岂求田问舍而独乐身耶】

  文字觑天巧亭榭定风流平生丘壑岁晩也作稻粱谋五亩园中秀野一水田将绿遶■〈禾罢〉稏不胜秋饱饭对花竹可是便忘忧 吾老矣探禹穴欠东游君家风月几许白马去悠悠揷架牙签万轴射虎南山一骑容我揽须不更欲劝君酒百尺卧髙楼

  又【元日投宿博山寺见者惊叹其老】

  头白牙齿缺君勿笑衰翁无穷天地今古人在四之中臭腐神竒俱尽贵贱贤愚等耳造物也儿童老佛更堪笑谈妙说虚空 坐堆豗行答飒立龙钟有时三盏两盏淡酒醉蒙鸿四十九年前事一百八盘狭路拄杖倚墙东老景竟何似只与少年同

  又【送杨民瞻】

  日月如磨蚁万事且浮休君看檐外江水滚滚自东流风雨瓢泉夜半花草雪楼春到老子己菟裘岁晩问无恙归计橘千头 梦连环歌弹铗赋登楼黄鹤白酒君去村社一畨秋长剑倚天谁问夷甫诸人堪笑西北有神州此事君自了千古一扁舟

  又【送施枢密圣与帅江西信之谶云】

  相公倦台鼎要伴赤松游髙牙千里东夏笳鼓万貔貅试问东山风月更着中郎丝竹留得谢公不孺子宅边水云影自悠悠 占古语方人也正黑头穹龟突兀千丈石打玉溪流金印沙堤时节画栋珠帘云雨一醉早归休贱子祝再拜西北有神州

  又【壬子三山被召陈端仁给事饮饯席上作】

  长恨复长恨裁作短歌行何人为我楚舞听我楚狂声余既滋兰九畹又树蕙之百畮秋菊更餐英门外沧浪水可以濯吾缨 一杯酒问何似身后名人间万事毫发常重泰山轻悲莫悲生离别乐莫乐新相识儿女古今情富贵非吾事归与白鸥盟

  又【题张晋英提举玉峰楼】

  木末翠楼出诗眼巧安排天公一夜削出四面玉崔嵬畴昔此山安在应为先生见晩万马一时来白鸟飞不尽却带夕阳回 劝君饮左手蟹右手杯人间万事变灭今古几池台君看庄生达者犹对山林皋壤哀乐未忘懐我老尚能赋风月试追陪

  又【三山用赵丞相韵畣帅幕王君且有感于中秋近事并见之末章】

  说与西湖客观水更观山淡妆浓抹西子唤起一时观种柳人今天上对酒歌翻水调醉墨卷秋澜老子兴不浅歌舞莫教阑 看尊前轻聚散少悲欢城头无限今古落日晓霜寒谁唱黄鸡白酒犹记红旗清夜千骑月临关莫说西州路且尽一杯看

  又【即席和金华杜仲髙韵并寿诸友惟釂乃佳耳】

  万事一杯酒长叹复长歌杜陵有客刚赋云外筑婆娑须信功名儿辈谁识年来心事古井不生波种种看余发积雪就中多 二三子问丹桂倩素娥平生萤雪男儿无奈五车何看取长安得意莫恨春风看尽花柳自蹉跎今夕且欢笑明月镜新磨

  又【醉吟】

  四坐且勿语听我醉中吟池塘春草未歇髙树变鸣禽鸿鴈初飞江上蟋蟀还来床下时序百年心谁要卿料理山水有清音 欢多少歌长短酒浅深而今已不如昔后定不如今闲处直须行乐良夜更教秉烛髙会惜分阴白发短如许黄菊倩谁簪

  又【题赵晋臣敷文真得归方是闲】

  十里深窈窕万瓦碧参差青山屋上流水屋下绿横溪真得归来啸语方是闲中风月剰费酒边诗检点笙歌了琴罢更围碁 王家竹陶家柳谢家池知君勲业未了不是枕流时莫向痴儿说梦且作山人索价颇怪鹤书迟一事定嗔我已办北山移

  又【赋傅岩叟悠然阁】

  岁岁有黄菊千载一东篱悠然政须两字长笑退之诗自古此山元有何事当时纔见此意有谁知君起更斟酒我醉不须辞 回首处云正出鸟倦飞重来楼上一句端的与君期都把轩窗写遍更使儿童诵得归去来兮辞万巻有时用植杖且耘耔

  又【题呉子似瑱山堂经徳堂陆象山取名也】

  唤起子陆子经徳问何如万锺于我何有不负古人书闻道千章松桂剰有四时柯叶霜雪岁寒余此是瑱山境还似象山无 耕也馁学也禄孔之徒青山毕竟升斗此意颇关渠天地清宁髙下日月东西寒暑何用着工夫两字君勿惜借我榜吾庐

  又【赋松菊堂】

  渊明最爱菊三径也栽松何人收拾千载风味此山中手把离骚读遍自扫落英餐罢杖屦晓霜浓皎皎大独立更揷万芙蓉 水潺湲云澒洞石巃嵸素琴浊酒唤客端有古人风却怪青山能巧政尔横看成岭转面已成峰诗句得活法日月有新工

  又【将迁新居不成戏作时以病止酒且遣去歌者末章及之】

  我亦卜居者岁晩望三闾昂昂千里泛泛不作水中鳬好在书携一束莫问家徒四壁□□□□□□□□□□□□□□□ 舞乌有歌亡是饮子虚二三子者爱我此外故人疎幽事欲论谁共白鹤飞来似可忽去复何如众鸟欣有托吾亦爱吾庐

  又【赵昌父用东坡韵叙太白东坡事见寄过相襃借因用韵为谢兼寄呉子似】

  我志在寥阔畴昔梦登天摩娑素用人世俛仰已千年有客骖鸾翳凤云遇青山赤壁相约上髙寒酌酒援北斗我亦虱其间 少歌曰神甚放形则眠鸿鹄一再髙举天地睹方圆欲重歌兮梦觉推枕惆然独念人事底亏全有美人可语秋水隔婵娟

  又【题永丰杨少游提点一枝堂】

  万事几时足日月自西东无穷宇宙人是一粟太仓中一葛一裘经岁一钵一瓶终日老子旧家风更着一杯酒梦觉大槐宫 记当年吓腐鼠叹冥鸿衣冠神武门外惊倒几儿童休说须弥芥子看取鲲鹏斥鷃小大若为同君欲论齐物须访一枝翁

  又【席上为叶仲洽赋】

  髙马勿捶面千里事难量长鱼变化云雨无使寸鳞伤一壑一丘吾事一斗一石皆醉风月几千场须作猬毛磔笔作剑锋长 我怜君痴絶似顾长康纶巾羽扇颠倒又似竹林狂解道长江如练准备停云堂上千首买秋光怨调为谁赋一斛贮槟榔

  玉蝴蝶【追别杜仲髙】

  古道行人来去香满红树风雨残花望断青山髙处都被云遮客重来风流觞咏春巳去光景桑麻苦无多一条垂柳两个啼鸦 人家疎疎翠竹阴阴绿树浅浅寒沙醉兀蓝舆夜来豪饮太狂些到如今都齐醒却只依旧无奈愁何试听呵寒食近也且住为佳

  又【杜仲髙书来戒酒用韵】

  贵贱偶然浑似随风帘幙篱落飞花空使儿曹马上羞面频遮向空江谁捐玉佩寄离恨应折疏麻暮云多佳人何处数尽归鸦 侬家生涯蜡屐功名破甑交友抟沙往日曾论渊明似胜卧龙些算来从人生行乐休便说日饮亡何快斟呵裁诗未稳得酒良佳

  稼轩词巻一

  ●钦定四库全书

  稼轩词巻二

  (宋)辛弃疾 撰

  满江红【建康史帅致道席上赋】

  鹏翼垂空笑人世苍然无物又还去九重深处玉阶山立袖里珍竒光五色他年要补天西北且归来谈笑护长江波澄碧 佳丽地文章伯金缕唱红牙拍看樽前飞下日边消息料想宝香熏阁梦依然画舫清溪笛待如今端的约钟山长相识

  又【中秋寄逺】

  快上西楼怕天教浮云遮月但唤取玉纤横管一声吹裂谁做冰壶凉世界最怜玉斧修时节问嫦娥孤处有愁无应华发 云液满琼杯滑长袖舞清歌咽叹十常八九欲磨还缺但愿长圆如此夜人情未必看承别把从前离恨总包藏归时说

  又【中秋】

  美景良辰算只是可人风月况素节扬辉长是十分清彻着意登楼瞻玉兔何人张幙遮银阙倩飞廉特得为吹开凭谁说 弦与朢从圆缺今与昨何区别羡夜来把手桂花堪折安得便登天柱上从容陪伴酬佳节更如今不听麈谈清愁如发

  又【暮春】

  点火樱桃照一架荼■〈艹縻〉如雪春正好见龙孙穿破紫苔苍壁乳燕引雏飞力弱流莺唤友娇声怯问春归不肻帯愁归肠千结 层楼望春山迭家何在烟波隔把古今遗恨向他谁说蝴蝶不传千里梦子规呌断三更月听声声枕上劝人归归难得

  又

  家住江南又过了清明寒食花径里一番风雨一番狼藉红粉暗随流水去园林渐觉清阴密算年年落尽刺桐花寒无力 庭院静空相忆无说处闲愁极怕流莺乳燕得知消息尺素如今何处也绿云依旧无踪迹谩教人羞去上层楼平芜碧

  又【贑州席上呈太守陈李陵侍郎】

  落日苍茫风纔定片帆无力还记得睂来眼去水光山色倦客不知身逺近佳人已卜归消息便归来只是赋行云襄王客 些个事如何得知有恨休重忆但楚天特地暮云凝碧过眼不如人意事十常八九今头白笑江州司马太多情青衫湿

  又【贺王帅宣平湖南寇】

  笳鼓归来举鞭问何如诸葛人道是悤悤五月渡泸深入白羽生风貔虎噪青溪路断鼪鼯泣早红尘一骑落平冈捷书急 三万巻龙头客浑未得文章力把诗书马上笑驱锋镝金印明年如斗大貂蝉却自兜鍪出待刻公勲业到云霄浯溪石

  又

  汉水东流都洗尽蛮儿膏血人尽说君家飞将旧时英烈破敌金城雷过耳谈兵玉帐冰生颊想王郎结发赋从戎传遗业 腰间剑聊弹铗尊中酒堪为别况故人新拥汉坛旌节马革裹尸当自誓蛾眉伐性休重说但从今记取楚台风庾楼月

  又【江行简杨济翁周显先】

  过眼溪山怪都是旧时曾识还记得梦中行遍江南江北佳处径须携杖去能消几两平生屐笑尘劳三十九年非长为客 吴楚地东南坼英雄事曹刘敌被西风吹尽了无尘迹楼观甫成人已去旌旗未巻头先白叹人生哀乐转相寻今犹昔

  又

  敲碎离愁纱窗外风揺翠竹人去后吹箫声断倚楼人独满眼不堪三月暮举头已觉千山绿但试把一纸寄来书从头读 相思字空盈幅相思意何时足滴罗襟点点泪珠盈掬芳草不迷行路客垂杨只碍离人目最苦是立尽月黄昏栏干曲

  又

  倦客新丰貂裘敝征尘满目弹短铗青蛇三尺浩歌谁续不念英雄江左老用之可以尊中国叹诗书万巻致君人翻沉陆 休感慨浇醽醁人易老欢难足有玉人怜我为簪黄菊且置请缨封万戸竟须卖剑酬黄犊甚当年寂寞贾长沙伤时哭

  又

  风卷庭梧黄叶坠新凉如洗一笑折秋英同赏弄香挼蘂天逺难竆休乆望楼高欲下还重倚■〈扌弃〉一襟寂寞泪弹秋无人会 今古恨沉荒垒悲欢事随流水想登楼青鬓未堪憔悴极目烟横山数点孤舟月淡人千里对婵姢从此话离愁金樽里

  又【冷泉亭】

  直节堂堂看夹道冠缨拱立渐翠谷羣仙来下佩环声急谁信天锋飞堕地傍湖千丈开青壁是当年玉斧削方壶无人识 山水润琅玕湿秋露下琼珠滴向危亭横跨玉渊澄碧醉舞且揺鸾凤影浩歌莫遣鱼龙泣恨此中风物本吾家今为客

  又【再用前韵】

  照影溪梅怅絶代佳人独立便小驻雍容千骑羽觞飞急琴里新声风响佩笔端醉墨雅栖壁是使君文雅旧知名今方识 高欲卧云还湿清可漱泉长滴快晚风吹帽满懐空碧宝马嘶归红斾动龙团试水铜瓶泣怕他年重到路应迷桃源客

  又【席间和洪景卢舍人兼司马汉章大监】

  天与文章看万斛龙文笔力闻道是一诗曾换千金颜色欲说又休新意思强啼偷笑真消息算人人合与共乗鸾銮坡客 倾国艳难再得还可恨还堪忆看书寻旧锦衫裁新碧莺蝶一春花里活可堪风雨飘红白问谁家却有燕归梁香泥湿

  又【送汤朝美司谏自汴归金坛】

  瘴雨蛮烟十年梦樽前休说春正好故园桃李待君花发儿女灯前和泪拜鸡豚社里归时节看依然舌在齿牙牢心如铁 活国手封侯骨腾汗漫排阊阖待十分做了诗书勲业当日念君归去好而今却恨中年别笑江头明月更多情今宵缺

  又【送李正之提刑入蜀】

  蜀道登天一杯送绣衣行客还自叹中年多病不堪离别东北看誊诸葛表西南更草相如檄把功名收拾付君侯如椽笔 儿女泪君休滴荆楚路吾能识要新诗凖备庐山山色赤壁矶头千古浪铜鞮陌上三更月正梅花万里雪深时须相忆

  又【送信守郑舜举被召】

  湖海平生算不负苍髯如戟闻道是使君着意太平长策此老自当兵十万长安正在天西北便凤凰飞诏下天来催归急 车马路儿童泣风雨暗旌旗湿看野梅官柳东风消息莫向蔗庵追笑语只今松竹无颜色问人间谁管别离愁杯中物

  又【和杨民瞻送佑之弟还侍浮梁】

  尘土西风便无限凄凉行色还记取明朝应恨今宵轻别珠泪争垂华烛暗雁行欲断哀筝切看扁舟幸自涩清溪休催发 白石路长亭侧千树柳千丝结怕行人西去棹歌声阕黄巻莫教诗酒污玉阶不信仙凡隔但从今伴我又随君佳哉月

  又【游南岩和范先之韵】

  笑拍洪崖问千丈翠岩谁削依旧是西风白鸟北村南郭似整复斜僧屋乱欲吞还吐林烟薄觉人间万事到秋来都揺落 呼斗酒同君酌更小隐寻幽约且丁宁休负北山猿鹤有鹿从渠求鹿梦非鱼定未知鱼乐正仰看飞鸟却应人回头错

  又【和范先之咏雪】

  天上飞琼毕竟向人间情薄还又跨玉龙归去万花揺落云破林梢添逺岫月明屋角分层阁记少年骏马走韩卢掀东郭 吟冻雁嘲饥鹊人已老欢犹昨对瑶华满地与君酬酢最爱霏霏迷逺近都收扰扰还空阔待羔儿饮罢又烹茶扬州鹤

  又【病中兪山甫敎授访别病起寄之】

  曲几团蒲记方丈君来问疾更夜雨匆匆别去一杯南北万事莫侵闲鬓发百年正要佳眠食最难忘此语重殷勤千金値 西崦路东岩石携手处今尘迹望东来犹有旧盟如日莫信蓬莱风浪隔垂天自有扶揺力对梅花一夜苦相思无消息

  又【饯郑衡州厚卿席上再赋】

  莫折荼■〈艹縻〉且留取一分春色还待得青梅如豆共伊同摘少日对花浑醉梦而今醒眼看风月恨牡丹笑我倚东风头如雪 榆荚钱菖蒲叶时节换繁华歇算怎禁风雨怎禁鹈鴂老冉冉兮花共柳是栖栖者蜂和蝶也不因春去有闲愁因离别

  又【送徐行仲抚干】

  絶代佳人曾一笑倾城倾国休更叹旧时青镜而今华发明日伏波堂上客老当益壮翁应说恨苦遭邓禹笑人来长寂寂 诗酒社江山笔松菊径云烟屐怕一觞一咏风流弦絶我梦横山孤鹤去觉来却与君相别记功名万里要吾身佳眠食

  又

  紫陌飞尘望十里雕鞍绣毂春未老已惊台榭瘦红肥绿睡雨海棠犹倚醉舞风杨柳难成曲问流莺能说故园无曾相熟 岩泉上飞鳬浴巢林下栖禽宿恨荼■〈艹縻〉开晚谩翻红玉莲社岂堪谈昨梦兰亭何处寻遗墨但羁怀空自倚秋千无心蹴

  又【卢国华由闽宪移漕建安陈端仁给事同诸公饯别余为酒困卧清涂堂上三鼔方醒国华赋词留别席上和韵】

  宿酒醒时算只有清愁而已人正在清涂堂上月华如洗纸帐梅花归梦觉莼羮鲈鲙秋风起问人生得意几何时吾归矣 君若问相思事料长在歌声里这情怀只是中年如此明月何妨千里隔顾君与我如此耳向樽前重约几时来江山美

  又【和卢国华】

  汉节东南看驷马光华周道须信是七闽还有福星来到庭草自生心意足榕阴不动秋光好问不知何处着君侯蓬莱岛 还自笑人今老空有恨萦怀抱记江湖十载厌持旌纛濩落我材无所用易除殆类无根潦但欲搜好语谢新词羞琼报

  又【山居即事】

  几个轻鸥来点破一泓澄绿更何处一双鸂鶒故来争浴细读离骚还痛饮饱看修竹何妨肉有飞泉日日供明珠五千斛 春雨满秧新谷闲日永眠黄犊看云连麦陇雪堆蚕簇若要足时今足矣以为未足何时足被野老相扶入东园枇杷熟

  又【和傅岩叟香月韵】

  半山佳句最好是吹香隔屋又还怪冰霜侧畔蜂儿成簇更把香来熏了月却教影去斜侵竹似神清骨冷住西湖何由俗 根老大穿坤轴枝夭袅蟠龙斛快酒兵长俊诗坛高筑一再人来风味恶两三杯后花缘熟记五更聨句失弥明龙衔烛

  又【寿赵茂嘉郎中前章记兼济仓事】

  我对君侯怪长见两眉阴德还梦见玉堂金阙姓名仙籍旧岁炊烟浑欲断被公扶起千人活算胸中除却五车书都无物 山左右溪南北花逺近云朝夕看风流杖屦苍髯如戟种柳已成陶令宅散花更满维摩室劝人间且住五千年如金石

  又【呈赵晋臣敷文】

  老子平生原自有金盘华屋还又要万间寒士眼前突兀一舸归来轻似叶两翁相对清如鹄到如今吾亦爱吾庐多松菊 人道是荒年谷还又似丰年玉甚等闲却为鲈鱼归速野鹤溪边留杖屦行人墙外听丝竹问近来风月几篇诗三千轴

  又【游清风峡和赵晋臣敷文韵】

  两峡崭岩问谁占清风旧筑满眼里云来鸟去涧红山绿世上无人供笑傲门前有客休迎肃怕凄凉无物伴君时多栽竹 风采妙凝冰玉诗句好余膏馥叹只今人物一夔应足人似秋鸿无定住事如飞弹须圆熟笑君侯陪酒又陪歌阳春曲

  木兰花慢【席上送张仲固帅兴元】

  汉中开汉业问此地是耶非握剑指三秦君王得意一战东归兴亡事今不见但山川满目涙沾衣落日边尘未断西风塞马空肥 一篇书是帝王师小试去征西更草草离筵匆匆去路愁满旌旗君思我回首处正江涵秋影雁初飞安得车轮四角不堪带减腰围

  又【滁州送范倅】

  老来情味减对别酒怯流年况屈指中秋十分好月不照人圆无情水都不管共西风只管送归船秋晚莼鲈江上夜深儿女灯前 征衫便好去朝天玉殿正思贤想夜半承明留教视草却遣筹边长安故人问我道愁肠殢酒只依然目断秋霄落雁醉来时响空弦

  又【题上饶州圃翠微楼】

  旧时楼上客爱把酒对南山笑白发如今天教放浪来往其间登楼更谁念我却回头西北望层栏云雨珠帘画栋笙歌雾鬓风鬟 近来堪入画图看父老愿公欢甚拄笏悠然朝来爽气正尔相关难忘使君后日便一花一草报平安与客携壶且醉雁飞秋影江寒

  又【寄题吴克明广文菊隐】

  路傍人怪问此隐者姓陶不甚黄菊如云朝吟暮醉唤不回头纵无酒成怅望只东篱搔首亦风流与客朝飡一笑落英饱便归休 古来尧舜有巢由江海去悠悠待说与佳人种成香草莫怨灵修我无可无不可意先生出处有如丘闻道问津人过杀鸡为黍相留

  水龙吟【旅次登楼作】

  楚天千里清秋水随天去秋无际遥岑逺目献愁供恨玉簪螺髻落日楼头断鸿声里江南游子把吴钩看了栏干拍徧无人会登临意 休说鲈鱼堪脍尽西风季鹰归未求田问舎怕应羞见刘郎才气可惜流年忧愁风雨树犹如此倩何人唤取红巾翠袖搵英雄泪

  又【甲辰岁寿韩南涧尚书】

  渡江天马南来几人真是经纶手长安父老新亭风景可怜依旧夷甫诸人神州沈陆几曾回首算平戎万里功名本是真儒事公知否 况有文章山斗对桐阴满庭清昼当年堕地而今试看风云犇走绿野风烟平泉草木东山歌酒待他年整顿乾坤事了为先生寿

  又【次年南涧用韵为仆与公生日相去一日再和以寿南涧】

  玉皇殿阁微凉看公重试熏风手高门画戟桐阴闻道青青如旧兰佩空芳蛾眉谁妒无言搔首甚年年却有呼韩塞上人争问公安否 金印明年如斗向中州锦衣行昼依然盛事貂蝉前后凤麟飞走富贵浮云我评轩冕不如杯酒待从公痛饮八千余岁伴庄椿寿

  又【盘园任子严安抚挂冠得请客以高风名其堂书来索词为赋】

  断崖千丈孤松挂冠更在松高处平生袖手故应休矣功名良苦笑指儿曹人间醉梦莫嗔惊汝问黄金余几旁人欲说田园记君推去 叹息乡旧隐对先生竹窗松戸一花一草一觞一咏风流杖屦野马尘埃扶揺下视苍然如许恨当年九老图中忘却花盘园林路

  又【寄题京口范南伯知县家文官花花白次绯次紫唐会要载学士院有之】

  倚栏看碧成朱等闲褪了香苞粉上林高选匆匆又换紫云衣润几许春风朝熏暮染为花忙损笑旧家桃李东涂西抺有多少凄凉恨 拟倩流莺说与记荣华易消难整人间得意千红万紫转头春尽白发怜君儒冠曾悞平生官冷算风流未减年年醉里把花枝问

  又【题雨岩岩类今所画观音普陁岩中有泉飞出如风雨声】

  普陀大士虚空翠岩记取飞来处蜂房万点似穿如碍玲珑窗戸石髓千年已垂未落嶙峋冰柱有怒涛声逺落花香在人疑是桃源路 又说春雷鼻息是卧龙弯环如许不然应是洞庭张乐湘灵来去我意长松倒生阴壑细吟风雨竟茫茫未晓只应白发是开山祖

  又【瓢泉】

  稼轩何必长贫放泉檐外琼珠泻乐天知命古来谁会行藏用舍人不堪忧一瓢自乐贤哉回也料当年尝问饭疏饮水何为是栖栖者 且对浮云山上莫匆匆去流山下苍颜照影故应零落轻裘肥马遶齿冰霜满怀芳乳先生饮罢笑挂瓢风树一鸣渠碎问何如哑

  又【用瓢泉韵戏仁和兼诸葛元亮且督和词】

  被公惊倒瓢泉倒流三峡词源泻长安纸贵流传一字千金争舍割肉怀归先生自笑又何廉也但衔杯莫问人间岂有如孺子长贫者 谁识稼轩心事似风乎舞雩之下回头落日苍茫万里尘埃野马更想隆中卧龙千尺髙吟纔罢倩何人与间雷鸣瓦釡甚黄锺哑

  又【用些语再韵瓢泉歌以饮客声语甚谐客皆为之釂】

  听兮清佩琼瑶些明兮镜秋毫些君无去此流昏涨腻生蓬蒿些虎豹甘人渴而汝宁猿猱些大而流江海覆舟如芥君无助狂涛些 路险兮山高些愧余独处无聊些冬槽春盎归来为我制松醪些其外芬芳团龙片凤煮云膏些古人兮既往嗟余之乐乐箪瓢些

  又【过南涧双溪楼】

  举头西北浮云倚天万里须长剑人言此地夜深长见斗牛光焰我觉山高潭空水冷月明星淡待燃犀下看凭栏却怕风雷怒鱼龙惨 峡束苍江对起过危楼欲飞还敛元龙老矣不妨高卧冰壶凉簟千古兴亡百年悲笑一时登览问何人又缷片帆沙岸系斜阳缆

  又【爱李延年歌淳于髠语今为词庶几高唐神女洛神赋之意云】

  昔时曾有佳人翩然絶世而独立未论一顾倾城再顾又倾人国宁不知倾城倾国佳人难再得看行云行雨朝朝暮暮阳台下襄王侧 堂上更阑烛灭记主人留髠送客合樽促坐罗襦襟解微闻芗泽当此之时止乎礼义不淫其色但啜其泣矣啜其泣矣又何嗟及

  又【别傅先之提举时先之有召命】

  只愁风雨重阳思君不见令人老行期定否征车几辆去程多少有客书来长安却早传闻追诏问归来何日君家旧事直须待为霖了 从此兰生蕙长吾谁与玩兹芳草自怜拙者功名相避去如飞鸟只有良朋东阡西陌安排似巧到如今巧处依然又拙把平生笑

  又

  老来曾识渊明梦中一见参差是觉来幽恨停觞不御欲歌还止白发西风折腰五斗不应堪此问北窗高卧东篱自醉应别有归来意 须信此翁未死到如今凛然生气吾侪心事古今长在高山流水富贵他年直饶来晚也应无味甚东山何事当时也道为苍生起

  摸鱼儿【淳熙己亥自湖北漕移湖南同官王正之置酒小山亭赋】

  更能消几番风雨匆匆春又归去惜春长怕花开早何况落红无数春且住见说道天涯芳草无归路怨春不语算只有殷勤画檐蛛网尽日惹飞絮 长门事凖拟佳期又误蛾眉曾有人妒千金曾买相如赋脉脉此情谁欣君莫舞君不见玉环飞燕皆尘土闲愁最苦休去倚危栏斜阳正在烟柳断肠处

  又【观潮上叶丞相】

  望飞来半空鸥鹭须臾动地鼙鼓截江组练驱山去鏖战未收貔虎朝又暮悄惯得吴儿不怕蛟龙怒风波平步看红斾惊飞跳鱼直上蹙踏浪花舞 凭谁问万里长鲸吞吐人间儿戱千弩滔天力倦知何事白马素车东去堪恨处人道是属镂怨愤足千古功名自误谩教得陶朱五湖西子一舸弄烟雨

  又【雨岩有石状甚怪取离骚九歌名曰山鬼因赋摸鱼儿改名山鬼謡】

  问何年此山来此西风落日无语看君似是羲皇上直作太虚名汝溪上住算只有红尘不到今犹古一杯谁举笑我醉呼君崔嵬未起山鸟覆杯去 须记取昨夜龙湫风雨门前石浪掀舞四更山鬼吹灯啸惊倒世间儿女依然处还问我清游杖屦公良苦神交心许待万里携君鞭笞鸾凤送我逺游赋【石浪庵外巨石也长三十余丈】

  西河【送钱仲畊自江西漕移守婺州】

  西江水道是江西人泪无情却解送行人月明千里从今日日倚高楼伤心烟树如荠会君难别君易草草不如人意十年着破绣衣茸种成桃李问君可是厌承明东方鼔吹千骑 对梅花更消一醉看明年调鼎风味老病自怜憔悴过吾庐定有幽人相问岁晚渊明归来未

  永遇乐【送陈仁和自汴东归陈至上饶之一年得子甚喜】

  紫陌长安看花年少无限歌舞白发怜君寻芳较晚卷地惊风雨问君知否鸱夷载酒不似并瓶身误细思量悲欢梦里觉来总无寻处 芒鞋竹杖天教还了千古玉楼佳句落魄东归风流赢得掌上明珠去起看青镜南冠好在拂了旧时尘土向君道云霄万里这回稳步

  又【梅雪】

  怪底寒梅一枝雪里只恁愁絶问讯无言依稀似妒天上飞英白江上一夜琼瑶万顷此段如何妒得细看来风流添得自家越样标格 晚来楼上对花临镜学作半点妆额着意争妍那知却有人妒花颜色无情休问许多般事且自访梅踏雪待行过溪桥夜半更邀素月

  又【戏赋辛字送茂嘉十二弟赴调】

  烈日秋霜忠肝义胆千载家谱得姓何年细参辛字一笑君听取艰辛做就悲辛滋味总是辛酸辛苦更十分向人辛辣椒桂捣残堪吐 世间应有芳甘浓美不到吾家门戸比着儿曹累累却有金印光垂组付君此事从今直上休忆对床风雨但赢得鞾绞绉面记余戏语

  又【检校停云新种杉松戏作时欲作亲旧报书纸笔偶为大风吹去未章因及之】

  投老空山万松手种政尔堪叹何日成阴吾年有几似见儿孙晚古来池馆云烟艹棘长使后人凄断想当年良辰已恨夜阑酒空人散 停云高处谁知者予万事不关心眼梦觉东窗聊复尔尔起欲题书简霎时风怒倒翻笔砚天也只教吾懒又何事催诗雨急片云斗暗

  又【京口北固亭怀古】

  千古江山英雄无觅孙仲谋处舞榭歌台风流总被雨打风吹去斜阳草树寻常巷陌人道宋公曽住想当年金戈铁马气吞万里如虎 元嘉草草封狼居胥赢得仓皇北顾四十三年望中犹记灯火扬州路可堪回首佛狸祠下一片神鸦社鼓凭谁问廉颇老矣尚能饭否

  归朝欢【灵山齐庵菖蒲港皆长松茂林独野樱花一株山上盛开照映可爱不数日风雨催败殆尽意有感因效介庵体为赋且以菖蒲绿名之丙辰岁三月三日也】

  山下千林花太俗山上一枝看不足春风正在此花边菖蒲自蘸清溪绿与花同草木问谁风雨飘零速莫悲歌夜深岩下惊动白云宿 病怯残年频自卜老爱遗篇难细读苦无妙手画于菟人间雕刻真成鹄梦中人似玉觉来更忆腰如束许多愁问君有酒何不曰丝竹

  又【寄题三山郑元英巢经楼楼之侧有尚友斋欲借书者就斋中取读书不借出】

  万里康成西走蜀药市船归书满屋有时光彩射星躔何人汗简雠天禄好之宁有足请看良贾藏金玉记斯文千年未丧四壁闻丝竹 试问辛勤携一束何以牙签三万轴古来不作借人痴有朋只就芸窗读忆君清梦熟觉来笑我便便腹倚危楼人间谁舞扫地八风曲

  又【题赵晋臣敷文积翠岩】

  我笑共工缘底怒触断峩峩天一柱补天又笑女娲忙却将此石投闲处野烟荒草路先生拄杖来看汝倚苍苔摩挲试问千古几风雨 长被儿童敲火苦时有牛羊磨角去霍然千丈翠岩屏锵然一滴甘泉乳结亭三四五会相暖热携歌舞细思量古来寒士不遇有时遇

  又【丁卯岁寄题眉山李参政石林】

  见说岷峨千古雪都作岷峨山上石君家右史老泉公千金未尽勤收拾一堂真古石间庭更与天突兀记当时长编笔砚日日云烟湿 野老时逢山鬼泣谁夜持山去难觅有人依样入明光玉阶之下岩岩立琅玕无数碧风流不数平泉物欲重吟青葱玉树须倩子云笔

  一枝花【醉中戏作】

  千丈擎天手万卷悬河口黄金腰下印大如斗更千骑弓刀挥霍遮前后百计千方乆似鬬草儿童赢个他家偏有 算枉了双眉长皱白髪空回首那时间说向山中友看丘陇牛羊更辨贤愚否且自栽花柳怕有人来但只道今朝中酒

  喜迁莺【谢赵晋臣敷文赋芙蓉词见寿用韵为谢】

  暑风凉月爱亭亭无数绿衣持节掩冉如羞参差似妒拥出芙渠花发步衬潘娘堪恨貌比六郎谁洁添白鹭晚晴时公子佳人并列 休说搴木末当日灵均恨与君王别心阻媒劳交疎怨极恩不甚兮轻絶千古离骚文字至今犹未歇都休问但千杯快饮露荷翻叶

  瑞鹤仙【寿上饶倅洪萃之时摄郡事且将赴漕举】

  黄金堆到斗怎得似长年画堂劝酒蛾眉最明秀向水沈烟里两行红袖笙歌拥就争说道明年时候被姮娥做了殷懃仙桂一枝入手 知否风流别驾近日人呼文章太守天长地乆岁上乃翁寿记从来人道相门出相金印累累尽有但直须周公拜前鲁公拜后

  又【赋梅】

  雁霜寒透幙正护月云轻嫩冰犹薄溪奁照梳掠想含香弄粉艳妆难学玉肌瘦弱更重重龙销衬着倚东风一笑嫣然转盼万花羞落 寂寞家山何在雪后园林水边楼阁瑶池旧约邻翁更仗谁托粉蝶儿只是寻桃觅柳开遍南枝未觉但伤心冷落黄昏数声画角

  又【南涧双溪楼】

  片帆何太急望一点须臾去天咫尺舟人好看客似三峡风涛嵯峨剑戟溪南溪北正遐想幽人泉石看渔樵指点危楼却羡舞筵歌席 叹息山林钟鼎意倦情迁本无欣戚转头陈迹飞鸟外晚烟碧问谁怜旧日南楼老子最爱月明吹笛到而今扑面黄尘欲归未得

  声声慢【旅次登楼作】

  征埃成阵行客相逢都道幻出层楼指点檐牙高处浪涌云浮今年太平万里罢长淮千骑临秋凭栏望有东南佳气西北神州 千古怀嵩人去还笑我身在楚尾吴头看取弓刀陌上车马如流从今赏心乐事剩安排酒令诗筹华胥梦愿年年人似旧游

  又【嘲红木犀余儿时尝入京师禁中凝碧池因书当时所见】

  开元盛日天上栽花月殿桂影重重十里芬芳一枝金粟玲珑管弦凝碧池上记当时风月愁侬翠华逺但江南草木烟锁深宫 只为天姿冷澹被西风酝酿彻骨香浓枉学丹蕉叶底偷染妖红道人取次装束是自家香底家风又怕是为凄凉长在醉中

  又【送上饶黄倅职满赴调】

  东南形胜人物风流白头见君恨晚便觉君家叔度去人未逺长怜士元骥足道直须别驾方展问个里待怎生销杀胸中万巻 况有星辰剑履是传家合在玉皇香案零落新诗我欠可人消遣留君再三不住便直饶万家涙眼怎抵得这睂间黄色一点

  又【櫽括渊明停云诗】

  停云霭霭八表同昏尽日时雨蒙蒙搔首良朋门前平陆成江春醪湛湛独抚恨弥襟闲饮东窗空延伫恨舟车南北欲往何从 叹息东园佳树列初荣枝叶再竞春风日月于征安得促席从容翩翩何处飞鸟息庭柯好语和同当年事问几人亲友似翁

  八声甘州【寿建康帅胡长文给事时方阅拆红梅之舞且有锡带之宠】

  把江山好处付公来金陵帝王州想今年燕子依然认得王谢风流只用平时樽爼弹压万貔貅依旧钧天梦玉殿东头 看取黄金横带是明年凖拟丞相封侯有红梅新唱香阵巻温柔且画堂通宵一醉待从今更数八千秋公知否邦人香火夜半纔收

  又【夜读李广传不能寐因念晁楚老杨民瞻约同居山间戏用李广事赋以寄之】

  故将军饮罢夜归来长亭解雕鞍恨灞陵醉尉匆匆未识桃李无言射虎山横一骑裂石响惊弦落魄封侯事岁晚田园 谁向桑麻杜曲要短衣匹马移住南山看风流慷慨谈笑过残年汉开边功名万里甚当时健者也曾闲纱窗外斜风细雨一阵轻寒

  雨中花慢【登新楼有怀赵昌甫徐斯逺韩仲正吴子似杨民瞻】

  旧雨常来今雨不来佳人偃蹇谁留幸山中芋栗今岁全收贫贱交情落落古今吾道悠悠怪新来却见文友离骚诗发秦州 功名只道无之不乐那知有更堪忧怎奈向儿曹抵死唤不回头石卧山前认虎蚁喧床下闻牛为谁西望凭栏一饷却下层楼

  又【呉子似见和再用韵为别】

  马上三年醉帽吟鞍锦囊诗巻长留怅溪山旧管风月新收明便关河杳杳去应日月悠悠笑千篇索价未抵蒲桃五斗凉州 停云老子有酒盈樽琴书端可消忧浑未解倾身一饱淅米矛头心似伤弓塞雁身如喘月吴牛晓天凉夜月明谁伴吹笛南楼

  汉宫春【立春】

  春已归来看美人头上袅袅春幡无端风雨未肻收尽余寒年时燕子料今宵梦到西园浑未辨黄柑荐酒更传青韮堆盘 却笑东风从此便熏梅染槚更没些闲闲时又来镜里转变朱颜清愁不断问何人会解连环生怕见花开花落朝来塞雁先还

  又【即事】

  行李溪头有钓车茶具曲几团蒲儿童认得前度过者篮舆时时照影甚此身徧满江湖怅野老行歌不住定堪与语难呼 一自东篱揺落问渊明岁晚心赏何如梅花政自不恶曾有诗无知翁止酒待重教莲社人沽空怅望风流已矣江山特地愁余

  又【会稽蓬莱阁怀古】

  秦望山头看乱云急雨倒立江湖不知云者为雨雨者云乎长空万里被西风变灭须臾回首听月明天籁人间万窍号呼 谁向若耶溪上倩美人西去麋鹿姑苏至今故国人望一舸归欤岁云暮矣问何不鼓瑟吹竽君不见王亭谢馆冷烟寒树啼乌

  又【会稽秋风亭观雨】

  亭上秋风记去年袅袅曾到吾庐山河举目虽异风景非殊功成者去觉团扇便与人疎吹不断斜阳依旧茫茫禹迹都无 千古茂林犹在甚风流章句解拟相如只今木落江冷眇眇愁余故人书报莫因循忘却莼鲈谁念我新凉灯火一编太史公书

  又【答李兼善提举和章】

  心似孤僧更茂林修竹山上精庐维摩定自非病谁遣文殊白头自惜叹相逢语密情疎倾葢处论心一语只今还有公无 最喜阳春妙句被西风吹堕金玉铿如夜来归梦江上父老欢余荻花深处唤儿童炊火烹鲈归去也絶交何必更修山巨源书

  又【答吴子似总干和章】

  达则青云便玉堂金马穷则芧庐逍遥小大自适鹏鷃何殊君如星斗灿中天密密疎疎荒艹外自怜萤火清光暂有还无 千古季鹰犹在向松江道我问讯何如白头爱山下去翁定嗔余人生谩尔岂食鱼必脍之鲈还自笑君诗频觉胷中万巻藏书

  满庭芳【和丞相景伯韵】

  倾国无媒入宫见妒古来颦损蛾眉看公如月光彩众星稀袖手高山流水听羣蛙鼔吹荒池文章手直须补衮藻火灿宗彛 痴儿公事了吴蚕缠绕自吐余丝幸一枝麤稳三径新治且约湖边风月功名事欲使谁知都休问英雄千古荒草没残碑

  又【和洪丞相景伯韵呈景卢内翰】

  急管哀弦长歌慢舞连娟十样宫睂不堪红紫风雨晓稀稀惟有杨花飞絮依旧是萍满芳池酴醿在青虬快剪插遍古铜彛 谁将春色去鸾胶难觅弦断蛛丝恨牡丹多病也费医治梦里寻春不见空肠断怎得春知休惆怅一觞一咏须刻右军碑

  又【游豫章东湖再用韵】

  柳外寻春花边得句怪公喜气轩睂阳春白雪清唱古今稀曾是金銮旧客记凤凰独遶天池挥毫罢天颜有喜催赐尚方彛【公在词掖尝拜尚方宝彛之赐】 只今江山逺钧天梦觉清涙如丝算除非痛把酒疗花治明日五湖佳兴扁舟去一笑谁知溪堂好且■〈扌弃〉一醉倚杖读韩碑

  又【和章泉赵昌父】

  西崦斜阳东江流水物华不为人流琤然一叶天下已知秋屈指人间得意问谁是骑鹤扬州君知我从来雅兴未老已沧洲 无竆身外事百年能几一醉都休恨儿曹抵死谓我心忧况有溪山杖屦阮籍辈须我来游还堪笑机心早觉海上有惊鸥

  六么令【用陆氏事送玉山令陆德隆侍亲东归呉中】

  酒羣花队攀得短辕折谁怜故山归梦千里莼羮滑便整松江一棹检点能言鸭故人欲接醉怀霜橘堕地金圆醒时觉 长喜刘郎马上肻听诗书说谁对叔子风流直把曹刘压更看君侯事业不负平生学离肠愁怯送君归后细写茶经煮香雪

  又【再用前韵】

  倒冠一笑华发玉簪折阳关自来凄断却怪歌声滑放浪儿童归舍莫恼比邻鸭水连山接看君归兴如醉中醒梦中觉 江上吴侬问我一一烦君说忍使樽酒频空剩欠珍珠压手把渔竿未稳长向沧浪学问愁谁怯可堪杨柳先作东风满城雪

  醉翁操【顷余从范先之求观家谱见其冠冕蝉聨世载勲德先之甚文而好修意其昌未艾也时覃庆勲臣子孙无见任者命官之先是屡试甄录元佑党籍家合是二者先之应仕矣将告诸朝行有日请余作诗以赠属余避谤持此戒甚力不得如先之之请又念先之与余游八年日从事诗酒间意相得欢甚于其别也何独能恝然顾先之长于楚词而妙于琴辄拟醉翁操为之词以叙别异时先之绾组东归仆当为买羊沽酒先之为鼔一再行以为山中盛事云】

  长松之风如公肻余从山中人心与吾兮谁同湛湛千里之江上有枫噫送子东【按东字上脱于字】望君之门兮九重女无悦已谁适为容 不龟手药或一朝【按朝字下脱兮字】取封昔与游兮皆童我独穷兮今翁一鱼兮一龙劳心兮忡忡噫命与时逢子之所食兮万锺

  丑奴儿近【博山道中效李易安体】

  千峰云起骤雨一霎儿价更逺树斜阳风景怎生图画青旗卖酒山那畔别有人家只消山水光中无事过者一霎 午睡醒时松窗竹戸万千潇洒野鸟飞来又是一(阙)

  洞仙歌

  飞流万壑共千岩争秀孤负平生弄泉手叹轻衫帽【按帽字上当脱一字】几许红尘还自喜濯发沧浪依旧 人生行乐耳身后虚名何似生前一杯酒便此地结吾庐待学渊明更手种门前五柳且归去父老约重来问如此青山定重来否【按又是一以上系不全之丑奴儿近飞流万壑以下乃全首洞仙歌毛氏误合为一今改正】

  又【浮石山庄余友月湖道人何同叔之别墅也山类罗浮故以名同叔尝作游山次序榜示余且索词为赋洞仙歌以遗之同叔顷游罗浮遇一老人龎眉幅巾语同叔云当有晚年之契葢仙云】

  松关桂岭望菁葱无路费尽银钩榜佳处怅空山岁晚窈窕谁来须着我醉卧石楼风雨 仙人琼海上握手当年笑许君携半山去劖疉嶂巻飞泉洞府凄凉又却怕先生多取怕夜半罗浮有时还好长把云烟再三遮住

  又【开南楼初成赋】

  婆娑欲舞怪青山欢喜分得清溪半篙水记平沙鸥鹭落日渔樵湘江上风景依然如此 东篱多种菊待学渊明饮酒诗情不相似十里涨春波一棹归来只做个五湖范蠡是则是一般弄扁舟争知道他家有个西子

  又【赵晋臣和李能伯韵属余同和赵以兄弟有职名为宠词中颇叙其盛故末章有裂土分茅之句】

  旧交贫贱大半成新贵冠葢门前几行李看匆匆哂笑争出山来凭谁问小草何如逺志 悠悠今古事得丧乘除暮四朝三又何异任掀天事业冠古文章有几个笙歌晚岁况满屋貂蝉未为荣记裂土分茅是公家世

  又【丁卯八月病中作】

  贤愚相去算其间能几差以毫厘缪千里细思量义利舜跖之分孳孳者等是鸡鸣而起 味甘终易坏岁晚还知君子之交淡如水一饷聚飞蚊其响如雷深自觉昨非今是羡安乐窝中泰和汤更剧饮无过半醺而已

  蓦山溪【停云竹径初成】

  小桥流水欲下前溪去唤起故人来伴先生风烟杖屦行穿窈窕时厯小﨑岖斜带水半遮山翠竹栽成路 一尊遐想剩有渊明趣山上有停云看山下蒙蒙细雨野花啼鸟不肻入诗来还一似笑翁诗自没安排处

  又【赵昌父赋一丘一壑格律高古因效其体】

  饭疏饮水客莫嘲吾拙高处看浮云一丘壑中间甚乐功名妙手壮也不如人今老矣尚何堪堪钓前溪月 病来止酒辜负鸬鹚杓岁晚念平生待都与邻翁细说人间万事先觉者贤乎深雪里一枝开春事梅先觉

  最高楼【醉中有索四时歌为赋】

  长安道投老倦游归七十古来稀藕花雨湿前湖夜桂枝风澹小山时怎消除须殢酒更吟诗 也莫向竹边辜负雪也莫向栁边辜负月闲过了总成痴种花事业无人问惜花情绪只天知笑山中云出早鸟归迟

  又【和杨民瞻席上用韵赋牡丹】

  西园买谁载万金归多病胜游稀风斜画烛天香夜凉生翠葢酒酣时待重寻居士谱谪仙诗 看黄底御袍元自贵看红底状元新得意如斗大笑花痴汉妃翠被娇无奈吴姬粉阵恨谁知但纷纷蜂蝶乱笑春迟

  又【送丁怀忠教授入广渠赴调都下乆不得书或谓从人辟置或谓复归闽中矣】

  相思苦君与我同心鱼没雁沈沉是梦松后追轩冕是化鹤后去山林对西风且怅望到如今 待不饮奈何君有恨待痛饮奈何吾又病君起舞试重斟苍梧云外湘妃泪鼻亭山下鹧鸪吟早归来流水外有知音

  又【庆洪景卢内翰七十】

  金闺彦睂寿正如川七十具华筵乐天诗句香山里杜陵酒债曲江边问何如歌窈窕舞婵姢 更十岁太公方出将又十岁武公方入相留盛事看明年直须腰下添金印莫教头上欠貂蝉向人间长富贵地行仙

  又【闻前冈周氏旌表有期】

  君听取尺布尚堪缝斗粟也堪舂人间朋友犹能合古来兄弟不相容棣华诗悲二叔吊周公 长叹息脊令原上急重叹息豆其煎正泣形则异气应同周家五世将军后前冈千载义居风看明朝丹凤诏紫泥封

  又【客有败碁者代赋梅】

  花知否花一似何郎又似沈东阳瘦棱棱地天然白冷清清地许多香笑东君还又向北枝忙 着一阵霎时间底雪更一个缺些儿底月山下路水边墙风流怕有人知处影儿守定竹旁厢且饶他桃李趂少年场

  又【用韵畣赵晋臣敷文】

  花好处不趂绿衣郎缟袂立斜阳面皮儿上因谁白骨头儿里几多香尽饶他心似铁也须忙 甚唤得雪来白倒雪便唤得月来香杀月谁立马更窥墙将军止渴山南畔相公调鼎殿东厢忒高才经济地战争场

  又【吾拟乞归犬子以田产未置止我赋此骂之】

  吾衰矣须富贵何时富贵是危机暂忘设醴抽身去未曾得米弃官归穆先生陶县令是吾师 待葺个园儿名佚老更作个亭儿名亦好闲饮酒醉吟诗千年田换八百主一人口插几张匙咄豚奴愁产业岂佳儿

  上西平【会稽秋风亭观雪】

  九衢中杯逐马带随车问谁解爱惜琼华何如竹外静聴窣窣蠏行沙自怜是海上山头种玉人家 纷如鬬娇如舞纔整整又斜斜要图画还我渔蓑冻吟应笑羔儿无分谩煎茶起来极目向弥茫数尽归鸦

  又【送杜叔高】

  恨如新新恨了又重新看天上多少浮云江南好景落花时节又逢君夜来风雨春未归似欲留人 樽如海人如玉诗如锦笔如神更能几字尽殷勤江天日暮何时重与细论文绿杨阴里听阳关门掩黄昏

  稼轩词巻二

  ●钦定四库全书

  稼轩词巻三

  (宋)辛弃疾 撰

  新荷叶【和赵徳庄韵】

  人已归来杜鹃欲劝谁归緑树如云等闲付与莺飞兔葵燕麦问刘郎几度沾衣翠屏幽梦觉来水绕山围 有酒重携小园随意芳菲往日繁华而今物是人非春风半面记当年初识崔徽南云雁少锦书无个因依

  又【再和前韵】

  春色如愁行云带雨纔归春意长闲游丝尽日低飞闲愁几许更晩风特地吹衣小窓人静棊声似解重围 光景难携任他鶗鴂芳菲细数前愆不应诗酒皆非知音弦断笑渊明空抚余徽停杯对影待邀明月相依

  又【再题傅岩叟悠然阁】

  种豆南山零落一顷为萁岁晩渊明也吟草盛苖稀风流刬地向樽前采菊题诗悠然忽见此山正绕东篱 千载襟期髙情想象当时小阁横空朝来翠扑人衣是中真趣问骋懐游目谁知无心出岫白云一片孤飞

  又【赵茂嘉赵晋臣和韵见约初秋访悠然再用韵】

  物盛还衰眼看春叶秋萁贵贱交情翟公门外人稀酒酣耳热又何须幽愤裁诗茂林修竹小园曲径疎篱 秋以为期西风黄菊开时拄杖敲门任他颠倒裳衣去年堪笑醉题诗醒后方知而今东望心随去鸟先飞

  又【上巳日呉子似谓古今无此词索赋】

  曲水流觞赏心乐事良辰兰蕙光风转头天气还新明眸皓齿看江头有女如云折花归去绮罗陌上芳尘 能几多春试聴啼鸟殷勤对景兴懐向来爱乐纷纷且题醉墨似兰亭别叙时人后之览者亦将有感斯文

  御街行【无题】

  阑干四面山无数供望眼朝与暮好风吹雨过山来吹尽一帘烦暑纱厨如雾簟纹如水别有生凉处 氷肌不受铅华污更旎旎真香聚临风一曲最妖娆唱得行云且住藕花都放木犀开后待与乘鸾去

  又【山中问盛复之提干行期】

  山城甲子冥冥雨门外青泥路杜鵍只是等闲啼莫被他催归去垂杨不语行人去后也会风前絮 情知梦里寻鹓鹭玉殿追班处怕君不饮太愁生不是苦留君住白头笑我年年送客自叹春江渡

  祝英台近【晩春】

  寳钗分桃叶渡烟栁暗南浦怕上层楼十日九风雨断肠点点飞红都无人管更谁劝流莺声住 鬓边觑试把花卜归期才簮又重数罗帐灯昏哽咽梦中语是他春带愁来春归何处却不解带将愁去

  又【与客饮瓢泉客以泉声喧静为问余醉未及畣或者以蝉噪林逾静代对意甚美矣翌日为此赋词以褒之】

  水纵横山逺近拄杖占千顷老眼羞明水底看山影试教水动山揺吾生堪笑似此个青山无定 一瓢饮人间翁爱飞泉来寻个中静遶屋声喧怎做静中镜我眠君且归休维摩方丈待天女散花时问

  婆罗门引【别杜叔髙叔髙长于楚词】

  落花时节杜鹃声里送君归未消文字湘累只怕蛟龙云雨后会渺难期更何人念我老大伤悲 已而已而算此意只君知记取岐亭买酒云洞题诗争如不见纔相见便有别离时千里月两地相思

  又【用韵别郭逢道】

  緑阴啼鸟阳闗未彻早催归歌珠凄断累累回首海山何处千里共襟期叹髙山流水弦断堪悲 中心怅而似风雨落花知更拟停云君去细和陶诗见君何日待琼林宴罢醉归时人争看寳马来思

  又【用韵畣傅先之时傅先之宰龙泉归】

  龙泉佳处种花满县却东归腰间玉若金累须信功名富贵长与少年期恨髙山流水古调今悲 卧龙暂而算天上有人知最好五十学易三百篇诗男儿事业看一日须有致君时端的了休便寻思

  又【用韵畣赵晋臣敷文】

  不堪鶗鴂早教百草放春归江头愁杀尘累却觉君侯雅句千载共心期便留春甚乐乐了须悲 琼而素而被花恼只莺知正要千锺角酒五字裁诗江东日暮道绣斧人去未多时还又要玉殿论思

  又【赵晋臣敷文张灯甚盛索赋偶忆旧游末章因及之】

  落星万点一天寳焰下层霄人间迭作仙鳌冣爱金莲侧畔红粉袅花梢更鸣鼍击鼓喷玉吹箫 曲江画桥记花月可怜宵想见闲愁未了宿酒纔消东风揺荡似杨栁十五女儿腰人共栁那个无聊

  千年调【开山径得石壁因名曰苍壁事出望外意天之所赐邪喜而赋】

  左手把青霓右手挟明月吾使丰隆前导呌开阊阖周游上下径入寥天一览玄圃万斛泉千丈石 钧天广乐燕我瑶之席帝饮予觞甚乐赐汝苍壁璘珣突兀正在一丘壑余马懐仆夫悲下恍惚

  又【蔗庵小阁名曰巵言作此词以嘲之】

  巵酒向人时和气先倾倒最要然然可可万事称好滑稽坐上更对■〈氏鸟〉夷笑寒与热总随人甘国老 少年使酒出口人嫌抝此个和合道理近日方晓学人言语未会十分巧看他们得人怜秦吉了

  粉蝶儿【和赵晋臣敷文赋落梅】

  昨日春如十三女儿学绣一枝枝不教花瘦甚无情便下得雨僝风僽向园林铺作地衣红绉 而今春似轻薄荡子难久记前时送春归后把春波都酿作一江醇酎约清愁杨栁岸边相候

  千秋岁【金陵寿史帅致道时有版筑役】

  塞垣秋草又报平安好樽爼上英雄表金汤生气象珠玉霏谭笑春近也春花得似人难老 莫惜金樽倒鳯诏看看到留不住江东小从容帷幄里整顿乾坤了千百岁从今尽是中书考

  江神子【和人韵】

  剩云残日弄阴晴晚山明小溪横枝上绵蛮休作断肠声但是青山山下路青到处总堪行 当年彩笔赋芜城忆平生若为情试把灵槎归路问君平花底夜深寒较甚须■〈扌弃〉却玉山倾

  又

  梨花着雨晚来晴月胧明泪纵横绣阁香浓深锁鳯箫声未必人知春意思还独自遶花行 酒兵昨夜压愁城太狂生转闗情写尽胸中磈磊未全平却与平章珠玉价看醉里锦囊倾

  又【和陈仁和韵】

  玉箫声逺忆骖鸾几悲欢带罗寛且对花前痛饮莫留残归去小窓明月在云一缕玉千竿 呉霜应点鬓云斑绮窓闲梦连环说与东风归兴有无间芳草姑苏台下路和泪看小屏山

  又

  寳钗飞鳯鬓惊鸾望重欢水云寛肠断新来翠被粉香残待得来时春尽也梅结子笋成竿 湘筠帘卷泪痕斑佩声闲玉垂环个里温柔容我老其间却笑平生三羽箭何日去定天山

  又【和人韵】

  梅梅栁栁鬬纤秾乱山中为谁容试着春衫依旧怯东风何处踏青人未去呼女伴认骄骢 儿家门戸几重重记相逢画楼东眀日重来风雨暗残红可惜行云春不管裙带褪鬓云松

  又【博山道中书王氏璧】

  一川松竹任横斜有人家被云遮雪后疎梅时见两三花比着桃源溪上路风景好不争些 旗亭有酒径须賖晩寒咱怎禁他醉里匆匆归骑自随车白发苍颜吾老矣只此地是生涯

  又【闻蝉蛙戏作】

  簟铺湘竹帐笼纱醉眠些梦天涯一枕惊回水底沸鸣蛙借问喧天成鼓吹良自苦为官耶 心空喧静不争多病维摩意云何扫地烧香且看散天花斜日緑阴枝上噪还

  又【问是蝉么又送元济之归豫章】

  乱云扰扰水潺潺笑溪山几时闲更觉桃源人去隔僊凡【桃源乃王氏酒垆与济之送别处】万壑千岩楼外雪琼作树玉为栏 倦游回首且加餐短篷寒画图间见说娇颦拥髻待君看二月东湖湖上路官栁嫩野梅残

  又【赋梅寄余叔良】

  暗香横路雪垂垂晚风吹晓风吹花意争春先出岁寒枝毕竟一年春事了縁太早却成迟 未应全是雪霜姿欲开时未开时粉面朱唇一半点胭脂醉里谤花花莫恨浑冷澹有谁知

  又【别呉子似末寄潘徳久】

  看君人物汉西都过吾庐笑谈初便说公卿元自要通儒一自梅花开了后长怕说赋归欤 而今别恨满江湖怎消除算何如杖屦当时闻早放教疎今代故交新贵后浑不寄数行书

  又【侍者请先生赋词自寿】

  两轮屋角走如梭大忙些怎禁他拟倩何人天上劝羲娥宛似从容来左右倾美酒聴髙歌 人生今古不消磨积教多似尘沙未必坚牢刬地实堪嗟莫道长生学不得学得后待如何

  又【和李能伯韵呈赵晋臣】

  五云髙处望西清玉阶升棣华荣筑屋溪头楼观画难成长夜笙歌还起问谁放月又西沉 家传鸿寳旧知名看长生奉严宸且把风流水北画耆芙咫尺西风诗酒社石鼎句要弥明

  青玉案【元夕】

  东风夜放花千树更吹落星如雨寳马雕车香满路鳯箫声动玉壶光转一夜鱼龙舞 蛾儿雪栁黄金缕笑语盈盈暗香去众里寻它千百度蓦然回首那人却在灯火阑珊处

  感皇恩【滁州寿范倅】

  春事到清明十分花栁唤得笙歌劝君酒酒如春好春色年年依旧青春元不老君知否 席上看君竹清松瘦待与青春鬬长久三山归路明日天香襟袖更持金盏起为君寿

  又

  七十古来稀人人都道不是阴功怎生到松姿虽瘦偏耐雪寒霜晓看君双鬓底青青好 楼雪初晴庭闱嬉笑一醉何妨玉壶倒从今康健不用灵丹仙草更看一百岁人难老

  又【庆婶母王恭人七十】

  七十古来稀未为希有须是荣华更长久满床靴笏罗列儿孙新妇精神浑似个西王母 遥想画堂两行红袖妙舞清歌拥前后大男小女逐个出来为寿一个一百岁一杯酒

  又【读庄子闻朱晦庵即世】

  案上数编书非庄即老会说忘言始知道万言千句不自能忘堪笑今朝梅雨霁青天好 一壑一丘轻衫短帽白发多时故人少子云何在应有玄经遗草江河流日夜何时了

  又【寿铅山陈丞及之】

  富贵不须论公应自有且把新词祝公寿当年僊桂父子同攀希有人言金殿上他年久 冠冕在前周公拜手同日催班鲁公后此时人羡緑鬓朱颜依旧亲朋来贺喜休辞酒

  行香子【三山作】

  好雨当春要趂归耕况而今已是清明小窓坐地侧聴檐声恨夜来风夜来月夜来云 花絮飘零莺燕丁宁怕妨侬湖上闲行天心肯后费甚心情放霎时阴霎时雨霎时晴

  又【山居客至】

  白露园蔬碧水溪鱼笑先生钓罢还锄小窓髙卧风展残书看北山移盘谷序辋川图 白饭青刍赤脚长须客来时酒尽重沽聴风聴雨吾爱吾庐叹苦无心刚自瘦此君疎

  又【博山戏呈赵昌甫韩仲止】

  少日甞闻富不如贫贵不如贱者长存由来至乐総属闲人且饮瓢泉弄秋水看停云 岁晚情亲老语弥真记前时观我殷懃都休殢酒也莫论文把相牛经种鱼法教儿孙

  又【云严道中】

  云岫如簮野涨挼蓝向春阑緑醒红酣青裙缟袂两两三三把曲生禅玉版局一时叅 拄杖弯环过眼嵌岩岸轻乌白发鬖鬖他年来种万桂千杉聴小绵蛮新格磔旧呢喃

  一剪梅【游蒋山呈叶丞相】

  独立苍茫醉不归日暮天寒归去来兮探梅踏雪几何时今我来思杨杨依依 白石岗头曲岸西一片闲愁芳草萋萋多情山鸟不须啼桃李无言下自成蹊

  又【中秋无月】

  忆对中秋月桂丛花在杯中月在杯中今宵楼上一尊同云湿纱窓雨湿纱窓 浑欲乘风问化工路也难通信也难通满堂惟有烛花红杯且从容歌且从容

  踏莎行【庚戍中秋后二夕带湖篆冈小酌】

  夜月楼台秋香院宇笑吟吟地人来去是谁秋到便凄凉当年宋玉悲如许 随分杯盘等闲歌舞问他有甚堪悲处思量却也有悲时重阳节近多风雨

  又【赋木犀】

  弄影阑干吹香岩谷枝枝点点黄金粟未堪收拾付熏炉窓前且把离骚读 奴仆葵花儿曹金菊一枝风露清凉足傍边只欠个姮娥分明身在蟾宫宿

  又【赋稼轩集经句】

  进退存亡行藏用舍小人请学樊须稼衡门之下可栖迟日之夕矣牛羊下 去卫灵公遭桓司马东西南北之人也长沮桀溺耦而耕丘何为是栖栖者

  又【和赵国兴知録韵】

  吾道悠悠忧心悄悄最无聊处秋光到西风林外有啼鸦斜阳山下多衰草 长忆南山当年四老尘埃也走咸阳道为谁书到便幡然至今此意无人晓

  定风波【暮春漫兴】

  少日春懐似酒浓挿花走马醉千锺老去逢春如病酒唯有茶瓯香篆小帘栊 巻尽残花风未定休恨花开元自要春风试问春归谁得见飞燕来时相遇夕阳中

  又【大醉归自葛园家人有痛饮之戒故书于壁】

  昨夜山翁倒载归儿童应笑醉如泥试与扶头浑未醒休问梦魂犹在葛家溪 欲觅醉乡今古路知处温柔东畔白云西起向绿窓髙处看题徧刘伶元自有贤妻

  又【用药名招婺源马荀仲游雨岩马善医】

  山路风来草木香雨余凉意到胡床泉石膏肓吾已甚多病堤防风月费篇章 孤负寻常山间醉独自应知扬子草玄忙湖海早知身汗漫谁伴只甘松竹共凄凉

  又【药名】

  仄月髙寒水石乡倚空青碧对禅房白发自怜心似铁风月史君仔细与平章 平昔生涯笻竹杖来往却惭沙鸟笑人忙便好剩留黄巻句谁赋银钩小草晚天凉

  又【施枢密圣与席上赋】

  春到蓬壶特地晴神仙队里相公行翠玉相挨呼小字须记笑簮花底是飞琼 总是倾城来一处谁妒惟携歌舞到园亭栁妒腰肢花妒艳聴着流莺直是妒歌声

  又【席上送范先之游建业】

  聴我樽前醉后歌人生无奈别离何但使情亲千里近须信无情对面是山河 寄语石头城下水居士而今浑不怕风波借使未成鸥鹭伴经惯也应学得老渔蓑

  又【三山送卢国华提刑约上元重来】

  少日犹堪话别离老来怕作送行诗极目南云无雁过君看梅花也解寄相思 无限江山行未了父母不须和泪看旌旗后会丁宁何日是须记春风十里放灯时

  又【用韵时国华置酒歌舞甚盛】

  莫望中州叹黍离元和盛徳要君诗老去不堪谁似我归卧青山活计费寻思 谁筑诗坛髙十丈直上看君斩将更搴旗歌舞正浓还有语记取须髯不似少年时

  又【自和】

  金印累累佩陆离河梁更赋断肠诗莫拥旌旗真个去何处玉堂元自要论思 且约风流三学士同醉春风看试几枪旗从此酒酣明月夜耳热那边应是说侬时

  又【赋杜鹃花】

  百紫千红过了春杜鹃声苦不堪闻却解啼教春小住风雨空山招得海棠魂 恰似蜀宫当日女无数猩猩血染赭罗巾毕竟花开谁作主记取大都花属惜花人

  又【再用韵和赵晋臣敷文】

  野草闲花不当春杜鹃却是旧知闻谩道不如归去住梅雨石榴花又是离魂 前殿羣臣深殿女异数赭袍一点万红巾莫问兴亡今几许聴取花前毛羽已羞人

  破阵子【为范南伯寿时南伯为张南轩拜宰卢溪南伯迟迟未行因作此以勉之】

  掷地刘郎玉斗挂帆西子扁舟千古风流今在此万里功名莫放休君王三百州 燕雀岂知鸿鹄貂蝉元出兜鍪却笑卢溪如斗大肯把牛刀试手不寿君双玉瓯

  又【为陈同甫赋壮诗以寄之】

  醉里挑灯看劔梦回吹角连营八百里分麾下■〈炙,肉代火〉五十弦翻塞外声沙场秋点兵 马作的卢飞快弓如霹雳弦惊了却君王天下事赢得生前身后名可怜白发生

  又【赠行】

  少日春风满眼而今秋叶辞柯便好消磨心下事也忆寻常醉后歌新来白发多 明日扶头颠倒倩谁伴舞婆娑我定思君■〈扌弃〉瘦损君不思兮可奈何天寒将息呵

  又【赵晋臣敷文幼女县主觅词】

  菩萨藂中恵眼硕人诗里娥眉天上人间真福相画就描成好靥儿行时娇更迟 劝酒偏多最劣笑时犹有些痴更着十年君看取两国夫人更是谁殷勤秋水词

  又【峡石道中有怀呉子似县尉】

  宿麦畦中雉雊桑叶陌上蚕生骑火须防花月暗玉唾长携彩笔行隔墙人笑声 莫说弓刀事业依然诗酒功名千载途中今古事万石溪头长短亭小塘风浪平【时修图经集亭堠途中之途当作图】

  临江仙【探梅】

  老去惜花心已懒爱梅犹遶江村一枝先破玉溪春更无花态度全是雪精神 剩向青山餐秀色为渠着句清新竹根流水带溪云醉中浑不记归路月黄昏

  又【醉宿崇福寺寄佑之弟佑之以仆先归】

  莫向空山吹玉笛壮懐酒醒心惊四更霜月晓寒生被翻红锦浪酒满玉壶氷 小陆未须临水笑山林我軰钟情今宵依旧醉中行试寻残菊处中路候渊明

  又【再用韵送佑之弟归浮梁】

  锺鼎山林都是梦人间宠辱休惊只消闲处过平生酒杯秋吸露诗句夜裁氷 记取小窓风雨夜对床灯火多情问谁千里伴君行晓山眉様翠秋水镜般明

  又

  小靥人怜都恶瘦曲眉天与长颦沉思欢事惜腰身枕添离别泪粉落却深旬 翠袖盈盈浑力薄玉笙袅袅愁新夕阳依旧倚窓尘叶红苔郁碧深院断无人

  又

  逗晓莺啼声昵昵掩闗髙树冥冥小渠春浪细无声井窓聴夜雨出藓辘轳青 碧草旋荒金谷路乌丝重记兰亭强扶残醉遶云屏一枝风露湿花重入疎棂

  又【即席和韩南涧韵】

  风雨催春寒食近平原一片丹青溪头唤渡栁边行花飞蝴蝶乱桑嫩野蚕生 绿野先生闲袖手却寻诗酒功名未知明日定阴晴今宵成独醉却笑众人醒

  又【为岳母寿】

  住世都知菩萨行仙家风骨精神寿如山岳福如云金花汤沐诰竹马绮罗裙 更愿升平添喜事大家祷祝殷勤眀年此地庆佳辰一杯千岁酒重拜太夫人

  又【和信守王道夫韵谢以为寿时仆作闽宪】

  记取年年为客夜只今明月相随莫教弦管便生衣引壶觞自酌须富贵何时 入手清风词更好细书白蠒乌丝海山问我几时归枣瓜如可啖直欲觅安期

  又

  春色饶君白发了不妨倚緑偎红翠鬟催唤出房栊垂肩金缕窄醮甲寳杯浓 睡起鸳鸯飞燕子门前沙■〈日耎〉泥融画楼人把玉西东舞低花外月唱彻柳边风

  又

  金谷无烟宫树緑嫩寒生怕春风博山微透■〈日耎〉熏栊小楼春色里幽梦雨声中 别浦鲤鱼何日到锦书封恨重重海棠花下去年逢也应随分瘦忍泪觅残红

  又【戏为期思詹老寿】

  手种门前乌桕树而今千尺苍苍田园只是旧耕桑杯盘风月夜箫鼓子孙忙 七十五年无事客不妨两鬓如霜緑窓刬地调红妆更从今日醉三万六千场

  又

  手捻黄花无意绪等闲行尽回廊卷帘芳桂散余香枯荷难睡鸭疎雨暗添塘 忆得旧时携手处如今水逺天长罗巾浥泪别残妆旧欢新梦里闲处却思量

  又【和叶仲洽赋羊桃】

  忆醉三山芳树下几曾风韵忘懐黄金颜色五花开味如卢橘熟贵似荔枝来 闻道商山余四老橘中自酿秋醅试呼名品细推排重重香肺腑偏殢圣贤杯

  又

  冷雁寒云渠有恨春风自满余懐更教无日不花开未须愁菊尽相次有梅来 □□□□□□□□□□□□醅□□□多要安排不须连日醉且进两三杯

  又【侍者阿钱将行赋钱字以赠之】

  一自酒情诗兴懒舞裙歌扇阑珊好天良夜月团团杜陵真好事留得一钱看 岁晩人欺程不识怎教阿堵留连杨花榆荚雪漫天从今花影下只看緑苔圆

  又【诸葛元亮席上见和再用韵】

  夜雨南堂新瓦响三更急漏珊珊交情莫作碎沙团死生贫富际试向此中看 记取他年耆旧传与君名字牵连清风一枕晚凉天觉来还自笑此梦倩谁圆

  又【壬戌岁生日书懐】

  六十三年无限事从头悔恨难追巳知六十二年非只应今日是后日又寻思 少是多非惟有酒何须过后方知从今休似去年时病中留客饮醉里和人诗

  又【再用圆字韵】

  窄様金杯休教了房栊试聴珊珊莫教秋扇雪团团古今悲笑事长付后人看 记取桔槔春雨后短畦菊艾相连拙于人处巧于天君看流水地难得正方圆

  又【戏为山园苍壁解嘲】

  莫笑吾家苍壁小棱层势欲摩空相知惟有主人翁有心雄泰华无意巧玲珑 天作髙山难得料解嘲试倩扬雄君看当日仲尼穷从人贤子贡自欲学周公

  又【簮花屡堕戏作】

  鼓子花开春烂熳荒园无限思量今朝拄杖过西乡急呼桃叶渡为看牡丹忙 不管昨宵风雨横依然红紫成行白头陪奉少年场一枝簮不住推道帽檐长

  又

  醉帽吟鞭花不住却招花共商量人生何必醉为乡从教斟酒浅休更和诗忙 一斗百篇风月地饶他老子当行从今三万六千场青青头上发还作柳丝长

  又【昨日得家报牡丹渐开连日少雨多晴当年末有仆留龙安萧寺诸君亦不果来岂牡丹留不住为恨耶因取来韵为牡丹一语】

  秪恐牡丹留不住与君约束分眀未开微雨半开晴要花开定凖又更与花盟 魏紫朝来将进酒玉盘盂様先呈鞓红似向舞腰横风流人不见锦绣夜间行

  又

  老去浑身无着处天教只住山林百年光景百年心更欢须叹息无病也呻吟 试向浮瓜沉李处清风散髪披襟莫嫌浅后更频斟要他诗句好须是酒杯深

  又【停云偶作】

  偶向停云堂上坐晓猿夜鹤惊猜主人何事太尘埃低头还说向被召又重来 多谢北山山下老殷勤一语佳哉借君竹杖与芒鞋径须从此去深入白云堆

  蝶恋花【和赵景明知县韵】

  老去怕寻年少伴画栋朱帘风月无人管公子看花朱碧乱新词搅断相思怨 凉夜愁肠千百转一雁西风锦字何时遣毕竟啼乌才思短唤回晓梦天涯逺

  又【和杨济翁韵首句用丘宗卿书中语】

  检点笙歌多酿酒蝴蝶西园暖日明花栁醉倒东风眠昼锦觉来小院重携手 可惜春残风又雨收拾情懐闲把诗僝僽杨柳人儿离别后腰肢近日和他瘦

  又【和杨济翁韵饯范南伯知县归京口】

  泪眼送君倾似雨不折垂杨只倩愁随去有底风光留不住烟波万顷春江橹 老马临流痴不渡应惜障泥忘了寻春路身在稼轩安穏处书来不用多行数

  又【席上赠杨济翁侍儿】

  小小年华才月半罗幕春风幸自无人见刚道羞郎低粉面傍人瞥见回娇盼 昨夜西池陪女伴柳困花慵见说归来晚劝客持觞浑未惯未歌先觉花头颤

  又【用赵文鼎提学送李正之提刑韵送郑元英】

  莫向楼头聴漏点说与行人黙黙情千万総是离愁无近逺人间儿女空悲怨 锦绣心胸氷雪面旧日诗名曾道空梁燕倾盖未偿平日愿一杯早唱阳闗劝

  又【客有燕语莺啼人乍逺之句用为首句】

  燕语莺啼人乍逺却恨西园依旧莺和燕笑语十分愁一半翠围特地春光暖 只道书来无过雁不道柔肠近日无肠断柄玉莫揺湘泪点怕君唤作秋风扇

  又【送佑之弟】

  衰草斜阳三万顷不算飘零天外孤鸿影几许凄凉须痛饮行人自向江头醒 会少离多看两鬓万缕千丝何况新来病不是离愁难整顿被他引惹其它恨

  又【元日立春】

  谁向椒盘簮彩胜整整韶华争上春风鬓往日不堪重记省为花常把新春恨 春未来时先借问晩恨开迟早又飘零近今岁花期消息定只愁风雨无凭凖

  又【月下醉书雨岩石浪】

  九畹芳菲兰佩好空谷无人自怨蛾眉巧寳瑟泠泠千古调朱丝弦断知音少 冉冉年华吾自老水满汀洲何处寻芳草唤起湘累歌未了石龙舞罢松风晓

  又【用前韵送人行】

  意态憨生元自好学画鸦儿旧日偏他巧蜂蝶不禁花引调西园人去春风少 春色无情秋又老谁管闲愁千里青青草今夜情簮黄菊了断肠眀日霜天晓

  又

  洗尽机心随法喜看取樽前秋思如春意谁与先生寛髪齿醉时惟有歌而已 岁月何须溪上记千古黄花自有渊明比髙卧石龙呼不起微风不动天如醉

  又

  何物能令公怒喜山要人来人要山无意恰似哀筝弦下齿千情万意无时已 自要溪堂韩作记今代云梯好语花难比老眼狂花空乱处银钩未见心先醉

  小重山【席上和人韵送李子永提干】

  旋制离歌唱未成阳闗先画出柳边亭中年懐抱管弦声难忘处风月此时情 夜雨共谁聴尽教清梦去两三程商量诗价重连城相如老汉殿旧知名

  又【三山与客泛西湖】

  緑涨连云翠拂空千分风月处着衰翁垂杨影断岸西东君恩重教且种芙蓉 十里水晶宫有时骑马去笑儿童殷勤却谢打头风船儿住且醉浪花中

  又【茉莉】

  倩得熏风染緑衣国香收不起透氷肌畧开些个未多时窓儿外却早被人知 越惜越娇痴一枝云鬓上那人宜莫将他去比荼■〈艹縻〉分明是他更韵些儿

  南乡子

  隔戸语春莺纔挂帘儿敛袂行渐见凌波罗韈步盈盈随笑随颦百媚生 着意聴新声尽是司空自教成今夜酒肠难道窄多情莫放纱笼蜡炬明

  又【舟中记梦】

  欹枕舻声边贪聴咿哑聒醉眠梦里笙歌花底去依然翠袖盈盈在眼前 别后两眉尖欲说还休梦已阑只记埋寃前夜月相看不管人愁独自圆

  又【庆前冈周氏旌表】

  无处着风光天上飞来诏十行父老欢呼童穉舞前冈千载周家孝义乡 草木尽芬芳更觉溪头水也香我道乌头门侧畔诸郎凖备他年昼锦堂

  又【送赵国宜赴髙安戸曹】

  日日老莱衣更解风流蜡鳯嬉膝上放教文度去须知要使人看玉树枝 剩记乃翁诗绿水红莲觅旧题归骑春衫花满路相期来岁流觞曲水时

  又【登京口北固亭有懐】

  何处望神州满眼风光北固楼千古兴亡多少事悠悠不尽长江滚滚流 年少万兜鍪坐断东南战未休天下英雄谁敌手曹刘生子当如孙仲谋

  鹧鸪天【离豫章别司马汉章大监】

  聚散匆匆不偶然三年厯遍楚山川但将痛饮酬风月莫放离歌入管弦 萦緑带点青钱东湖春水碧连天明朝放我东归去后夜相思月满船

  又【和张子志提举】

  别后妆成白发新空教儿女笑陈人醉寻夜雨旗亭酒梦断东风辇路尘 骑騄駬荷青云看公冠佩玉阶春忠言句句唐虞际便是人间要路津

  又

  樽爼风流有几人当年未遇巳心亲金陵种柳欢娱地庾岭逢梅寂寞濵 樽似海笔如神故人南北一般春玉人好把新妆様淡画眉儿浅注唇

  又【代人赋】

  晩日寒鸦一片愁柳塘新緑却温柔若教眼底无离恨不信人间有白头 肠已断泪难收相思重上小红楼情知已被云遮断频倚阑干不自由

  又

  陌上柔桑破嫰芽东邻蚕种已生些平冈细草鸣黄犊斜日寒林点暮鸦 山逺近路横斜青旗沽酒有人家城中桃李愁风雨春在溪头荠菜花

  又

  扑面征尘去路遥香篝渐觉水沉销山无重数周遭碧花不知名分外娇 人厯厯马萧萧旌旗又过小红桥愁边剩有相思句揺断吟鞭碧玉梢

  又

  唱彻阳闗泪未干功名余事且加餐浮天水送无穷树带雨云埋一半山 今古恨几千般只今离合是悲欢江头未是风波恶别有人间行路难

  又【鹅湖道中】

  一榻清风殿影凉涓涓流水响回廊千章云木钩辀呌十里溪风■〈禾罢〉稏香 冲急雨趂斜阳山园细路转微茫倦途却被行人笑只为林泉有底忙

  又【鹅湖归病起作】

  枕簟溪堂冷欲秋断云依水晚来收红莲相倚浑如醉白鸟无言定自愁 书咄咄且休休一丘一壑也风流不知筋力衰多少但觉新来懒上楼

  又

  指点芳樽特地开风帆莫引酒船回方惊共折津头栁却喜重寻岭上梅 催月上唤风来莫愁瓶罄耻金罍只愁画角楼头起急管哀弦次第催

  又

  着意寻梅懒便回何如信步两三杯山纔好处行还倦诗未成时雨早催 携竹杖更芒鞋朱朱粉粉野蒿开谁家寒食归宁女笑语柔桑陌上来

  又

  翠木千寻上薜萝东湖经雨又増波只因买得青山好却恨归来白髪多 明画烛洗金荷主人起舞客髙歌醉中只恨欢娯少无奈明朝酒醒何

  又

  困不成眠奈夜何情知归未转愁多暗将往事思量遍谁把多情恼乱他 些底事误人多不成真个不思家娇痴却妒香魂睡唤起醒松说梦些

  又【郑守厚卿席上谢余伯山用其韵】

  梦断京华故倦游只今芳草替人愁阳关莫作三疉唱越女应须为我留 看逸韵自名流青衫司马且江州君家兄弟真堪笑个个能修五鳯楼

  又【和人龙有所赠】

  趂得西风汗漫游见他歌后怎生愁事如芳草春长在人似浮云影不留 眉黛敛眼波流十年薄幸说扬州明朝短棹轻衫梦只在溪南罨画楼

  又【徐衡仲抚干惠琴不受】

  千丈阴崖百丈溪孤桐枝上鳯偏宜玉香落落虽难合横理庚庚定自竒【山谷聴摘阮歌云立壁庚庚有横理】 人散后月明时试弹幽愤泪空垂不如却付骚人手留和南风解愠诗

  又【用前韵和赵文鼎提举赋雪】

  莫上扁舟访剡溪浅斟低唱正相宜从教犬吠千家白且与梅成一段竒 香暖处酒醒时画檐玉筯已偷垂笑君解释春风恨倩拂蛮笺只费诗

  又【重九席上】

  戏马台前秋雁飞管弦歌舞更旌旗要知黄菊清髙处不入当年二谢诗 倾白酒遶东篱只于陶令有心期明朝九日浑潇洒莫使樽前欠一枝

  又

  有甚闲愁可皱眉老懐无绪自伤悲百年旋逐花阴转万事长看鬓发知 溪上枕竹间棋怕寻酒伴懒吟诗十分筋力夸强健只比年来病起时

  又【送范先之秋试】

  白苎新袍入院凉春蚕食叶响回廊禹门巳凖桃花浪月殿先收桂子香 鹏北海鳯朝阳又携书劎路茫茫明年此日青云上却笑人间举子忙

  又

  一夜清霜变鬓丝怕愁刚把酒禁持玉人今夜相思不想见频将翠枕移 真个恨未多时也应香雪减些儿菱花照面须频记曾道偏宜浅画眉

  又【送欧阳国瑞入呉中】

  莫避春阴上马迟春来未有不阴时人情辗转闲中看客路﨑岖倦后知 梅似雪栁如丝试聴别语慰相思短蓬炊饭鲈鱼熟除却松江枉费诗

  又

  水落山髙一夜霜北风驱雁又离行无言毎觉情懐好不饮能令兴味长 频聚散试思量为谁春草梦池塘中年长作东山恨莫遣离歌苦断肠

  又【席上再用韵】

  水底明霞十顷光天教铺锦衬鸳鸯最怜杨栁如张绪却笑莲花似六郎 方竹簟小胡床晚来消得许多凉背人白鸟都飞去落日残鸦更断肠

  又【石门道中】

  山上飞泉万斛珠悬崖千丈落鼪鼯已通樵径行还碍似有人声聴却无 闲畧彴逺浮屠溪南修竹有茅庐莫嫌杖屦频来往此地徧宜着老夫

  又【败棋罚赋梅雨】

  漠漠轻阴拨不开江南细雨熟黄梅有情无道东边日已怒重惊忽地雷 云拄础水侵台罗衣费尽博山灰当时一识和羮味便道为霖消息来

  又【黄沙道中即事】

  句里春风正剪裁溪山一片画图开轻鸥自趂虚船去荒犬还迎野妇回 松共竹翠成堆要擎残雪鬬疎梅乱鸦毕竟无才思时把琼瑶蹴下来

  又【元溪不见梅】

  千丈氷溪百步雷柴门都向水边开乱云剩带炊烟去野水闲将日影来 穿窈窕过崔嵬东林试问几时栽动摇意态虽多竹点缀风流却欠梅

  又【戏题村舍】

  鸡鸭成羣晚未收桑麻长过屋山头有何不可吾方羡要底都无饱便休 新柳树旧沙洲去年溪打却边流自言此地生儿女不嫁余家即聘周

  又【春日即事题毛村酒垆】

  春日平原蒿菜花新耕雨后落羣鸦多情白发春无奈晚日青帘酒易賖 闲意态细生涯牛栏西畔有桑麻青裙缟袂谁家女去趂蚕生看外家

  又【睡起即事】

  水荇参差动緑波一池虵影噤羣蛙因风野鹤饥犹舞积雨山栀病不花 名利处战争多门前蛮触日干戈不知更有槐安国梦觉南柯日未斜

  又

  石壁虗云积渐髙溪声遶屋几周遭自从一雨花零落却爱微风草动揺 呼玉友荐溪毛殷勤野老着相邀杖藜忽避行人去认是翁来却过桥

  又【送元济之归豫章】

  欹枕婆娑两鬓霜起聴檐溜碎喧江那边玉筯销啼粉这里车轮转别肠 诗酒社水云乡可看醉墨几淋浪画图却似归家梦千里河山寸许长

  又【寻菊花无有戏作】

  掩鼻人间臭腐场古今惟有酒偏香自从来住云烟畔直到而今歌舞忙 呼老伴共秋光黄花何处避重阳要知烂漫开时节直待西风一夜霜

  又【席上呉子似诸友见和再用韵答之】

  翰墨诸公久擅场胸中书传许多香都无丝竹衔杯乐却有龙蛇落笔忙 闲意思老风光酒徒今有几髙阳黄花不怯西风冷只怕诗人两鬓霜

  又

  自古髙人最可嗟只因疎懒取名多居山一似庚桑楚种树真成郭槖駞 云母饭水晶瓜林间携客更烹茶君归休矣吾忙甚要看蜂儿晩趂衙

  又【三山道中】

  抛却山中诗酒窠却来官府聴笙歌闲愁做弄天来大白髪栽培日许多 新劎戟旧风波天生予懒奈予何此身巳觉浑无事却教儿童莫恁么

  又

  点尽苍苔色欲空竹篱茅舍要诗翁花余歌舞欢娯外诗在经营惨淡中 聴软语笑衰容一枝斜坠翠鬟松浅颦深笑谁看醉看取萧然林下风

  又【用前韵赋梅三山梅开时犹有青叶予时病齿】

  病绕梅花酒不空齿牙牢在莫欺翁恨无飞雪青松畔却放疎花翠叶中 氷作骨玉为容当年宫额鬓云松直须烂漫烧银烛横笛难看一夜风

  又

  桃李漫山过眼空也宜恼损杜陵翁若将玉骨氷姿比李蔡为人在下中 寻驿使寄芳容陇头休放马蹄松吾家篱落黄昏后剩有西湖处士风

  又【有感】

  出处从来自不齐后车方载太公归谁知寂寞空山里却有髙人赋采薇 黄菊嫩晚香枝一般同是采花时蜂儿辛苦多官府蝴蝶花间自在飞

  又【读渊明诗不能去手戏作小词以送之】

  晩岁躬耕不怨贫只鸡斗酒聚比邻都无晋宋之间事自是羲皇以上人 千载后百篇存更无一字不清真若教王谢诸郎在未抵柴桑陌上尘

  又

  发底青青无限春残红飞雪谩纷纷黄花也伴秋光老何似樽前见在身 书万巻笔如神眼看同辈上青云个中不许儿童会只恐功名更过人

  又【戊午拜复职奉祠之命】

  老退何曾说着官今朝放罪上恩寛便支香火真祠奉更缀文书旧殿班 扶病脚洗衰颜快从老病借衣冠此身忘世浑容易使世相忘却自难

  又【和赵晋臣敷文韵】

  緑鬓都无白发侵醉时拈笔越精神爱将芜语追前事更把梅花比那人 回急雪遏行云近时歌舞旧时情君侯要识谁轻重看取金杯几许深

  又【和傅先之提举赋】

  泉上长吟我独清喜君未共雪争明巳惊并水鸥无色更怪行沙蟹有声 添爽气动雄城竒因六出忆陈平却嫌鸟雀投林去触破当楼云母屏

  又【博山寺作】

  不向长安路上行却教山寺厌逢迎味无味处求吾乐材不材间过此生 宁作我岂其卿人间走遍却归耕一松一竹真朋友山鸟山花好弟兄

  又【不寐】

  老病那堪歳月侵霎时光景值千金一生不负溪山债百药难医书史淫 随巧拙任浮沉人无同处面如心不妨旧事从头记要写行藏入笑林

  又【有客慨然谈功名因追念少年时事戏作】

  壮岁旌旗拥万夫锦襜突骑渡江初燕兵夜娖【侧角切】银胡■〈革录〉汉箭朝飞金仆姑 追往事叹今吾春风不染白髭须却将万字平戎策换得东家种树书

  又【祝良显家牡丹一本】

  占断雕栏只一株春风费尽几工夫天香夜染衣犹湿国色朝酣醉未苏 娇欲语巧相扶不妨老干自扶疎恰如翠幙髙堂上来看红衫百子图

  又【赋牡丹主人以谤花索赋解嘲】

  翠盖牙签数百株杨家姊妹夜游初五花结队香如雾一朶倾城醉未苏 闲小立困相扶夜来风雨有情无愁红惨緑今宵看恰似呉宫教阵图

  又【再赋】

  浓紫深黄一画图中间更有玉盘盂先裁翡翠装成盖更点胭脂染透酥 香潋灔锦模糊主人长得醉工夫莫携弄玉栏边去羞得花枝一朶无

  又

  去岁花枝把酒杯雪中曽见牡丹开而今纨扇熏风里又见疎枝月下梅 欢几许醉方回明朝归路有谁催低声待向他家道带得歌声满耳来

  又【寿呉子似县尉时摄事城中】

  上已风光好放懐故人犹未看花回茂林映带谁家竹曲水流传第几杯 摛锦绣写琼瑰长年富贵属多才要知此日生男好曽有周公袚褉来

  又【寄叶仲洽】

  是处移花是处开古今兴废几池台背人翠羽偷鱼去抱蘂黄须趂蝶来 掀老瓮拨新醅客来且尽两三杯日髙盘馔供何晚市逺鱼鲑买未回

  又【登一丘一壑偶成】

  莫殢春光花下游便须凖备落花愁百年雨打风吹却万事三平二满休 将扰扰付悠悠此生于世百无忧新愁次第相抛舍要伴春归天尽头

  又【和呉子似山行韵】

  谁共春光管日华朱朱粉粉野蒿花闲愁投老无多子酒病而今较减些 山逺近路横斜正无聊处管弦哗去年醉后犹能记细数溪边第几家

  又【过峡石用韵答呉子似】

  叹息频年廪未髙新词空贺此丘遭遥知醉帽时时落见说吟鞭步步揺 干玉唾秃锥毛只今明月费招邀最怜乌鹊南飞句不解风流见二乔

  又【呉子似过秋水】

  秋水长廊水石间有谁来共聴潺潺羡君人物东西晋分我诗名大小山 穷自乐晚方闲人间路窄酒杯寛看君不了痴儿事又似风流靖长官

  又【和章泉赵昌父】

  万事纷纷一笑中渊明把菊对秋风细看爽气今犹在惟有南山一似翁 情味好语言工三贤髙致古来同谁知止酒停云老独立斜阳数过鸿

  瑞鹧鸪【京口有懐山中故人】

  暮年不赋短长词和得渊明数首诗君自不归归甚易今犹未足足何时 偷闲定向山中老此意须教鹤辈知闻道只今秋水上故人曾榜北山移

  又【京口病中起登连沧观偶成】

  声名少日畏人知老去行藏与愿违山草旧曾呼逺志故人今有寄当归 何人可觅安心法有客来观杜徳机却笑使君那得似清江万顷白鸥飞

  又

  胶胶扰扰几时休一出山来不自由秋水观中秋月夜停云堂下菊花秋 随縁道理应须会过分功名莫强求先自一身愁不了那堪愁上更添愁

  又【乙丑奉祠归舟次余干赋】

  江头日日打头风憔悴归来邴曼容郑贾正应求死鼠叶公岂是好真龙 孰居无事陪犀首未辨求封遇万松却笑千年曹孟徳梦中相对也龙钟

  又

  期思溪上日千回樟木桥边酒数杯人影不随流水去醉颜重带少年来 疎蝉响涩林逾静冷蝶飞轻菊半开不是长卿终慢世只縁多病又非才

  稼轩词巻三

  ●钦定四库全书

  稼轩词巻四

  (宋)辛弃疾 撰

  玉楼春【席上赠别上饶黄倅】

  往年巃嵸堂前路路上人夸通判雨去年拄杖过瓢泉县吏垂头民叹语 学窥圣处文章古清到穷时风味苦樽前老泪不成行明日送君天上去

  又【效白乐天体】

  少年才把笙歌醆夏日非长愁夜短因他老病不相饶把好心情都做懒 故人别后书来劝乍可停杯强吃饭云何相见酒边时却道达人须引满

  又【用韵畣叶仲洽】

  狂歌击碎村醪醆欲舞还怜衫袖短心如溪上钓矶闲身似道旁官堠懒 山中有酒提壶劝好语怜君堪鲊饭至今有句落人间渭水秋风黄叶满

  又【用韵畣呉子似县尉】

  君如九酝台粘醆我似茅柴风味短几时秋水美人来长恐扁舟乘兴懒 髙懐自饮无人劝马有青刍奴白饭向来珠履玉簮人颇觉斗量车载满

  又【客有游山者忘携具而以词来索酒用韵以畣余时以病不往】

  山行日日妨风雨风雨晴时君不去墙头尘满短辕车门外人行芳草路 城南东野应聫句好记琅玕题字处也应竹里着行厨巳向瓮边防吏部

  又【再和】

  人间反复成云雨鳬雁江湖来又去十千一斗饮中仙一百八盘天上路 旧时枫落呉江句今日锦囊无着处看封闗外水云侯剩按山中诗酒部

  又【戏赋云山】

  何人半夜推山去四面浮云猜是汝当时相对两三峰走遍溪头无觅处 西风瞥起云横度忽见东南天一柱老僧拍手笑相夸且喜青山依旧住

  又【用韵畣傅岩叟叶仲洽赵国兴】

  青山不解乘云去怕有愚公惊着汝人间踏地出租钱借使移将无着处 三星昨夜光移度妙语来题桥上柱黄花不挿满头归定向白云遮且住

  又

  无心云自来还去元共青山相尔汝霎时迎雨障崔嵬雨过却寻归路处 侵天翠竹何曽度遥见屹然星砥柱今朝不管乱云深来伴仙翁山下住

  又

  痩笻倦作登髙去却把黄花相尔汝岭头拭目望龙山更在云烟遮断处 思量落帽人风度休说当年功纪柱谢公直是爱东山毕竟东山留不住

  又

  风前欲劝春光住春在城南芳草路未随流落水边花且作飘零泥上絮 镜中已有星星误人不负春春自负梦回人逺许多愁只在梨花风雨处

  又

  三三两两谁家妇聴取鸣禽枝上语提壶沽酒已多时婆饼焦时须早去 醉中忘却来时路借问行人家住处只寻古庙那边行更过溪南乌桕树

  又【寄题文山郑元英巢经楼】

  悠悠莫向文山去要把襟裾牛马汝遥知书带草边行正在雀罗门里住 平生挿架昌黎句不似拾柴东野苦侵天且拟鳯凰巢扫地从他鸜鹆舞

  又【乐令谓卫玠人未甞梦捣虀餐铁杵乘车入鼠穴以谓世无是事而有是理乐所谓无犹云有也戏作数语以明之】

  有无一理谁差别乐令区区犹未达事言无处未甞无试把所无凭理说 伯夷饥采西山蕨何异捣虀餐杵铁仲尼去卫又之陈此是乗车穿鼠宂

  又【隠湖戏作】

  客来底事逢迎晩竹里鸣禽寻未见日髙犹苦圣贤心门外谁酣蛮触战 多方为渇泉寻徧何日成阴松种满不辞长向水云来只怕频频鱼鸟倦

  又【有自九江以石作观音像持送者因以词赋之】

  琵琶亭畔多芳草时对香炉峰一笑偶然重傍玉溪行不是白头谁觉老 普陀大士神通妙影入石头光了了看来将献可无言长似慈悲颜色好

  又【乙丑京口奉祠西归将至仙人矶】

  江头一带斜阳树总是六朝人住处悠悠兴废不闗心惟有沙洲双白鹭 仙人矶下多风雨好卸征帆留不住直须抖擞尽尘埃却趂新凉秋水去

  鹊桥仙【为人庆八十席上戏作】

  朱颜晕酒方瞳点漆闲傍松边倚杖不须更展画图看是个寿星的模様 今朝盛事一杯深劝更把新词齐唱人间八十最风流长贴在儿孙额上

  又【和范先之送佑之弟归浮梁】

  小窓风雨从今便忆中夜笑谈清软啼鸦衰柳自无聊更管得离人肠断 诗书事业青毡犹在头上貂蝉会见莫贪风月卧江湖道日近长安路逺

  又【寿徐伯熙察院】

  豸冠风采绣衣声价曾把经纶少试看看有诏日边来便入侍明光殿里 东君未老花明柳媚且引玉觥沉醉好将三万六千场自今日从头数起

  又【巳酉山行书所见】

  松冈避暑茆檐避雨闲去闲来几度醉扶怪石看飞泉又却是前回醒处 东家娶妇西家归女灯火门前笑语酿成千顷稻花香夜夜费一天风露

  又【庆岳母八十】

  八旬庆会人间盛事齐劝一杯春酿臙脂小字点眉间犹记得旧时宫様 彩衣更着功名富贵直过太公以上大家着意记新词遇着个十年便唱

  又【赠鹭鸶】

  溪边白鹭来吾告汝溪里鱼儿堪数主怜汝汝又怜鱼要物我欣然一处 白沙逺浦青泥别渚剰有鰕跳鳅舞聴君飞去饱时来看头上风吹一缕

  又【席上和赵晋臣敷文】

  少年风月少年歌舞老去方知堪羡叹折腰五斗赋归来问走了羊肠几遍 髙车驷马金章紫绶传语渠侬穏便问东湖带得几多春且看凌云笔健

  西江月【采石岸戏作渔父词】

  千丈悬崖削翠一川落日镕金白鸥来往本无心选甚风波一任 别浦鱼肥堪脍前村酒美重斟千年往事已沉沉闲管兴亡则甚

  又【寿范南伯知县】

  秀骨青松不老新词玉佩相磨灵槎凖拟泛银河剩摘天星几个【南伯去岁七月生子】 奠枕楼头风月驻春亭上笙歌留君一醉意如何金印明年斗大

  又【和杨民瞻赋丹桂韵】

  宫粉厌涂娇额浓妆再压秋花西真人醉忆仙家飞佩丹霞羽化 十里芬芳未足一亭风露先加杏腮桃脸费铅华终惯秋蟾影下

  又【癸丑正月四日三山被召经从建安席上和陈安行舍人韵】

  风月亭危致爽管弦声脆休催主人只是旧情懐锦瑟傍边须醉 玉殿何曾侬去沙堤正要公来看看红药又翻阶趂取西湖春会

  又【用韵和李兼济提举】

  且对东君痛饮莫教华发空催琼瑰千字已盈懐消得津头一醉 休唱阳闗别去只今鳯诏归来五云两两望三台巳觉精神聚会

  又【三山作】

  贪数明朝重九不知过了中秋人生有得许多愁只有黄花如旧 万象亭中殢酒九仙阁上扶头城鸦唤我醉归休细雨斜风时候

  又【夜行黄沙道中】

  明月别枝惊鹊清风半夜鸣蝉稻花香里说丰年聴取蛙声一片 七八个星天外两三点雨山前旧时茆店社林边路转溪桥忽见

  又【春晚】

  剩欲读书已懒只今多病长闲聴风聴雨小窓眠过了春光大半 往事数寻去鸟消愁难解连环流莺不肯入西园唤起画梁飞燕

  又【木犀】

  金粟如来出世蘂宫仙子乘风清香一袖意无穷洗尽尘缘千种 长为西风作主更居明月光中十分秋意与玲珑■〈扌弃〉却今宵无梦

  又【寿佑之弟时新居落成】

  画栋新垂帘幙华灯未放笙歌一杯潋灔泛金波先向大夫称贺 富贵无应自有功名不用渠多只将緑鬓抵羲娥金印须教斗大

  又【遣兴】

  醉里且贪欢笑要愁那得工夫近来始觉古人书信着全无是处 昨夜松边醉倒问松我醉何如只疑松动要来扶以手推松曰去

  又【和赵晋臣敷文赋秋水瀑泉】

  八万四千偈后更谁妙语披襟纫兰结佩有同心唤取诗翁来饮 镂玉裁氷着句髙山流水知音胸中不受一尘侵却怕灵均独醒

  又【悠然阁】

  一柱中擎逺碧两峰旁耸髙寒横陈削尽短长山莫把一分增减 我望云烟目断人言风景天悭被公诗笔尽追还重上层梯一览

  又【示儿曹以家事付之】

  万事云烟忽过百年蒲柳先衰而今何事最相宜宜醉宜游宜睡 早趂催科了纳更量出入收支乃翁依旧管些儿管竹管山管水

  又

  粉面都成醉梦霜髯能几春秋来时送我伴牢愁一见樽前似旧 诗在阴何侧畔字居罗赵前头锦囊来往几时休巳遣蛾眉等候

  朝中措【醉归佑之弟】

  篮舆袅袅破重冈玉笛两红妆这里都愁酒尽那边正和诗忙 为谁醉倒为谁归去都莫思量白水东边篱落斜阳欲下牛羊

  又

  夜深残月过山房睡觉北窓凉起遶中庭独步一天星斗文章 朝来客话山林锺鼎那处难忘君向沙头细问白鸥知我行藏

  又【为人寿】

  年年黄菊艳秋风更有拒霜红黄似旧时宫额红如此日芳容 青青未老樽前要看儿辈平戎试酿西江为寿西江緑水无穷

  又

  年年金蘂艳西风人与菊花同霜鬓经春重緑仙姿不饮长红 焚香度日从容笑语尽调儿童一岁一杯为寿从今更数千锺

  又【九日小集时杨世长将赴南宫】

  年年团扇怨秋风愁絶玉杯空山下卧龙丰度台前戏马英雄 而今休也花残一似人老花同莫怪东篱韵减只今丹桂香浓

  清平乐【博山道中即事】

  柳边飞鞚雾湿征衣重宿鹭窥沙孤影动应有鱼鰕入梦 一川明月疎星浣沙人影娉婷笑背行人归去门前稚子啼声

  又

  茅檐低小溪上青青草醉里呉音相媚好白发谁家翁媪 大儿锄豆溪东中儿正织鸡笼最喜小儿亡赖溪头看剥莲蓬

  又【独宿博山王氏庵】

  遶床饥鼠蝙蝠翻灯舞屋上松风吹急雨破纸窓间自语 平生塞北江南归来华发苍颜布被秋宵梦觉眼前万里江山

  又【检校山园书所见】

  连云松竹万事从今足拄杖东家分社肉白酒床头初熟 西风梨枣山园儿童偷把长竿莫遣旁人惊去老夫静处闲看

  又

  断崖松竹竹里藏氷玉路转清溪三百曲香满黄昏雪屋 行人系马疎篱折残犹有髙枝留得东风数点只縁娇嫩春迟

  又【为儿铁柱作】

  灵皇醮罢福禄都来也试引鹓鶵花树下断了惊惊怕怕 从今日日聪明更有潭妹嵩兄看取辛家铁柱无灾无难公卿

  又【木犀】

  月明秋晓翠盖团团好碎剪黄金敷恁小都着叶儿遮了 打来休似年时小窓能有髙低无顿许多香处只消三两枝儿

  又【再赋】

  东园向晓阵阵西风好唤起仙人金小小翠羽玲珑装了 一枝枕畔开时罗帏翠幙垂低恁地十分遮护打窓早有蜂儿

  又【忆呉江赏木犀】

  少年痛饮忆向呉江醒明月团团髙树影十里水沉烟冷 大都一点宫黄人间直恁芬芳怕是秋天风露染教世界都香

  又【寿信守王道夫】

  此身长健还却功名愿枉读平生三万巻满酌金杯聴劝 男儿玉带金鱼能消几许诗书料得今宵醉也两行红袖争扶

  又【寿赵民则提刑时新除且素不喜饮】

  诗书万巻合上明光殿案上文书看未遍眉里阴功早见 十分竹瘦松坚看君自是长年若解樽前痛饮精神便是神仙

  又【题上卢桥】

  清泉犇快不管青山碍十里盘盘平世界更着溪山襟带 古今陵谷茫茫市朝往往耕桑此地居然形胜似曾小小兴亡

  又

  清词索笑莫厌银杯小应是天孙新与巧剪恨裁愁句好 有人梦断闗河小窓日饮亡何想见重帘不卷泪痕滴尽湘娥

  又【呈赵昌甫时仆以病止酒昌甫作诗数篇末及之】

  云烟草树山北山南雨溪上行人相背去惟有啼鸦一处 门前万斛春寒梅花可煞摧残使我长忘酒易要君不作诗难

  又【书王徳由主簿扇】

  溪回沙浅红杏都开遍鸂■〈氵束鸟〉不知春水暖犹傍垂杨春岸 片帆千里轻船行人想见欹眠谁似先生髙举一行白鹭青天

  好事近【中秋席上和王路铃】

  明月到今宵长是不如人约想见广寒宫殿正云梳风掠 夜深休更唤笙歌檐头雨声恶不是小山词就这一场寥索

  又【送李后州致一席上和韵】

  和泪唱阳闗依旧字娇声穏回首长安何处怕行人归晩 垂杨折尽只啼鸦把离愁勾引却笑逺山无数被行云低损

  又【席上和王道夫赋元夕立春】

  彩胜鬬华灯平把东风吹却唤取雪中明月伴使君行乐 红旗鐡马响春氷老去此情薄惟有前村梅在倩一枝随着

  又【和城中诸友韵】

  云气上林梢毕竟非空非色风景不随人去到而今留得 老无情味到篇章诗债怕人索却喜近来林下有许多词客

  菩萨蛮【金陵赏心亭为叶丞相赋】

  青山欲共髙人语聮翩万马来无数烟雨却低回望来终不来 人言头上发总向愁中白拍手笑沙鸥一身都是愁

  又【用前韵】

  锦书谁寄相思语天边数徧飞鸿数一夜梦千回梅花入梦来 涨痕纷树发霜落潇湘白心事莫惊鸥人间千万愁

  又

  江山病眼昏如雾送愁直到津头路归念乐天诗人生足别离 云屏深夜语梦到君知否玉筯莫偷垂断肠天不知

  又【书江西造口壁】

  郁孤台下清江水中间多少行人泪西北是长安可怜无数山 青山遮不住毕竟东流去江晚正愁余山深闻鹧鸪

  又

  西风都是行人恨马头渐喜归期近试上小红楼飞鸿字字愁 阑干闲倚处一带山无数不似逺山横秋波相共明

  又

  功名饱聴儿童说看公两眼明如月万里勒燕然老人书一编 玉阶方寸地好趂风云会他日赤松游依然万戸侯

  又【送佑之弟归浮梁】

  无情最是江头柳长条折尽还依旧木叶下平湖雁来书有无 雁无书尙可好语凭谁和风雨断肠时小山生桂枝

  又【送郑守厚卿赴阙】

  送君直上金銮殿情知不久须相见一日甚三秋愁来不自由 九重天一笑定是留中了白发少经过此时愁奈何

  又【送曹君之庄所】

  人间岁月堂堂去劝君快上青云路坚处一灯传工夫萤雪边 曲生风味恶辜负西窓约沙岸片帆开寄书无雁来

  又【席上分赋得樱桃】

  香浮乳酩玻璃盌年年醉里甞新惯何物比春风歌唇一点红 江湖清梦断翠笼明光殿万颗泻轻匀低头愧野人

  又【赋摘阮】

  阮琴斜挂香罗绶玉纤初试琵琶手桐叶雨声干珍珠落玉盘 朱弦调未惯笑倩东风伴莫作别离声且聴双鳯鸣

  又【雪楼赏牡丹席上用杨民瞻韵】

  红芽籖上羣仙客翠罗盖底倾城色和雨泪阑干沉香亭北看 东风休放去怕有流莺诉试问赏花人晓妆匀未匀

  又【和卢国华提刑】

  旌旗依旧长亭路樽前试点莺花数何处捧心颦人间别様春 功名君自许少日闻鸡舞诗句到梅花春风十万家

  卜算子【寻春作】

  修竹翠萝寒迟日江山暮幽径无人独自芳此恨知无数 只共梅花语懒逐游丝去着意寻春不肯香香在无寻处

  又【为人赋荷花】

  红粉靓梳妆翠盖低风雨占断人间六月凉明月鸳鸯浦 根底藕丝长花里莲心苦只为风流有许愁更衬佳人步

  又【闻李正之茶马讣音】

  欲行且起行欲坐重来坐坐坐行行有倦时更枕闲书卧 病是近来身懒是从前我净扫瓢泉竹树阴且恁随縁过

  又【饮酒】

  盗跖傥名丘孔子如名跖跖圣丘愚直到今美恶元无别 简策写虚名蝼蚁侵枯骨千古光阴一霎时且进杯中物

  又【用庄语】

  一以我为牛一以我为马人与之名受不辞善学庄周者 江海任虚舟风雨从飘瓦醉者乘车坠不伤全得于天也

  又【漫兴】

  夜雨醉瓜庐春水行秧马点检田间快活人未有如翁者 扫秃兔毫锥磨透铜台瓦谁伴扬雄作解嘲乌有先生也

  又

  珠玉作泥沙山谷量牛马试上累累丘陇看谁是强梁者 水浸浅深檐山压髙低瓦山水朝来笑问人翁早归来也

  又

  汉代李将军夺得匈奴马李蔡为人在下中却是封侯者 芸草去陈根笕竹添新瓦万一朝廷举力田舎我其谁也

  又【用韵畣赵晋臣敷文赵有真得归方是闲堂句】

  百郡怯登车千里输流马乞得胶胶扰扰身却笑区区者 野水玉鸣渠急雨珠跳瓦一榻清风方是闲真是归来也

  又

  万里只浮云一喷空凡马叹息曹瞒老骥诗伏枥如公者 山鸟咔窥檐野鼠饥翻瓦我老痴顽合住山此地菟裘也

  又【齿落】

  刚者不坚牢乗的难摧挫不信张开口角看舌在牙先堕 已阙两边厢又豁中间个说与儿曹莫笑翁狗窦从君过

  又【饮酒成病】

  一个去学仙一个去学佛仙饮千杯醉似泥皮骨如金石 不饮便康强佛寿须千百八十余年入涅盘且进杯中物

  又【饮酒不写书】

  一饮动连宵一醉长三日废尽寒温不写书富贵何由得 请看冢中人冢似当时笔万札千言只恁休且进杯中物

  丑奴儿【醉中有歌此诗以劝酒者聊櫽括之】

  晚来云淡秋光薄落日晴天落日晴天堂上风斜画烛烟 从渠去买人间恨字字都圆字字都圆肠断西风十四弦

  又

  寻常中酒扶头后歌舞支持歌舞支持谁把新词唤住伊 临岐也有傍人笑笑已争知笑已争知明月楼空燕子飞

  又【书博山道中壁】

  烟芜露芰荒池柳洗雨烘晴洗雨烘晴一様春风几様青 提壶脱袴催归去万恨千情万恨千情各自无聊各自鸣

  又

  此生自断天休问独倚危楼独倚危楼不信人间别有愁 君来正是眠时节君且归休君且归休说与西风一任秋

  又

  少年不识愁滋味爱上层楼爱上层楼为赋新词强说愁 而今识尽愁滋味欲说还休欲说还休却道天凉好个秋

  又

  近来愁似天来大谁解相怜谁解相怜又把愁来做个天 都将今古无穷事放在愁边放在愁边却自移家向酒泉

  又【和铅山陈簿韵二首】

  鹅湖山下长亭路明月临闗明月临闗几阵西风落叶干 新词谁解裁氷雪笔墨生寒笔墨生寒会说离愁千万般

  又

  年年索尽梅花笑疎影黄昏疎影黄昏香满东风月一痕 清诗冷落无人寄雪艳氷魂雪艳氷魂浮玉溪头烟树村

  浣溪沙【漫兴作】

  未到山前骑马回风吹雨打已无梅共谁消遣两三杯 一似旧时春意思百无事处老形骸也曾头上戴花来

  又【黄沙岭】

  寸歩人间百尺楼孤城春水一沙鸥天风吹树几时休 突兀趂人山石狠朦胧避路野花羞人家平水庙东头

  又【寿内子】

  寿酒同斟喜有余朱颜却对白髭须两人百岁恰乘除 婚嫁剩添儿女拜平安频拆外家书年年堂上寿星图

  又【瓢泉偶作】

  新葺茒檐次第成青山恰对小窓横去年曾共燕经营 病却杯盘甘止酒老依香火苦翻经夜来依旧管弦声

  又【壬子春赴闽别瓢泉】

  细聴春山杜宇啼一声声是送行诗朝来白鸟背人飞 对郑子真嵓石卧赴陶元亮菊花期而今堪诵北山移

  又【常山道中即事】

  北陇田髙踏水频西溪禾早巳甞新隔墙沽酒煑纤鳞 忽有微凉何处雨更无留影霎时云卖瓜人过竹边村

  又【偕杜叔髙呉子似宿山寺戏作】

  花向今朝粉面匀柳因何事翠眉颦东风吹雨细于尘 自笑好山如好色只今懐树更懐人闲愁闲恨一翻新

  又

  歌串如珠个个匀被花勾引笑和颦向来惊动画梁尘 莫倚笙歌多乐事相看红紫又抛人旧巢还有燕泥新

  又

  父老争言雨水匀眉头不似去年颦殷勤谢却甑中尘 啼鸟有时能劝客小桃无赖已撩人梨花也作白头新

  又【别杜叔髙】

  这里裁诗话别离那边应是望归期人言心急马行迟 去雁无凭传锦字春泥抵死污人衣海棠过了有荼■〈艹縻〉

  又【席上赵景山提干赋溪台和韵】

  台倚崩崖玉灭痕青山却作捧心颦逺林烟火几家村 引入沧浪鱼得计展成寥阔鹤能言几时髙处见层轩

  又

  妙手都无斧凿痕饱叅佳处却成颦恰如春入浣花村 笔墨今宵光有艳管弦从此悄无言主人席次两眉轩

  又【种松未成】

  草木于人也作疎秋来咫尺异荣枯空山岁晩孰华余 孤竹君穷犹抱节赤松子懒巳生须主人相爱肯留无

  又【种梅菊】

  百世孤芳肯自媒直须诗句与推排不然唤起酒边来 自有陶濳方有菊若无和靖即无梅秖今何处向人开

  又【别澄上人并送性禅师】

  梅子生时到几回桃花开后不须猜重来松竹意徘徊 惯聴禽声应可谱饱观鱼阵已能排晩风挟雨唤归来

  山花子【答傅岩叟酬春之约】

  艶杏夭桃两行排莫携歌舞去相催次第未堪供醉眼去年裁 春意纔从梅里过人情都向柳边来咫尺东家还又有海棠开

  又【用韵谢傅岩叟瑞香之恵】

  句里明珠字字排多情应也被春催怪得名花和泪送雨中栽 赤脚未安芳斛穏娥眉早把橘枝来报道锦薫笼底下麝脐开

  又【三山戏作】

  记得瓢泉快活时长年耽酒更吟诗蓦地捉将来断送老头皮 遶屋人扶行不得闲窓学得鹧鸪啼却有杜鹃能劝道不如归

  又

  日日闲看燕子飞旧巢新垒画帘低玉厯今朝推戊已却衔泥 先自春光留不住那看更着子规啼一阵晚香吹不断落花溪

  又【与客赏山茶一朶忽堕地戏作】

  酒面低迷翠被重黄昏院落月朦胧堕髻啼妆孙寿醉泥秦宫 试问花留春几日畧无人管雨和风瞥向緑珠楼下见坠残红

  又【简傅嵓叟】

  总把平生入醉乡大都三万六千场今古悠悠多少事莫思量 微有些寒春雨好更无寻处野花香年去年来还又笑燕飞忙

  又【用前韵谢傅岩叟馈名花鲜蕈】

  杨柳温柔是故乡纷纷蜂蝶去年场大率一春风雨事最难量 满把携来红粉面堆盘更觉紫芝香幸自曲生闲去了又教忙【纔止酒】

  又【病起独坐停云】

  强欲加餐竟未佳只宜长伴病僧斋心似风吹香篆过也无灰 山下朝来云出岫随风一去未曾回次第前村行雨了合归来

  虞美人【赋荼■〈艹縻〉】

  羣花泣尽朝来露争奈春归去不知庭下有荼■〈艹縻〉偷得十分春色怕春知 淡中有味清中贵飞絮残红避露华微浸玉肌香恰似杨妃初试出兰汤

  又【寿赵文鼎提举】

  翠屏罗幙遮前后舞袖翻长寿紫髯冠佩御炉香看取明年归奉万年觞 今宵池上蟠桃席咫尺长安日寳烟飞焰万花浓试看中间白鹤驾仙风

  又【用前韵】

  一杯莫落他人后富贵功名寿胸中书传有余香写得兰亭小字记流觞 问谁分我渔樵席江海消闲日看看天上拜恩浓却怕画楼无处着春风

  又【赋虞美人草】

  当年得意如芳草日日春风好拔山力尽忽悲歌饮罢虞兮从此奈君何 人间不识精诚苦贪看青青舞蓦然敛袂却亭亭怕是曲中犹带楚歌声

  浪淘沙【山寺夜半闻钟】

  身世酒杯中万事皆空古来三五个英雄雨打风吹何处是汉殿秦宫 梦入少年丛歌舞匆匆老僧夜半误鸣钟惊起西窓眠不得卷地西风

  又【赋虞美人草】

  不肯过江东玉帐匆匆只今草木忆英雄唱着虞兮当日曲便舞春风 儿女此情同往事朦胧湘娥竹上泪痕浓舜目重瞳堪痛恨羽

  又【重瞳又送呉子似县尉】

  金玉旧情懐风月追陪扁舟千里兴佳哉不似子猷行半路却棹船回 来岁菊花开记我清杯西风雁过锁山台把似倩他书不到好与同来

  减字木兰花【宿僧房有作】

  僧窓夜雨茶鼎熏炉宜小住却恨春风勾引诗来恼杀翁 狂歌未可且把一樽料理我我到亡何却聴农家陌上歌

  又

  昨朝官告一百五年村父老更莫惊疑刚道人生七十稀 使君喜见恰遇华堂开寿宴问寿如何百代儿孙拥太婆

  又【长沙道中壁上有妇人题字若有恨者用其意为赋】

  盈盈泪眼往日青楼天様逺秋月春花输与寻常姊妹家 水村山驿日暮行云无气力锦字偷裁立尽西风雁不来

  南歌子【山中夜坐】

  世事从头减秋懐彻底清夜深犹送枕边声试问清溪底事未能平 月到愁边白鸡先逺处鸣是中无有利和名因甚山前未晓有人行

  又【独坐蔗庵】

  玄入参同契禅依不二门细看斜日隙中尘始觉人间何处不纷纷 病笑春先到闲知懒是真百般啼鸟苦撩人除却提壶此外不堪闻

  又【新开池戏作】

  散髪披襟处浮瓜沉李时涓涓流水细侵阶凿个池儿唤个月儿来 画栋频揺动红蕖尽倒开斗匀红粉照香腮有个人儿把个镜儿猜

  醉太平【春景】

  态浓意逺眉颦笑浅薄罗衣窄絮风软鬓云欺翠卷 南园花树春光暖香径里榆钱满欲上秋千又惊懒且归休怕晚

  渔家傲【为余伯熙察院寿信之谶云水打乌龟石三台出此时伯熙旧居城西直龟山之北溪水啮山足矣意伯熙当之耶伯熙学道有新功一日语余云溪上甞得异石有文隠然如记姓名且有长生等字余未之见也因其生朝姑摭二事为词以寿之】

  道徳文章传几世到君合上三台位自是君家门戸事当此际龟山正抱西江水 三万六千排日醉鬓毛只恁青青地江里石头争献瑞分明是中间有个长生字

  锦帐春【杜叔髙席上】

  春色难留酒杯常浅更旧恨新愁相间五更风千里梦看飞红几片这般庭院 几许风流几般娇懒问相见何如不见燕飞忙莺语乱恨重帘不卷翠屏平逺

  太常引【建康中秋夜为吕潜叔赋】

  一轮秋影转金波飞镜又重磨把酒问姮娥被白髪欺人奈何 乘风好去长空万里直下看山河斫去桂婆娑人道是清光更多

  又【寿韩南涧尚书】

  君王着意履声间便合押紫宸班今代又尊韩道吏部文章泰山 一杯千岁问公何事早伴赤松闲功业后来看似江左风流谢安

  又【赋十四弦】

  仙机似欲织纤罗髣髴度金梭无奈玉纤何却弹作清商恨多 朱帘影里如花半面絶胜隔帘歌世路苦风波且痛饮公无渡河

  又【寿赵晋臣敷文】

  论公耆徳旧宗英呉季子百余龄奉使老于行更看舞聴歌最精 须同卫武九十入相菉竹自青青富贵出长生记门外清溪姓彭【彭溪晋臣居也】

  东坡引【闺怨】

  玉纤弹旧怨还敲绣屏面清歌自送西风雁雁行吹字断雁行吹字断 夜深拜半月锁窓西畔但桂影空阶满翠帷自掩无人见罗衣寛一半罗衣寛一半

  又

  君如梁上燕妾如手中扇团团青影双双伴秋来肠欲断秋来肠欲断 黄昏泪眼青山隔岸但咫尺如天逺病来只谢傍人劝龙华三会愿龙华三会愿

  又

  花梢红未足条破惊新緑重帘下徧阑千曲有人春睡熟有人春睡熟 鸣禽破梦云偏目蹙起来香腮褪红玉花时爱与愁相续罗裙过半幅罗裙过半幅

  夜游宫【苦俗客】

  几个相知可喜才厮见说山说水颠倒烂熟只这是怎奈何一回说一回美 有个尖新底说底话非名非利说的口干罪过你且不罪掩畧起去洗耳

  恋绣衾【无题】

  长夜偏冷添被儿枕头儿移了又移我自是笑别人底却元来当局者迷 如今只恨因縁浅也不曾抵死恨伊合手下安排了那筵席须有散时

  杏花天【无题】

  病来自是于春懒但别院笙歌一片蛛丝网遍玻瓈盏更问舞裙歌扇 有多少莺愁蝶怨甚梦里春归不管杨花也笑人情浅故故沾衣扑面

  又

  牡丹昨夜方开徧毕竟是今年春晩荼■〈艹縻〉付与熏风管燕子忙时莺懒 多病起日长人倦不待得酒阑歌散甫能得见茶瓯面却早安排肠断

  又【嘲牡丹】

  牡丹比得谁颜色似宫中太真第一渔阳鼙鼓边风急人在沉香亭北 买栽池馆多何益莫虚把千金抛掷若教解语应倾国一个西施也得

  唐河传【仿花间体】

  春水千里孤舟浪起梦携西子觉来村巷夕阳斜几家短墙红杏花 晚云做造些儿雨折花去岸上谁家女太狂颠那边柳线被风吹上天

  醉花阴【为人寿】

  黄花谩说年年好也趂秋光老绿鬓不惊秋若鬬樽前人好花堪笑 蟠桃结子知多少家住三山岛何日跨飞鸾沧海飞尘人世因缘了

  品令族【姑庆八十来索俳语】

  更休说便是个住世观音菩萨甚今年容貌八十岁见底道纔十八 莫献寿星香烛莫祝灵椿龟鹤只消得把笔轻轻去十字上添一撇

  惜分飞【春思】

  翡翠楼前芳草路寳马坠鞭暂驻最是周郎顾几度歌声误 望断碧云空日暮流水桃源何处闻道春归去更无人管飘红雨

  柳梢青【和范先之席上赋牡丹】

  姚魏名流年年搅断雨恨风愁解释春光剩须破费酒令诗筹 玉肌红粉温柔更染尽天香未休今夜簮花他年第一玉殿东头

  又【三山归途代白鸥见嘲】

  白鸟无猜相怜相笑满面尘埃华发苍颜去时曽劝闻早归来 而今岂是髙懐为千里莼羮计哉好把移文从今日日读取千回

  又【辛酉生日前两日梦一道士话长年之术梦中痛以理折之觉而赋八难之辞】

  莫炼丹难黄河可塞金可成难休辟榖难吸风饮露长忍饥难 劝君莫逺游难何处有西王母难休采药难人沉下土我上天难

  河渎神【女城祠效花间体】

  芳草緑萋萋断肠绝浦相思山头人望翠云旗蕙肴桂酒君归 惆怅画檐双燕舞东风吹散灵雨香火冷残箫鼓斜阳门外今古

  武陵春【春兴】

  桃李风前多妩媚杨柳更温柔唤取笙歌烂漫游且莫管闲愁 好趂晴时连夜赏雨便一春休草草杯盘不要收纔晚又扶头

  又

  走去走来三百里五日以为期六日归时已是疑应是望多时 鞭个马儿归去也心急马行迟不免相烦喜鹊儿先报那人知

  谒金门【无题】

  遮索月云外金■〈施,虫代也〉明灭翻树啼鸦声未彻雨声惊落叶 寳炬成行嫌热玉腕藕丝谁雪流水髙山弦断绝怒蛙声自咽

  又

  山吐月画烛从教风灭一曲瑶琴纔聴彻金蕉三两叶 骤雨微凉还热似欠舞琼歌雪近日醉乡音问絶有时清泪咽

  又

  归去未风雨送春行李一枕离愁头彻尾如何消遣是 遥想归舟天际緑鬓珑璁慵理好梦未成莺唤起粉香犹有殢

  酒泉子【无题】

  流水无情潮到空城头尽白离歌一曲怨残阳断人肠 东风官柳舞雕墙三十六宫花溅泪春声何处说兴亡燕双双

  霜天晓角【旅兴】

  呉头楚尾一棹人千里休说旧愁新恨长亭树今如此 宦游吾倦矣玉人留我醉明日落花寒食得且住为佳耳

  又

  暮山层碧掠岸西风急一叶软红深处莫不是利名客 玉人还伫立绿窓生怨泣万里衡阳归恨先倩雁寄消息

  点绛唇【留博山寺闻光风主人微恙而归时春涨断桥】

  隠隠轻雷雨声不受春回护落梅如许吹尽墙边去 春水无情碍断溪南路凭谁诉寄声传语没个人知处

  又

  身后虚名古来不换生前醉青鞋自喜不踏长安市 竹外僧归路指霜钟寺孤鸿起丹青手里剪破松江水

  生查子【山行寄杨民瞻】

  昨宵醉里行山吐三更月不见可怜人一夜头如雪 今宵醉里归明月闗山笛收拾锦囊诗要寄扬雄宅

  又【民瞻见和再用韵】

  谁倾沧海珠■〈欺〉弄千明月唤取酒边来软语裁春雪 人间无鳯凰空费穿云笛醉里却归来松菊陶潜宅

  又【有觅祠者为赋】

  去年燕子来绣戸深深处花径得泥归都把琴书污 今年燕子来谁聴呢喃语不见卷帘人一阵黄昏雨

  又【独逰西岩】

  溪边照影行天在清溪底天上有行云人在行云里 髙歌谁和余空谷清音起非鬼亦非仙一曲桃花水

  又

  青山招不来偃蹇谁怜汝岁晚太寒生唤我溪边住 山头明月来本在天髙处夜夜入清溪聴读离骚去

  又

  青山非不佳未解留侬住赤脚踏层氷为爱青溪故 朝来山鸟啼劝上山髙处裁意不闗渠自在寻诗去

  又【简呉子似县尉】

  髙人千丈崖太古储氷雪六月火云时一见森毛发 俗人如盗泉照影成昏浊髙处挂吾瓢不饮吾宁渇

  又【和赵晋臣敷文春雪】

  浸天春雪来纔抵梅花半最爱雪边人些些裁成乱 雪儿偏解歌只要金杯满谁道雪天寒翠袖阑干暖

  又

  梅子褪花时直与黄梅接烟雨几曽开一春江里活 富贵使人忙也有闲时节莫作路旁花长教人看杀

  又【题京口郡治尘表亭】

  悠悠万世功矻矻当年苦鱼自入深渊人自居平土 红日又西沉白浪长东去不是望金山我自思量禹

  寻芳草【嘲陈莘叟忆内】

  有得许多泪更闲却许多鸳被枕头儿放处都不是旧家时怎生睡 更也没书来那堪被雁儿调戏道无书却有书中意排几个人人字

  阮郎归【来阳道中为张处父推官赋】

  山前灯火欲黄昏山头来去云鹧鸪声里数家村潇湘逢故人 挥羽扇整纶巾少年鞍马尘如今憔悴赋招魂儒冠多误身

  昭君怨[豫章寄张守定叟]

  长记潇湘秋晩歌舞橘洲人散走马月明中折芙蓉 今日西山南浦画栋朱帘云雨风景不争多奈愁何

  又【送晁楚老逰荆门】

  夜雨剪残春韭明日重斟别酒君去问曹瞒好公安 试看如今白发却为中年离别风雨正崔嵬早归来

  又

  人面不如花面花到开时重见独倚小阑干许多山 落叶西风时候人共青山都瘦说到梦阳台几曾来

  乌夜啼【山行约范先之不至】

  江头醉倒山公月明中记得昨宵归路笑儿童 溪欲转山已断两三松一段可怜风月欠诗翁

  又【先之见和复用韵】

  人言我不如公酒杯中更把平生湖海问儿童 千尺蔓云叶乱系长松却笑一身纒绕似衰翁

  又

  晩花露叶风条燕燕髙行过长廊西畔小红桥 歌再唱人再舞酒纔消更把一杯重劝摘樱桃

  一络索【闺思】

  羞见鉴鸾孤却倩人梳掠一春长是为花愁甚夜夜东风恶 行遶翠帘珠箔锦笺谁托玉觞泪满却停觞怕酒似郎情薄

  又【信守王道夫席上用达夫赋金林擒韵】

  锦帐如云高处不知重数夜深银烛泪成行算都把心期付 莫待燕飞泥污问花花诉不知花定有情无似却怕新词妒

  如梦令【赋梁燕】

  燕子几曾归去只在翠岩深处重到画梁间谁与旧巢为主深许深许闻道鳯凰来住

  忆王孙【秋江送别集古句】

  登山流水送将归悲莫悲兮生别离不用登临怨落晖昔人非帷有年年秋雁飞
!龙川词 宋 陈亮

* 提要
* 龙川词
* 龙川词跋
* 龙川词补遗
* 龙川词补遗跋
   
 
!!提要

  《龙川词》一巻,补遗一巻,宋陈亮撰。亮有《龙川集》别着録。《宋史•艺文志》载:其词四巻,今不传。此集凡词三十首,巳具载本集。然前后不甚铨次,其本为毛晋所刋,分调类编。后有跋称:据家蔵旧刻,盖摘出别行之本。又补遗七首,则从黄升《花庵词》选采入者,词多纤丽,与今集逈殊。或疑赝作,毛晋跋称:黄升与亮俱南渡后人,何至谬误若此,或升惟选绮艳一种,而亮子沈所编今集,特表其父磊落骨干,故若出二手云云,理或然也。  

!!龙川词

  水调歌头(送章徳茂大卿使金)

  不见南师乆,谩说北羣空。当场只手,毕竟还我万夫雄。自笑堂堂汉使,得似洋洋河水,依旧只流东。且复穹庐拜,会向藳街逢。

  尧之都,舜之壤,禹之封,于中应有,一个半个挽琱弓。万里烽烟如许,千古英灵安在,磅礴几时通。世运何湏问,赫日自当中。

  又(癸夘九月十五日寿朱元晦)

  人物从来少,篱菊为谁黄。去年今日,倚楼还是听行藏。未觉霜风无赖,好在月华如水,心事楚天长。讲论叅洙泗,杯酒到虞唐。

  人未醉,歌宛转,兴悠扬,太平胸次,笑他磊磈欲成狂。且向武夷深处,坐对云烟开敛,逸思入微茫。我欲为君寿,何许得新腔。

  又(和吴允成逰灵洞韵)

  人爱新来景,龙认旧时湫。不论三伏,小住便觉凛生秋。我自醉眠其上,任是水流其下,湍激若为収。世事如斯去,不去为谁留。

  本无心,随所寓。触虗舟,东山始末,且向灵洞与沈浮。料得神仙窟穴,争似提封万里,大小几琉球,但有君才具,何用问时流。

  又(和赵周锡)

  事业随人品,今古几麾旌。向来谋国,万事尽出汝书生。安识鹍鹏变化,九万里风在下,如许上南溟。斥鷃旁边笑,河汉一头倾。

  叹世间,多少恨。几时平,覇图消歇,大家创见又成惊。邂逅汉家龙种,正尔乌纱白纻,驰骛觉身轻。樽酒从渠说,双眼为谁明。

  念奴娇(至金陵)

  江南春色,筭来是,多少胜游清赏。妖冶廉纤,只做得,飞鸟向人偎傍。地辟天开,精神朗慧,到底还京様,人家小语,一声声近清唱。

  因念旧日山城,个人如画,已作中州想。邓禹笑人无限也,冷落不堪惆怅。秋水双明,高山一弄,着我些悲壮,南徐好住,片帆有分来往。

  又(登多景楼)

  危楼还望,叹此意,今古几人曾会。龟设神施,浑认作,天限南疆圵界。一水横陈,连岗三面,做出争雄势。六朝何事,只成门户私计。

  因笑王谢诸人,登髙懐逺,也学英雄涕。凭却江山管不到,河洛祲氛无际。正好长驱,不须反顾,寻取中流誓,小儿破贼,势成宁问强对。

  又(送戴少望叅选)

  西风带暑,又还是,长途利牵名役。我已无心,君因甚,更把青衫为客。邂逅卑飞,几时高举,不露真消息。大家行处,到头须管行得。

  何处寻取狂徒,可能着意,更问渠侬骨。天上人间,最好是,闹里一般岑寂。瀛海无波,玉堂有路,穏着青霄翼。归来何事,眼光依旧生碧。

  贺新郎(同刘元实唐与正陪叶丞相饮)

  修竹更深处,映帘栊,清阴障日,坐来无暑。水激泠泠知何许,跳碎危栏玉树。都不系,人间朝莫。东阁少年今老矣,况樽中有酒嫌推去,犹着我名流语。

  大家绿野陪容与,筭等闲,过了薫风,又还商素。手弄柔条人健否,犹忆当时雅趣。恩未报,恐成辜负,举目江河休感涕,念有君,如此应忘阻,歌未罢,谁来舞?

  又(寄辛幼安和见怀韵)

  老去慿谁说,看几番,神奇臭腐,夏裘冬葛。父老长安今余几,后死无雠可雪。犹未燥,当时生髪。二十五弦多少恨,筭世间,那有平分月,羌妇弄汉宫瑟。

  树犹如此堪重别,只使君,从来与我,话头多合,行矣置之无足问,谁换妍皮痴骨。但莫使,伯牙弦絶。九转丹砂牢拾取,管精金,只是铁,龙共虎,声应裂。

  又(酬辛幼安再用韵见寄)

  离乱从头说,爱吾民,金缯不爱,蔓藤累葛。壮笔尽消人脆好,冠盖阴山观雪。亏杀我,一星星髪,涕出女吴成倒转,问鲁为齐,弱何年月,丘也幸,由之瑟。

  斩新换出旗麾别,把当时,一桩大义,拆开収合。据地一呼吾徃矣,万里摇肢动骨。这话覇,只成痴絶,天地洪炉谁扇鞲,算于中,安得长坚铁,淝水破,闗东裂。

  又(懐辛幼安用前韵)

  话杀浑闲说,不成教,齐民也解,为伊为葛,樽酒相逢成二老,却忆去年风雪,新着了,几茎华髪。百世寻人犹接踵,叹只今两地三人月,冩旧恨,向谁瑟。

  男儿何用伤离别,况古来,几畨际会,风从云合。千里情亲长晤对,妙体本心次骨。卧百尺,髙楼斗絶,天下适安耕且老,看买犁卖劎平家铁,壮士泪,肺肝裂。

  满江红(懐韩子师尚书)

  曾洗乾坤,问何事,雄图顿屈。试着眼,阶除当下,又添英物。圵向争衡幽愤在,南来遗恨狂酋失。算凄凉部曲几人存,三之一。

  诸老尽,郎君出,恩未报,家何恤。念横飞直上,有时还戢。笑我只知存饱煗,感君原不论阶级。休更上百尺旧家楼,尘侵帙。

  桂枝香(观木樨有感寄吕郎中)

  天高气肃,正月色分明,秋容新沐,桂子初収,三十六宫都足。不辞散落人间去,怕羣花,自嫌凡俗。向他秋晚,唤回春意,几曾幽独。

  是天公,余香剩馥,怪一树香风,十里相续。坐对花旁,但见色浮金粟。芙蓉只解添愁思,况东篱,凄凉黄菊,入时太浅,背时太逺,爱寻髙躅。

  三部乐(七月送丘宗卿使金)

  小屈穹庐,但二满三平,共劳均佚。人中龙虎,本为明时而出。只合是,端坐王朝。看指挥整办,埽荡飘忽。也持汉节,聊过旧家宫室。

  西风又还带暑,把征衫着上,有时披拂,休将看花泪眼,闻弦病骨。对遗民,有如皎日,行万里,依然故物,入奏几策,天下里,终定于一。

  又(七月卄六日寿王道甫)

  入脚西风,渐去去来来,早三之一。春花无数,毕竟何如秋实。不须待,名品如麻,试为君屈指,是谁层出。十朝半月,争看抟空霜鹘。

  从来别真共假,任盘根错节,更饶仓卒。还他济时好手,封侯奇骨。没些儿,媻姗勃窣,也不是,峥嵘突兀。百二十岁,管做彻,元分人物。

  瑞雪浓慢(六月十一日寿罗春伯)

  蔗浆酪粉,玉壶氷醑,朝罢更闻宣赐。去天咫尺,下拜再三,幸今有母可遗。年年此日,共道月入怀中最贵。向暑天,正风云会遇,有恁嘉瑞。

  鹤冲霄,鱼得水,一超便,直入神仙地。植根江表,开拓两河,做得黒头公未。骑鲸赤手,问何如,长鞭尺棰。向来王谢风流,只今管是。

  阮郎归(重午寿外舅)

  波光渺渺浸晴陂,有亭湖岸西。芰荷香拂栁丝垂,升堂献寿巵。

  红约腕,緑侵衣。愿祝屇期颐。花间妙语欲无诗,一年歌一词。

  祝英台近(六月十一日送叶正则如江陵)

  驾扁舟,冲剧暑。千里江上去,夜宿晨兴。一一旧时路。百年忘了旬头,被人搀破,故纸里,是争雄处。

  怎生诉,欲待细与分疏,其如有凭据。包裹生鱼,活底怎遭遇。相逢樽酒何时,征衫容易,君去也,自家须住。

  又(九月一日寿兪德载)

  嫩寒天,金气雨,揽断一秋事。仝様霏微,还作小晴意。世间万宝都成,些儿无欠,只待与,黄花为地。

  好招致,对此郁郁葱葱,新篘未成醉。番手为云,造物等儿戱,也知冨贵来时,一班呈露,便做出人中祥瑞。

  蝶恋花(甲辰寿元晦)

  手捻黄花还自笑,笑比渊明,莫也归来早。随世功名浑草草,五湖却共繁华老。

  冷淡家生寃得道,旖旎妖娆,春梦如今觉。管领岁华须到了,此花之后花应少。

  卜算子(九月十八日寿徐子才)

  悄静菊花天,洗尽梧桐雨。倍九周遭烂漫开,祝寿当头取。

  顶戴御袍黄,疉秀金棱吐。仙种花容晚节香,人愿争先覩。

  垂丝钓(九月七日自寿)

  菊花细雨,萧萧红蓼汀渚。景物渐幽,风致如许。秋未莫,又值吾初度。

  看天宇,正澄淸欲往。登髙未也,红尘当面飞舞。几人吊古,乌帽牢收取。短髪还羞觑,遐寿身,近五云深处。

  彩鳯飞(一作彩鳯舞 七月十六日寿钱伯同)

  人立玉,天如水,特地如何撰。海南沈烧着,欲寒犹煗。算从头,有多少,厚徳阴功,人家上,一一旧时香案,煞经惯。

  小驻吾州纔尔,依然欢声满。莫也教,公子王孙眼见。这些儿,颕脱处,髙出书巻,经纶自入手,不了判断。

  鹧鸪天(懐王道甫)

  落魄行歌记昔逰,头颅如许尚何求。心肝吐尽无余事,口腹安然岂逺谋。

  纔怕暑,又伤秋,天涯梦断有书不。大都眼孔新来浅,羡尔微官作计周。

  谒金门(送徐子宜如新安)

  新雨足,洗尽山城袢溽。见说好峯三十六,峯峯如立玉。

  四海英逰追逐,事业相时伸缩。入境徳星须做福,只愁金诏趣。

  天仙子(七月十五日寿内)

  一夜秋光先着栁,暑力平明羞失守。西风不放入帘帏,饶永昼,沈烟透。半月十朝秋定否。

  指点芙蕖凝伫久,髙处成莲深处藕。百年长共月团圎,女进酒,男称寿。一点浮云人似旧。

  洞仙歌(丁未寿朱元晦)

  秋容一洗,不受凡尘涴。许大乾坤这回大,向上头,些子是鵰鹗抟空。篱底下,只有黄花几朶。

  骑鲸汗漫,那得人同坐。赤手丹心扑不破,问唐虞,禹汤武多少功名,犹自是,一点浮云铲过,且烧却,一瓣海南沈,任拈取,千年陆沈竒货。

  踏莎行(懐叶八十推官)

  书册如仇,旧逰浑讳,有懐不断人应异。千山上去梦魂轻,片帆似下蛮溪水。

  已共酒杯,长坚海■,见君忽忘花前醉。从来解事苦无多,不知解到毫芒未。

  南乡子(谢永嘉诸友相饯)

  人物满东瓯,别我江心识俊逰。北尽平芜南似画,中流,谁系龙骧万斛舟。

  去去几时休,犹是潮来更上头。醉墨淋漓人感旧,离愁,一夜西风似夏不。

  点绛唇(咏梅月)

  一夜相思,水边清浅横枝瘦。小窻如昼,情共香俱透。

  清入梦魂,千里人长乆。君知否,雨僝云僽,格调还依旧。  
  
!!龙川词跋

  同甫,一名同,永康人。光宗策进士,羣臣奏其巻第三,御笔擢第一。既知为同甫,大喜。又有天留遗朕之诏,其恩遇如此。据叶水心序,其集云四十巻,今行本止三十巻。想尚多佚遗,其最著者,莫如上皇帝四书及酌古论,自赞云:人中之龙,文中之虎。真无忝矣。第本集载词选三十阕。无甚诠次。如寄辛幼安、贺新郎三首,错见前后。予家蔵《龙川词》一巻,又每调类分,未知孰是。读至巻终,不作一妖语媚语,殆所称不受人怜者欤。湖南毛晋识。  
  
!!龙川词补遗

  水龙吟(春恨)

  闹花深处层楼,画帘半卷东风软。春归翠陌,平莎茸嫩,垂杨金浅。迟日催花,淡云阁雨,轻寒轻煗。恨芳菲世界,游人未尝,都付与,莺和燕。

  寂莫凭髙念逺,向南楼,一声归雁。金钗斗草,青丝勒马,风流云散,罗绶分香,翠绡封泪,几多幽怨。正销魂,又是疎烟淡月,子规声断。

  洞仙歌(雨)

  琐窗秋莫,梦髙唐人困,独立西风万千恨。又檐花落处,滴碎空阶,芙容院,无限秋容老尽。

  枯荷摧欲折,多少离声,锁断天涯诉幽闷。似蓬山去后,方士来时,挥粉泪,点点梨花香润。断送得,人间夜霖铃,更叶落梧桐,孤灯成晕。

  虞美人(春愁)

  东风荡扬轻云缕,时送萧萧雨。水边台榭燕新归,一口香泥湿带,落花飞。

  海棠糁径铺香绣,依旧成春痩。黄昏庭院栁啼鸦,记得那人和月,折梨花。

  眼儿媚(春愁)

  试灯天气又春来,难说是情懐。寂寥聊似,扬州何逊,不为江梅。

  扶头酒醒炉香灺,心绪未全灰。愁人最是,黄昏前后,烟雨楼台。

  思佳客(春感)

  花拂阑干栁拂空,花枝绰约栁鬟松。蝶翻淡碧低边影,莺啭浓香杪处风。

  深院落,小帘栊,寻芳犹忆旧相逢。桥边携手归来路,踏皱残花几片红。

  清平乐(秋晚,伯成兄徃龙兴山中,意其登山临水,不无闺房之思。作此词恼之。)

  银屏绣阁,不道鲛绡薄。嘶骑囱囱尘漠漠,还过夕阳村落。

  乱山千叠无情,今宵遮断愁人。两处香消梦觉,一般晓月秋声。

  滴滴金

  断桥雪霁闻啼鸟,对林花,弄晴晓。画角吹香客愁醒,见梢头红小。

  团酥剪蜡知多少,向风前,压春倒。江嶂人烟画图中,有短篷香绕。

 
  
!!龙川词补遗跋

  余正喜同甫,不作妖语媚语。偶阅中兴词选,得水龙吟,以后七阕亦未能超然。但无一调合本集者。或云:赝作。葢花庵与同甫俱南渡后人,何至误谬若此。或花庵专选绮艳一种,而同甫子沈所编本集,特表阿翁磊落骨干,故若出二手。况本集云:词选则知同甫之词,不止于三十阕,即补此花庵所选,亦安得云全豹耶。姑梓之以俟。博雅君子湖南毛晋又识。  
!!鲁颂 駉之什 有駜

有駜有駜,駜彼乘黄。夙夜在公,在公明明。振振鹭,鹭于下。鼓咽咽,醉言舞。于胥乐兮!

有駜有駜,駜彼乘牡。夙夜在公,在公饮酒。振振鹭,鹭于飞。鼓咽咽,醉言归。于胥乐兮!

有駜有駜,駜彼乘駽。夙夜在公,在公载燕。自今以始,岁其有。

君子有穀,诒孙子。于胥乐兮!

!!鲁颂 駉之什 泮水

思乐泮水,薄采其芹。鲁侯戾止,言观其旂。其旂茷々,鸾声哕哕。无小无大,从公于迈。

思乐泮水,薄采其藻。鲁侯戾止,其马蹻々。其马蹻々,其音昭昭。载色载笑,匪怒伊教。

思乐泮水,薄采其茆。鲁侯戾止,在泮饮酒。既饮旨酒,永锡难老。顺彼长道,屈此群丑。

穆穆鲁侯,敬明其德。敬慎威仪,维民之则。允文允武,昭假烈祖。靡有不孝,自求伊祜。

明明鲁侯,克明其德。既作泮宫,淮夷攸服。矫矫虎臣,在泮献馘。淑问如皋陶,在泮献囚。

济济多士,克广德心。桓桓于征,狄彼东南。烝烝皇皇,不吴不扬。不告于訩,在泮献功。

角弓其觩。束矢其搜。戎车孔博。徒御无斁。既克淮夷,孔淑不逆。式固尔犹,淮夷卒获。

翩彼飞鸮,集于泮林。食我桑黮,怀我好音。憬彼淮夷,来献其琛。元龟象齿,大赂南金。

!!鲁颂 駉之什 閟宫

閟宫有侐,实实枚枚。赫赫姜嫄,其德不回。上帝是依,无灾无害。弥月不迟,是生后稷。降之百福。黍稷重穋,稙稚菽麦。奄有下国,俾民稼穑。有稷有黍,有稻有秬。奄有下土,缵禹之绪。

后稷之孙,实维大王。居岐之阳,实始翦商。至于文武,缵大王之绪,致天之届,于牧之野。无贰无虞,上帝临女。敦商之旅,克咸厥功。王曰叔父,建尔元子,俾侯于鲁。大启尔宇,为周室辅。

乃命鲁公,俾侯于东。锡之山川,土田附庸。周公之孙,庄公之子。龙旂承祀。六辔耳耳。春秋匪解,享祀不忒。皇皇后帝!皇祖后稷!享以骍犠,是飨是宜。降福既多,周公皇祖,亦其福女。

秋而载尝,夏而楅衡,白牡骍刚。犠尊将将,毛炰胾羹。笾豆大房,万舞洋洋。孝孙有庆。俾尔炽而昌,俾尔寿而臧。保彼东方,鲁邦是尝。不亏不崩,不震不腾。三寿作朋,如冈如陵。

公车千乘,朱英绿縢。二矛重弓。公徒三万,贝胄朱綅。烝徒增增,戎狄是膺,荆舒是惩,则莫我敢承!俾尔昌而炽,俾尔寿而富。黄发台背,寿胥与试。俾尔昌而大,俾尔耆而艾。万有千岁,眉寿无有害。

泰山岩岩,鲁邦所詹。奄有龟蒙,遂荒大东。至于海邦,淮夷来同。莫不率从,鲁侯之功。

保有凫绎,遂荒徐宅。至于海邦,淮夷蛮貊。及彼南夷,莫不率从。莫敢不诺,鲁侯是若。

天锡公纯嘏,眉寿保鲁。居常与许,复周公之宇。鲁侯燕喜,令妻寿母。宜大夫庶士,邦国是有。既多受祉,黄发儿齿。

徂徕之松,新甫之柏。是断是度,是寻是尺。松桷有舄,路寝孔硕,新庙奕奕。奚斯所作,孔曼且硕,万民是若。
<div class="tc-table-of-contents">

<<toc-selective-expandable '目录'>>

</div>
!关于内容分享声明

我们基于“''内容希望被共享''”的理念,创建了伯乐手册,从而鼓励内容被更多的分享传播。

在鼓励分享内容的同时,我们也希望内容创作者的权利得到保护。


因此,我们参考[[CC知识共享协议|http://creativecommons.net.cn/]]提出内容共享声明,并提倡内容分享者在发布内容时,选择三种声明中的任意一种,从而保护自己的权利。



!第一种声明:

署名-相同方式分享-维权代理

!第二种声明:

禁止商用-署名-相同方式分享-维权代理

!第三种声明

禁止商用-禁止演绎-署名-相同方式分享-维权代理


!关于上述声明中五项条件的说明:

!!署名
*其他任何人在使用用户所分享的内容时,必须提到原作者

!!禁止商用

*不得用于盈利性目的

!!禁止演绎

*不得修改原作品, 不得再创作

!!相同方式分享

*在分享内容时,必须使用和原作相同的内容分享声明,且该声明的内容必须在作品中显著位置展示。

!!维权代理

*如果在使用包含了[[内容分享声明|http://www.bolebook.com/#ContentShareStatements]]的内容时,违反了内容分享声明,则内容创作者将委托律师或其他维权组织作为维权代理。


!对内容分享声明的解释:

内容分享声明,是内容创作者(包含原创者、再创作者)在发布内容时同步发布的声明。

声明的目的在于鼓励内容更多的被分享,同时要求内容使用者尊重内容创作者的权利。

!!补充条款(仅适用于伯乐手册上分享的内容):


*一、''如果内容创作者没有主动声明'',则__''默认采用第一种声明。''__

*二、如果内容创作者没有事先指定,即默认[[伯乐手册|http://www.bolebook.com]]作为维权代理。当然,内容创作者可以根据自己的要求更换维权代理

以上协议的正式法律文本未来将会补充完整。







请点击控制台,然后在信息 那一栏下面修改文件名、作者名等信息。

我们不建议修改其他内容

当然了,如果你希望修改也可以,毕竟下载到你的桌面的文件都属于你。

欧阳修词集评

[采桑子]

轻舟短棹西湖好,绿水逶迤。芳草长堤。隐隐笙歌处处随。  无风水面琉璃滑,不觉船移。微动涟漪。惊起沙禽掠岸飞。

【集评】  

许昂宵云:“闲雅处,自不可及。”(《词综偶评》)

俞陛云云:“下阕四句,极肖湖上行舟波平如镜之状。‘不觉船移’四字,下语尤妙。”(《宋词选释》)

[采桑子]

春深雨过西湖好,百卉争妍。蝶乱蜂喧。晴日催花暖欲然。  兰桡画舸悠悠去,疑是神仙。返照波间。水阔风高飏管弦。

采桑子

画船载酒西湖好,急管繁弦。玉盏催传。稳泛平波任醉眠。  行云却在行舟下,空水澄鲜。俯仰留连。疑是湖中别有天。

【集评】

俞陛云云:“湖水澄澈时,如在镜中,云影天光,上下一色,‘行云’数语,能道出之。”(《宋词选释》)

采桑子

群芳过后西湖好,狼籍残红。飞絮蒙蒙。垂柳阑干尽日风。  笙歌散尽游人去,始觉春空。垂下帘栊。双燕归来细雨中。

【集评】

谭献云:“‘群芳过后’句,埽处即生,‘笙歌散尽游人去’句,悟语是恋语。”(谭评《词辨》)

俞陛云云:“西湖在宋时堤上乡车,湖中画舸,极游观之盛。此词独写静镜,别有意味。”(《宋词选释》)

刘永济云:“此词虽意在写暮春景物,而作者胸怀恬适之趣,同时表达出之。作者此词皆从世俗繁华生活之中渗透一层着眼。盖世俗之人多在群芳正盛之时游览西湖,作者却于飞花、飞絮之外,得出寂静之镜。世俗之人皆随笙歌散去;作者却于人散、春空之后,领略自然之趣。其后苏轼作词,皆直写胸怀,因而将词体提升与诗同等。此种风气,欧阳修已开其端,特至东坡方大加发展,遂令词风为之一变。盖风气之成,必有其渐,非可突然而至也。”(《唐五代两宋词简析》)

采桑子

何人解赏西湖好,佳景无时。飞盖相追。贪向花间醉玉卮。  谁知闲凭阑干处,芳草斜晖。水远烟微。一点沧洲白鹭飞。

采桑子

清明上巳西湖好,满目繁华。争道谁家。绿柳朱轮走钿车。  游人日暮相将去,醒醉諠哗。路转堤斜。直到城头总是花。

采桑子

荷花开后西湖好,载酒来时。不用旌旗。前后红幢绿盖随。  画船撑入花深处,香泛金卮。烟雨微微。一片笙歌醉里归。

采桑子

天容水色西湖好,云物俱鲜。鸥鹭闲眠。应惯寻常听管弦。 风清月白偏宜夜,一片琼田。谁羡骖鸾。人在舟中便是仙。

采桑子

残霞夕照西湖好,花坞苹汀。十顷波平。野岸无人舟自横。  西南月上浮云散,轩槛凉生。莲芰香清。水面风来酒面醒。

采桑子

平生为爱西湖好,来拥朱轮。富贵浮云。俯仰流年二十春。 归来恰似辽东鹤,城郭人民。触目皆新。谁识当年旧主人。

采桑子

画楼钟动君休唱,往事无踪。聚散匆匆。今日欢娱几客同。  去年绿鬓今年白,不觉衰容。明月清风。把酒何人忆谢公。

采桑子

十年一别流光速,白首相逢。莫话衰翁。但斗尊前语笑同。  劝君满酌君须醉,尽日从容。画鹢牵风。即去朝天沃舜聪。

采桑子

十年前是尊前客,月白风清。忧患凋零。老去光阴速可惊。  鬓华虽改心无改,试把金觥。旧曲重听。犹似当年醉里声。

朝中措〔送刘仲原甫出守维扬〕

平山阑槛倚晴空。山色有无中。手种堂前垂柳,别来几度春风。  文章太守,挥毫万字,一饮千钟。行乐直须年少,尊前看取衰翁。

[词话]

《词苑》云:“‘山色有无中’,欧阳公咏平山堂句也,或谓平山堂望江南诸山甚近,公短视故耳。东坡为公解嘲,乃赋快哉亭词云:‘记得平山堂上,欹枕江南烟雨。杳杳没孤鸿。认得醉翁语,山色有无中。’盖山色有无,非烟雨不能也。然公词起句是‘平山阑槛倚晴空’,安得烟雨,恐东坡终不能为公解矣。”(《历代词余》附词话引)

《蓼园词选》云:“欧阳文忠公守维扬日,于西城北大明寺侧建平山堂,颇得游观之胜。金华刘原父出守扬州,文忠公作《朝中措》以饯之,后东坡亦守是邦,登平山堂有感而赋《西江月》一阕云:‘三过平山堂下,半生弹指声中。十年不见老仙翁。壁上龙蛇飞动。   欲吊文章太守,仍歌杨柳春风。休言万事转头空。未转头时皆梦。’末句感慨之意,见于言外。”

【集评】

潘游龙云:“只山色一句,此堂已足千古。”(《古今诗余醉》)

李廷机云:“山色有无中,写景绝。”(《新刻注释草堂诗余评林》)

黄蓼园云:“按君子进德修业,欲及时也。无事不在少年努力者,现身说法,神采奕奕动人。”(《蓼园词选》)

长相思

苹满溪。柳绕堤。相送行人溪水西。回时陇月低。  烟霏霏。风凄凄。重倚朱门听马嘶。寒鸥相对飞。

吾云:当宦海沉浮之际,颇多身世之感。一片凄清迷茫之境,此情亦然。

长相思

花似伊。柳似伊。花柳青春人别离。低头双泪垂。  长江东。长江西。两岸鸳鸯两处飞。相逢知几时。

吾云:相见时难别亦难。况青春年少,最易动情。

长相思

深花枝。浅花枝。深浅花枝相并时。花枝难似伊。 		玉如肌。柳如眉。爱着鹅黄金缕衣。啼妆更为谁。

【集评】

沈际飞云:“真声不可删”(《草堂诗余续集》)

诉衷情〔眉意〕

清晨帘幕卷轻霜。呵手试梅妆。都缘自有离恨,故画作远山长。  思往事,惜流芳。易成伤。拟歌先敛,欲笑还颦,最断人肠。

踏莎行

候馆梅残,溪桥柳细。草熏风暖摇征辔。离愁渐远渐无穷,迢迢不断如春水。  寸寸柔肠,盈盈粉泪。楼高莫近危阑倚。平芜尽处是春山,行人更在春山外。

【集评】

卓人月云:“‘芳草更在斜阳外’、‘行人更在春山外’两句,不厌百回读。”(《古今词统》)

杨慎云:“佛经云:‘奇草芳花,能逆风闻熏。’江淹《别赋》:‘闺中风暖,陌上草熏。’正用佛经语。《六一词》云:‘草熏风暖摇征辔’,又用江淹语。今《草堂词》改‘熏’作‘芳’,盖未见《文选》者也。”又云:“欧阳公词:‘平芜尽处是春山,行人更在春山外。’石曼卿诗:‘水尽天不尽,人在天尽头。’欧与石同时,且为文字友,其偶同乎?抑相取乎?”(《词品》)

沈际飞云:“春水春山走对妙。望断江南山色,远人不见草连天,一望无际矣。尽处是春山,更在春山外,转望转远矣。当取以合看。”(《草堂诗余正集》)

李攀龙云:“春水写愁,春山骋望,极切极婉。”(《草堂诗余隽》)

王世贞云:“‘平芜尽处是春山,行人更在春山外。’又:‘郴山幸自绕郴山,为谁流下潇湘去。’此淡语之有情者也。”(《艺苑卮言》)

董其昌云:“别调有云:‘便作一江春水都是泪,流不尽许多情。’意同。”(《便读草堂诗余》)

茅映云:“结语韵致更远。”(《词的》卷三)

王士禛云:“‘平芜尽处是春山,行人更在春山外。’升庵以拟石曼卿‘水尽人不尽,人在天尽头。’未免河汉。盖意近而工细悬殊,不啻霄壤。且此等入词为本色,入诗则失古雅,可与知者道耳。”(《苑草蒙拾》)

许昂宵云:“‘春山’疑当作‘青山’,否则既用‘春水’,又用两‘春山’字,未免稍复矣。”(《词综偶评》)

黄蓼园云:“按此词特为赠别作耳。首阕言时物喧妍,征辔之去,自是得意,其如我之离愁不断何?次阕言不敢遥望,俞望俞远也。语语倩丽,情文雯亹。”(《蓼园词选》)

俞陛云云:“唐宋人诗词中送别怀人者,或从居处着想,或从行者着想,能言情婉挚,便成佳构。此词则两面兼写,前半首言征人驻马回头,愈行愈远,如春水迢迢,却望长亭,已隔万重云树。后半首为送行者设想,倚阑凝睇,心倒肠回,望清山无际,遥想斜日鞭丝,当已出清山之外。如鸳鸯之烟岛分飞,互相回首也。以章法论,候馆溪桥,言行人所经历,柔肠粉泪,言思妇之荡情。情同而景判,前后阕之章法井然。(《宋词选释》)

刘永济云:“此亦托为闺人别情,实乃自抒己情也,与晏殊《踏莎行》二词同。上半阕行者自道离情;下半阕则居者怀念行者。此词之行者,当即作者本人。欧阳修因作书责高若讷,吕夷简排斥孔道辅、范仲淹诸人,被高将其书呈之政府,因而被贬为夷陵令。”(《唐五代两宋词简析》)

踏莎行

雨霁风光,春分天气。千花百卉争明媚。画梁新燕一双双,玉笼鹦鹉愁孤睡。 	 薜荔依墙,莓苔满地。青楼几处歌声丽。蓦然旧事上心来,无言敛皱眉山翠。

吾云:婉丽自然。上阕写鹦鹉之愁孤眠;下阕写青楼女子之心事。

望江南

江南蝶,斜日一双双。身似何郎全傅粉,心如韩寿爱偷香。天赋与轻狂。  微雨后,薄翅腻烟光。才伴游蜂来小院,又随飞絮过东墙。长是为花忙。

吾云:采花贼之写照?或为某种人生之比况。

减字木兰花

留春不住。燕老莺慵无觅处。说似残春。一老应无却少人。  风和月好。办得黄金须买笑。爱惜芳时。莫待无花空折枝。

吾云:惜春。

减字木兰花

伤怀离抱。天若有情天亦老。此意如何。细似轻丝渺似波。  扁舟岸侧。枫叶荻花秋索索。细想前欢。须着人间比梦间。

吾云:叹老。人生易老且如梦。

减字木兰花

楼台向晓。淡月低云天气好。翠幕风微。宛转梁州入破时。  香生舞袂。楚女腰肢天与细。汗粉重匀。酒后轻寒不着人。

吾云:舞女歌伎。“入破”舞曲名。不仅有人物形容体态之描绘,亦有环境气氛之烘托。

减字木兰花

画堂雅宴。一抹朱弦初入遍。慢捻轻笼。玉指纤纤嫩剥葱。  拨头利。怨月愁花无限意。红粉轻盈。倚暖香檀曲未成。

吾云:宛然微型《琵琶行》。刻画入微,尺幅千里。

减字木兰花

歌檀敛袂。缭绕雕梁尘暗起。柔润清圆。百琲明珠一线穿。  樱唇玉齿。天上仙音心下事。留往行云。满坐迷魂酒半醺。

吾云:极尽比喻夸饰之能事。歌声绕梁,尘埃为之起;歌喉柔圆,似明珠一线。心中事,无人会,众人皆醉我独醒。天上人间。

生查子

去年元夜时,花市灯如昼。月到柳梢头,人约黄昏后。  今年元夜时,月与灯依旧。不见去年人,泪满春衫袖。

【集评】

徐士俊云:“元曲之称绝者,不过得此法。”(《古今词统》卷三)

王士禛云:“今世所传女郎朱淑真‘去年元夜时,灯市花如昼’(《生查子》词),见《欧阳文忠公集》一百三十一卷,不知何以讹为朱氏之作。世遂因此词,疑淑真失妇德,纪载不可不慎也。”(《池北偶谈》卷十四)

陆以湉云:“‘去年元夜’一词,本欧阳公作。后人误编入《断肠集》(渔洋山人亦尝辨之),遂疑朱淑真为泆女,皆不可不辨。按‘去年元夜’词,非朱淑真作,信矣。”(《冷庐杂识》卷四)

生查子

含羞整翠鬟,得意频相顾。雁柱十三弦,一一春莺语。  娇云容易飞,梦断知何处。深院锁黄昏,阵阵芭蕉雨。

【集评】

吾云:繁华过尽皆憔悴。

黄蓼园云:“按‘一一’字从‘频’字生来,‘春莺语’从‘得意’字生来。前一阕写得意时情怀,无限旖旎;次一阕写别后情怀,无限凄苦;胥于筝寓之。凡遇合无常,思妇中年,英雄末路,读之皆堪下泪。”(《蓼园词选》)

清商怨

关河愁思望处满。渐素秋向晚。雁过南云,行人回泪眼。  双鸾衾裯悔展。夜又永、枕孤人远。梦未成归,梅花闻塞管。

吾按:据《欧阳修词笺注》黄畲笺注补。

阮郎归

刘郎何日是来时。无心云胜伊。行云犹解傍山飞。郎行去不归。  强匀画,又芳菲。春深轻薄衣。桃花无语伴相思。阴阴月上时。

吾云:无限况怨。“行云犹解傍山飞”,含不尽之怨意。

阮郎归

落花浮水树临池。年前心眼期。见来无事去还思。而今花又飞。  浅螺黛,淡燕脂。闲妆取次宜。隔帘风雨闭门时。此情风月知。

吾云:“见来无事去还思”句,道人想道而不能道,妙极!

沈际飞云:“波折婉约。”(《草堂诗余续集》)

蝶恋花

帘幕东风寒料峭。雪里香梅,先报春来早。红蜡枝头双燕小。金刀剪彩呈纤巧。  旋暖金炉熏蕙藻。酒入横波,困不禁烦恼。绣被五更春睡好。罗帏不觉纱窗晓。

吾云:写春风得意时。“雪里香梅,先报春来早”,近水楼台先得月也。

蝶恋花

南雁依稀回侧阵。雪霁墙阴,遍觉兰芽嫩。中夜梦余消酒困。炉香卷穗灯生晕。  急景流年都一瞬。往事前欢,未免萦方寸。腊后花期知渐近。东风已作寒梅信。

吾云:对急景流年、往事前欢之回味,如对春之期盼。“东风已作寒梅信。”充满喜悦之情。

沈际飞云:“境趣情皆在内而指不出,妙。”(《草堂诗余续集》)

蝶恋花

腊雪初销梅蕊绽。梅雪相和,喜鹊穿花转。睡起夕阳迷醉眼。新愁长向东风乱。  瘦觉玉肌罗带缓。红杏梢头,二月春犹浅。望极不来芳信断。音书纵有争如见。

吾云:“红杏梢头,二月春犹浅。望极不来芳信断。”盼人之情溢于言表。前景后情相互映衬,更显相思之切。

蝶恋花

海燕双来归画栋。帘影无风,花影频移动。半醉腾腾春睡重。绿鬟堆枕香云拥。  翠被双盘金缕凤。忆得前春,有个人人共。花里黄莺时一弄。日斜惊起相思梦。

 吾云:“花里黄莺时一弄”有性挑逗之嫌。

【集评】

  潘游龙云:“前以惊梦起,以伤春转,后以伤春起,惊梦转,大概一机局,而笔性远过之。”(《古今诗余醉》卷四)

李廷机云:“此亦有感而言,辞气流利,足爽人口。”(《新刻注释草堂诗余评林》)                                                                                                                                                                                                                                                                                    

蝶恋花

面旋落花风荡漾。柳重烟深,雪絮飞来往。雨后轻寒犹未放。春愁酒病成惆怅。  枕畔屏山围碧浪。翠被华灯,夜夜空相向。寂寞起来褰绣幌。月明正在梨花上。

蝶恋花

帘幕风轻双语燕。午后醒来,柳絮飞撩乱。心事一春犹未见。红英落尽青苔院。  百尺朱楼闲倚遍。薄雨浓云,抵死遮人面。羌管不须吹别怨。无肠更为新声断。

吾云:别怨已旧,肠已百回千回为之断。怨之深沉。

蝶恋花

庭院深深深几许。杨柳堆烟,帘幕无重数。玉勒雕鞍游冶处。楼高不见章台路。   雨横风狂三月暮。门掩黄昏,无计留春住。泪眼问花花不语。乱红飞过秋千去。

校记

此首又作冯延巳词,见《阳春集》。按李清照词序:“欧阳公作《蝶恋花》,有‘庭院深深深几许’之句,予酷爱之,用其语作‘庭院深深’数阕,其声即《临江仙》也。”当可信。

蝶恋花

永日环堤乘彩舫。烟草萧疏,恰似晴江上。水浸碧天风皱浪。菱花荇蔓随双桨。  红粉佳人翻丽唱。惊起鸳鸯,两两飞相向。且把金尊倾美酿。休思往事成惆怅。

吾云:此词似有寄托,“往事”者何?

蝶恋花

越女采莲秋水畔。窄袖轻罗,暗露双金钏。照影摘花花似面。芳心只共丝争乱。 鸂鶒滩头风浪晚。雾重烟轻,不见来时伴。隐隐歌声归棹远。离愁引着江南岸。

[集评]

谭献云:“‘窄袖轻罗,暗露双金钏’句,言小人常态。‘雾重烟轻,不见来时伴’句,言君子道消。”(《徐珂历代词选集评》)

沈际飞云:“美人是花真身。”又云:“如丝争乱,吾恐为荡妇矣。”(《草堂诗余续集》)

蝶恋花

水浸秋天风皱浪。缥缈仙舟,只似秋江上。和露采莲愁一饷。看花却是啼妆样。  折得莲茎丝未放。莲断丝牵,特地成惆怅。归棹莫随花荡漾。江头有个人想望。

吾云:大有《江南曲》之情味。比拟双关,情景浑然。

蝶恋花

梨叶初红蝉韵歇。银汉风高,玉管声凄切。枕簟乍凉铜漏彻。谁教社燕轻离别。  草际虫吟秋露结。宿酒醒来,不记归时节。多少衷肠犹未说。珠帘夜夜朦胧月。

吾云:蝉韵、玉管、虫吟,其声凄切,足以撩拨人之悲凉心绪;况梨叶初红,枕簟乍凉,社燕离别,夜月朦胧。

蝶恋花

独倚危楼风细细。望极离愁,黯黯生天际。草色山光残照里。无人会得凭阑意。  也拟疏狂图一醉。对酒当歌,强饮还无味。衣带渐宽都不悔。况伊消得人憔悴。

吾云:此词有豪放疏狂之气。

蝶恋花

帘下情歌帘外宴,虽爱新声,不见如花面。牙板数敲珠一串。梁尘暗落琉璃盏。  桐树花深孤凤怨。渐遏遥天,不放行云散。坐上少年听未惯。玉山将倒肠先断。

吾按:据《欧阳修词笺注》黄畲笺注补。又写歌会,兼及遣兴。“渐遏遥天,不放行云散”句极尽拟人夸饰之能事,妙!

蝶恋花

翠苑红芳晴满目。绮席流莺,上下长相逐。紫陌闲随金轣辘。马蹄踏遍春郊绿。  	一觉年华春梦促。往事悠悠,百种寻思足。烟雨满楼山断续。人闲倚遍阑干曲。

吾云:触景生情,景为情媒;景无限,情缠绵。“往事悠悠”难忘却。

蝶恋花

小院深深门掩亚。寂寞珠帘,画阁重重下。欲近禁烟微雨罢。绿杨深处秋千挂。  傅粉狂游犹未舍。不念芳时。眉黛无人画。薄幸未归春去也。杏花零落香红谢。

吾云:“杏花零落香红谢”句,含不尽之怅惘之意。

蝶恋花

欲过清明烟雨细。小槛临窗,点点残花坠。梁燕语多惊晓睡。银屏一半堆香被。  新岁风光如旧岁。所恨征轮,渐渐程迢递。纵有远情难写寄。何妨解有相思泪。

吾云:上阕写晓梦惊醒,慵懒无聊;下阕写思念其人,情思难寄,惟有相思泪。

蝶恋花

画阁归来春又晚。燕子双飞,柳软桃花浅。细雨满天风满院。愁眉敛尽无人见。  独倚阑干心绪乱。芳草芊绵,尚忆江南岸。风月无情人暗换。旧游如梦空肠断。

吾云:流转自然,清空雅正。

蝶恋花

尝爱西湖春色早。腊雪方销,已见桃开小。顷刻光阴都过了。如今绿暗红英少。  且趁余花谋一笑。况有笙歌,艳态相萦绕。老去风情应不到。凭君剩把芳尊倒。

吾云:叹流年,惜往事,不胜悲。

渔家傲

一派潺湲流碧涨。新亭四面山相向。翠竹岭头明月上。迷俯仰。月轮正在泉中漾。  更待高秋天气爽。菊花香里开新酿。酒美宾嘉真胜赏。红粉唱。山深分外歌声响。

渔家傲

十月小春梅蕊绽。红炉画阁新装遍。锦帐美人贪睡暖。羞起晚。玉壶一夜冰澌满。  楼上四垂帘不卷。天寒山色偏宜远。风急雁行吹字断。红日短。江天雪意云撩乱。

渔家傲〔与赵康靖公〕

四纪才名天下重。三朝构厦为梁栋。定册功成身退勇。辞荣宠。归来白首笙歌拥。  顾我薄才无可用。君恩近许归田垅。今日一觞难得共。聊对捧。官奴为我高歌送。

渔家傲

暖日迟迟花袅袅。人将红粉争花好。花不能言惟解笑。金壶倒。花开未老人年少。  车马九门来扰扰。行人莫羡长安道。丹禁漏声衢鼓报。催昏晓。长安城里人先老。

渔家傲

红粉墙头花几树。落花片片和惊絮。墙外有楼花有主。寻花去。隔墙遥见秋千侣。  绿索红旗双彩柱。行人只得偷回顾。肠断楼南金锁户。天欲暮。流莺飞到秋千处。

渔家傲

妾本钱塘苏小妹。芙蓉花共门相对。昨日为逢青伞盖。慵不采。今朝斗觉凋零煞。  愁倚画楼无计奈。乱红飘过秋塘外。料得明年秋色在。香可爱。其如镜里花颜改。

吾云:叹年华易逝,青春难再。又此为代言体。不同于温飞卿之作闺音者。

渔家傲

花底忽闻敲两桨。逡巡女伴来寻访。酒盏旋将荷叶当。莲舟荡。时时盏里生红浪。  花气酒香清厮酿。花腮酒面红相向。醉倚绿阴眠一饷。惊起望。船头阁在沙滩上。

吾云:其情可睹,其态可掬。人面荷花相映红。意趣横生。

渔家傲

叶有清风花有露。叶笼花罩鸳鸯侣。白锦顶丝红锦羽。莲女妒。惊飞不许长相聚。  日脚沈红天色暮。青凉伞上微微雨。早是水寒无宿处。须回步。枉教雨里分飞去。

吾云:相亲相爱鸳鸯侣。

渔家傲

荷叶田田青照水。孤舟挽在花阴底。昨夜萧萧疏雨坠。愁不寐。朝来又觉西风起。  雨摆风摇金蕊碎。合欢枝上香房翠。莲子与人长厮类。无好意。年年苦在中心里。

吾云:学习化用民歌,显然。

渔家傲

叶重如将青玉亚。花轻疑是红绡挂。颜色清新香脱洒。堪长价。牡丹怎得称王者。  雨笔露笺匀彩画。日炉风炭熏兰麝。天与多情丝一把。谁厮惹。千条万缕萦心下。

[集评]

沈际飞云:“奇丽谛详,莲词允推永叔。”又云:“同叔(晏殊)词:‘莲叶层层张丝伞,莲房个个垂金盏,一把藕丝牵不断。’略相当。”(《草堂诗余别集》)

渔家傲

粉蕊丹青描不得。金针线线功难敌。谁傍暗香轻采摘。风淅淅。船头触散双鸂鵣。   夜雨染成天水碧。朝阳借出胭脂色。欲落又开人共惜。秋气逼。盘中已见新荷的。

渔家傲

幽鹭谩来窥品格。双鱼岂解传消息。绿柄嫩香频采摘。心似织。条条不断谁牵役。  珠泪暗和清路滴。罗衣染尽秋江色。对面不言情脉脉。烟水隔。无人说似长相忆。

渔家傲

楚国细腰元自瘦。文君腻脸谁描就。日夜鼓声催箭漏,昏复昼,红颜岂得长如旧。  醉拆嫩房红蕊嗅。天丝不断清香透。却傍小阑凝望久。风满袖。西池月上人归后。

吾按:据《欧阳修词笺注》黄畲笺注补。

吾云:过度寻欢作乐是对人身心的摧残。

渔家傲〔七夕〕

喜鹊填河仙浪浅。云軿早在星桥畔。街鼓黄昏霞尾暗。炎光敛。金钩侧倒天西面。  一别经年今始见。新欢往恨知何限。天上佳期贪眷恋。良宵短。人间不合催银箭。

吾云:天上人间皆有情,恨只恨相见少别离多。此词写来如行云流水,可谓才际天人。

渔家傲

乞巧楼头云幔卷。浮花催洗严妆面。花上蛛丝寻得遍。颦笑浅。双眸望月牵红线。  奕奕天河光不断。有人正在长生殿。暗付金钗清夜半。千秋愿。年年此会长相见。

吾云:此处化用唐明皇事。

渔家傲

别恨长长欢计短。疏钟促漏真堪怨。此会此情都未半。星初转。鸾琴凤乐匆匆卷。  河鼓无言西北盼。香蛾有恨东南远。脉脉横波珠泪满。归心乱。离肠便逐星桥断。

吾云:借以抒写别离之情。

渔家傲

九日欢游何处好。黄花万蕊雕阑绕。通体清香无俗调。天气好。烟滋露结功多少。  日脚清寒高下照。宝钉密缀圆斜小。落叶西园风袅袅。催秋老。丛边莫厌金尊倒。

吾云:写秋日赏菊。

渔家傲

青女霜前催得绽。金钿乱散枝头遍。落帽台高开雅宴。芳尊满。挼花吹在流霞面。  桃李三春虽可羡。莺来蝶去芳心乱。争似仙潭秋水岸。香不断。年年自作茱萸伴。

吾云:有点典重。所写不过重九宴集赏菊饮酒之事而已。

渔家傲

露裛娇黄风摆翠。人间晚秀非无意。仙格淡妆天与丽。谁可比。女真装束真相似。  筵上佳人牵翠袂。纤纤玉手挼新蕊。美酒一杯花影腻。邀客醉。红琼共作熏熏媚。

吾云:写宴会,大有花间之余绪。

渔家傲

对酒当歌劳客劝。惜花只惜年华晚。寒艳冷香秋不管。情眷眷。凭阑尽日愁无限。  思抱芳期随塞雁。悔无深意传双燕。怅望一枝难寄远。人不见。楼头望断相思眼。

吾云:人老花黄,但情意不减当年。

玉楼春〔题上林后亭〕(一名木兰花令)

风迟日媚烟光好。绿树依依芳意早。年华容易即凋零,春色只宜长恨少。  池塘隐隐惊雷晓。柳眼未开梅萼小。尊前贪爱物华新,不道物新人渐老。

玉楼春

西亭饮散清歌阕。花外迟迟宫漏发。涂金烛引紫骝嘶,柳曲西头归路别。  佳辰只恐幽期阔。密赠殷勤衣上结。翠屏魂梦莫相寻,禁断六街清夜月。

吾云:情人赠别。

[集评]

沈际飞云:“衣上结,尽密赠之况。”(《草堂诗余续集》)

玉楼春

春山敛黛低歌扇。暂解吴钩登祖宴。画楼钟动已魂销。何况马嘶芳草岸。  青门柳色随人远。望欲断时肠已断。洛城春色待君来,莫到落花飞似霰。

[集评]

沈际飞云:“随人远妙景。”又云:“本自屈曲,而但见庄浑。”(《草堂诗余续集》)

玉楼春

尊前拟把归期说。未语春容先惨咽。人生自是有情痴,此恨不关风与月。  离歌且莫翻新阕。一曲能教肠寸结。直须看尽洛城花,始共春风容易别。

[集评]

沈际飞云:“风月特寄情,而非即情,语超然。”(《草堂诗余续集》)

王国维云:“永叔‘人间自是有情痴,此恨不管风与月。’‘直须看尽洛城花,始与东风容易别。’于豪放之中,有沉着之至,所以尤高。”(《人间词话》卷上)

玉楼春

洛阳正值芳菲节。秾艳清香相间发。游丝有意苦相萦,垂柳无端争赠别。  杏花红处青山缺。山畔行人山下歇。今宵谁肯远相随,惟有寂寥孤馆月。

玉楼春

残春一夜狂风雨。断送红飞花落树。人心花意待留春,春色无情容易去。  高楼把酒愁独语。借问春归何处所?暮云空阔不知音,惟有绿杨芳草路。

玉楼春

常忆洛阳风景媚。烟暖风和添酒味。莺啼宴席似留人,花出墙头如有意。  别来已隔千山翠。望断危楼斜日坠。关心只为牡丹红,一片春愁来梦里。

吾云:颇有心寄魏阙之意。奈何相隔千山万里。

玉楼春

池塘水绿春微暖。记得玉真初见面。从头歌韵响铮钅宗,入破舞腰红乱旋。  玉钩帘下香阶畔。醉后不知红日晚。当时共我赏花人,点检如今无一半。

校记:此首未见诸《欧阳修词笺注》(黄畲笺注)玉楼春

两翁相遇逢佳节。正值柳绵飞似雪。便须豪饮敌青春,莫对新花羞白发。  人生聚散如弦筈。老去风情尤惜别。大家金盏倒垂莲,一任西楼低晓月。

吾云:此翁雄风豪气丝毫不减当年。

玉楼春

西湖南北烟波阔。风里丝簧声韵咽。舞余裙带绿双垂,酒入香腮红一抹。  杯深不觉琉璃滑。贪看六么花十八。明朝车马各西东,惆怅画桥风与月。

吾云:西湖狎妓。

沈际飞云:“双垂,余之态,一抹,入之神,绣令复工。”(《草堂诗余续集》)

玉楼春

燕鸿过后春归去。细算浮生千万绪。来如春梦几多时,去似朝云无觅处。  闻琴解佩神仙侣。挽断罗衣留不住。劝君莫作独醒人,烂醉花间应有数。

吾云:赵宋文士冶游狎妓似乎为一种习尚。

玉楼春

蝶飞芳草花飞路。把酒已嗟春色暮。当时枝上落残花,今日水流何处去。  楼前独绕鸣蝉树。忆把芳条吹暖絮。红莲绿芰亦芳菲,不奈金风兼玉露。

[集评]

黄畲云:“这首词从春写到夏,从夏写到秋,秋风秋露使红莲绿芰凋零,有无可奈何的感叹。《欧阳修词笺注》

玉楼春

别后不知君远近。触目凄凉多少闷。渐行渐远渐无书,水阔鱼沉何处问。  夜深风竹敲秋韵。万叶千声皆是恨。故欹单枕梦中寻,梦又不成灯又烬。

玉楼春

红条约束琼肌稳。拍碎香檀催急衮。陇头鸣咽水声繁,叶下间关莺语近。  美人才子传芳信。明月清风伤别恨。未知何处有知音,常为此情留此恨。

吾云:“拍碎香檀催急衮。陇头鸣咽水声繁,叶下间关莺语近。”化白居易《琵琶行》。下同,宛然小小《琵琶行》。

玉楼春

檀槽碎响金丝拨。露湿浔阳江上月。不知商妇为谁愁,一曲行人留夜发。  画堂花月新声别。红蕊调长弹未彻。暗将深意祝胶弦,唯愿弦弦无断绝。

玉楼春

春葱指甲轻拢捻。五彩垂绦双袖卷。雪香浓透紫檀槽,胡语急随红玉腕。  当头一曲情何限。入破铮琮金凤战。百分芳酒祝长春,再拜敛容抬粉面。

玉楼春

金花盏面红烟透。舞急香茵随步皱。青春才子有新词,红粉佳人重劝酒。  也知自为伤春瘦。归骑休交银烛候。拟将沈醉为清欢,无奈醒来还感旧。

玉楼春

雪云乍变春云簇。渐觉年华堪送目。北枝梅蕊犯寒开,南浦波纹如酒绿。  芳菲次第还相续。不奈情多无处足。尊前百计得春归,莫为伤春歌黛蹙。

玉楼春

黄金弄色轻于粉。濯濯春条如水嫩。为缘力薄未禁风,不奈多娇长似困。  腰柔乍怯人相近。眉小未知春有恨。劝君着意惜芳菲,莫待行人攀折尽。

吾云:怜香惜玉之情溢于言表。

玉楼春

珠帘半下香销印。二月东风催柳信。琵琶傍畔且寻思,鹦鹉前头休借问。  惊鸿过后生离恨。红日长时添酒困。未知心在阿谁边,满眼泪珠言不尽。

玉楼春

沉沉庭院莺吟弄。日暖烟和春气重。绿杨娇眼为谁回,芳草深心空自动。  倚阑无语伤离凤。一片风情无处用。寻思还有旧家心,蝴蝶时时来役梦。

玉楼春

去时梅萼初凝粉。不觉小桃风力损。梨花最晚又凋零,何事归期无定准。  阑干倚遍重来凭。泪粉偷将红袖印。蜘蛛喜鹊误人多,似此无凭安足信。

玉楼春

酒美春浓花世界。得意人人千万态。莫教辜负艳阳天,过了堆金何处买。  已去少年无计奈。且愿芳心长恁在。闲愁一点上心来,算得东风吹不解。

玉楼春

湖边柳外楼高处。望断云山多少路。阑干倚遍使人愁,又是天涯初日暮。  轻无管系狂无数。水畔花飞风里絮。算伊浑似薄情郎,去便不来来便去。

[集评]

沈际飞云:“问人何似冶游郎,疑信总妙。”(《草堂诗余续集》)

徐士俊评末句云:“李知己‘坐待不来来又去’,极肖。”(《古今词统》卷八)

玉楼春

南园粉蝶能无数。度翠穿红来复去。倡条冶叶恣留连,飘荡轻于花上絮。  朱阑夜夜风兼露。宿粉栖香无定所。多情翻却似无情,赢得百花无限妒。

吾云:艳情词也。

玉楼春(子规)

江南三月春光老。月落禽啼天未晓。露和啼血染花红,恨过千家烟树杪。  云垂玉枕屏山小。梦欲成时惊觉了。人心应不似伊心,若解思归归合早。

[集评]

潘游龙云:“末句比拟精当,且矫健。”(《古今诗余醉》)

玉楼春

东风本是开花信。信至花时风更紧。吹开吹谢苦匆匆,春意到头无处问。  把酒临风千万恨。欲扫残红犹未忍。夜来风雨转离披,满眼凄凉愁不尽。

玉楼春

阴阴树色笼晴昼。清淡园林春过后。杏腮轻粉日催红,池面绿罗风卷皱。  佳人向晚新妆就。圆腻歌喉珠欲溜。当筵莫放酒杯迟,乐事良辰难入手。

玉楼春

芙蓉斗晕燕支浅。留住晚花开小宴。画船红日晓风清,柳色溪光晴照暖。  美人争劝梅花盏。舞困玉腰裙缕慢。莫交银灯促归期,已祝斜阳休更晚。

校评:据《欧阳修词笺注》补。

渔家傲

正月斗杓初转势。金刀剪彩功夫异。称庆高堂欢幼稚。看柳意。偏从东面春风至。  十四新蟾圆尚未。楼前乍看红灯试。冰散绿池泉细细。鱼欲戏。园林已是花天气。

渔家傲

二月春耕昌杏密。百花次第争先出。惟有海棠梨第一。深浅拂。天生红粉真无匹。  画栋归来巢未失。双双款语怜飞乙。留客醉花迎晓日。金盏溢。却忧风雨飘零疾。

渔家傲

三月清明天婉娩。晴川祓禊归来晚。况是踏青来处远。犹不倦。秋千别闭深庭院。  更值牡丹开欲遍。酴醿压架清香散。花底一尊谁解劝。增眷恋。东风向晚无情绊。

渔家傲

四月园林春去后。深深密幄阴初茂。折得花枝犹在手。香满袖。叶间梅子青如豆。  风雨时时添气候。成行新笋霜筠厚。题就送春诗几首。聊对酒。樱桃色照银盘溜。

渔家傲

五月榴花妖艳烘。绿杨带雨垂垂重。五色新丝缠角粽。金盘送。生绡画扇盘双凤。  正是浴兰时节动。菖蒲酒美清尊共。叶里黄鹂时一弄。犹惺瞢松。等闲惊破纱窗梦。

渔家傲

六月炎天时霎雨。行云涌出奇峰露。沼上嫩莲腰束素。风兼露。梁王宫阙无烦暑。  畏日亭亭残蕙炷。傍帘乳燕双飞去。碧碗敲冰倾玉处。朝与暮。故人风快凉轻度。

渔家傲

七月新秋风露早。渚莲尚拆庭梧老。是处瓜华时节好。金尊倒。人间彩缕争祈巧。  万叶敲声凉乍到。百虫啼晚烟如扫。箭漏初长天杳杳。人语悄。那堪夜雨催清晓。

渔家傲

八月秋高风历乱。衰兰败芷红莲岸。皓月十分光正满。清光畔。年年常愿琼筵看。  社近愁看归去燕。江天空阔云容漫。宋玉当时情不浅。成幽怨。乡关千里危肠断。

渔家傲

九月霜秋秋已尽。烘林败叶红相映。惟有东篱黄菊盛。遗金粉。人家帘幕重阳近。  晓日阴阴晴未定。授衣时节轻寒嫩。新雁一声风又劲。云欲凝。雁来应有吾乡信。

渔家傲

十月小春梅蕊绽。红炉画阁新装遍。鸳帐美人贪睡暖。梳洗懒。玉壶一夜轻澌满。  楼上四垂帘不卷。天寒山色偏宜远。风急雁行吹字断。红日晚。江天雪意云撩乱。

 [集评]

沈际飞云:“山不近而远,而风致犹可掬,作诗词者那能舍却山水。”(《草堂诗余正集》)

俞陛云云:“后阕状江山寒色,足为‘清远’二字。此调旧刻凡三十二首,以《珠玉词》搀入,汲古阁定为二十首,此首最为擅胜。”(《宋词选释》)

渔家傲

十一月新阳排寿宴。黄钟应管添宫线。猎猎寒威云不卷。风头转。时看雪霰吹人面。  南至迎长知漏箭。书云纪候冰生研。腊近探春春尚远。闲庭院。梅花落尽千千片。

渔家傲

十二月严凝天地闭。莫嫌台榭无花卉。惟有酒能欺雪意。增豪气。直教耳热笙歌沸。  陇上雕鞍惟数骑。猎围半合新霜里。霜重鼓声寒不起。千人指。马前一雁寒空坠。

[集评]

杨慎云:“宋欧阳修六一作十二月鼓子词,即今之《渔家傲》也。元欧阳圭斋亦拟为之,专咏元世燕风物。”(《词品补》)

渔家傲 京本《时贤本事曲子后集》云:欧阳文忠公,文章之宗师也。其于小词,尤脍炙人口。有十二月词,寄渔家傲调中,本集亦未尝载,今列之于此。前已有十二篇鼓子词,此未知果公作否。

正月新阳生翠管。花苞柳线春犹浅。帘幕千重方半卷。池冰泮。东风吹水琉璃软。  渐好凭阑醒醉眼。陇梅暗落芳英断。初日已知长一线。清宵短。梦魂怎奈珠宫远。

渔家傲

二月春期看已半。江边春色青犹短。天气养花红日暖。深深院。真珠帘额初飞燕。  渐觉衔杯心绪懒。酒侵花脸娇波慢。一捻闲愁无处遣。牵不断。游丝百尺随风远。

渔家傲

三月芳菲看欲暮。胭脂泪洒梨花雨。宝马绣轩南陌路。笙歌举。踏青斗草人无数。  强欲留春春不住。东皇肯信韶容故。安得此身如柳絮。随风去。穿帘透幕寻朱户。

渔家傲

四月芳林何悄悄。绿阴满地青梅小。南陌采桑何窈窕。争语笑。乱丝满腹吴蚕老。  宿酒半醒新睡觉。皱莺相语匆匆晓。惹得此情萦寸抱。休临眺。楼头一望皆芳草。

渔家傲

五月熏风才一信。初荷出水清香嫩。乳燕学飞帘额峻。谁借问。东邻期约尝佳酝。  漏短日长人乍困。裙腰减尽柔肌损。一撮眉尖千叠恨。慵整顿。黄梅雨细多闲闷。

渔家傲

六月炎蒸何太盛。海榴灼灼红相映。天外奇峰千掌回。风影定。汉宫圆扇初成咏。  珠箔初褰深院静。绛绡衣窄冰肤莹。睡起日高堆酒兴。厌厌病。宿酲和梦何时醒。

渔家傲

七月芙蓉生翠水。明霞拂脸新妆媚。疑是楚宫歌舞妓。争宠丽。临风起舞夸腰细。  乌鹊桥边新雨霁。长河清水冰无地。此夕有人千里外。经年岁。犹嗟不及牵牛会。

渔家傲

八月微凉生枕簟。金盘露洗秋光淡。池上月华开宝鉴。波潋滟。故人千里应凭槛。  蝉树无情风苒苒。燕归碧海珠帘掩。沈臂昌霜潘鬓减。愁黯黯。年年此夕多悲感。

渔家傲

九月重阳还又到。东篱菊放金钱小。月下风前愁不少。谁语笑。吴娘捣练腰肢袅。  槁叶半轩慵更扫。凭阑岂是闲临眺。欲向南云新雁道。休草草。来时觅取伊消耗。

渔家傲

十月轻寒生晚暮。霜华暗卷楼南树。十二阑干堪倚处。聊一顾。乱山衰草还家路。  悔别情怀多感慕。胡笳不管离心苦。犹喜清宵长数鼓。双绣户。梦魂尽远还须去。

渔家傲

律应黄钟寒气苦。冰生玉水云如絮。千里乡关空倚慕。无尺素。双鱼不食南鸿渡。  把酒遣愁愁已去。风摧酒力愁还聚。却忆兽炉追旧处。头懒举。炉灰剔尽痕无数。

渔家傲

腊月年光如激浪。冻云欲折寒要向。谢女雪诗真绝唱。无比况。长堤柳絮飞来往。  便好开尊夸酒量。酒阑莫遣笙歌放。此去青春都一饷。休怅望。瑶林即日堪寻访。

南歌子

凤髻金泥带,龙纹玉掌梳。走来窗下笑相扶。爱道画眉深浅、入时无。  弄笔偎人久,描花试手初。等闲妨了绣功夫。笑问双鸳鸯字、怎生书。

[集评]

徐士俊云:“‘爱道画眉深浅入时无’句,‘娥眉不肯让人’即在入时句中。”

(《古今词统》卷七)

潘游龙云:“首写态,后描情,各尽其妙。”(《古今诗余醉》)

先着云:“公老成名德而小词当行乃尔!”(《词洁》)

许昂宵云:“真觉娉娉袅袅。”(《词综偶评》)

御街行

夭非华艳轻非雾。来夜半、天明去。来如春梦不多时,去似朝云何处。乳鸡酒燕,落星沈月,紞紞城头鼓。  参差渐辨西池树。朱阁斜欹户。绿苔深径少人行,苔上屐痕无数。遗香余粉,剩衾闲枕,天把多情赋。

吾云:当是艳情词。

桃源忆故人

梅梢弄粉香犹嫩。欲寄江南春信。别后寸肠萦损。说与伊争稳。  小炉独守寒灰烬。忍泪低头画尽。眉上万重新恨。竟日无人问。

桃源忆故人

莺愁燕苦春归去。寂寂花飘红雨。碧草绿杨岐路。况是长亭暮。  少年行客情难诉。泣对东风无语。目断两三烟树。翠隔江淹浦。

临江仙

柳外轻雷池上雨,雨声滴碎荷声。小楼西角断虹明。阑干倚处,待得月华生。  燕子飞来窥画栋,玉钩垂下帘旌。凉波不动簟纹平。水精双枕,傍有堕钗横。

[词话]

《钱氏私志》云:“欧文忠任河南推官,亲一妓。时先文僖(钱惟演)罢政,为西京留守,梅圣俞、谢希深、尹师鲁同在幕下。惜欧有才无行,共白于公,屡讽而不之恤。一日,宴于后园,客集而欧与妓俱不至,移时方来,在坐相视以目。公责妓云:‘末至何也?’妓云:‘中暑往凉堂睡着,觉失金钗,犹未见。’公曰:‘若得欧推官一词,当为偿汝。’欧即席云(词如上从略),坐客皆称善。遂命妓满酌觞欧,而令公库偿钗。”

[集评]

沈际飞云:“雨忽虹,虹忽月,夏景尔尔,拈笔不同。玩末句风韵直当凌厉秦黄 ,一金钗曷足以偿之。”(《草堂诗余正集》卷二)

许昂宵云:“不假雕饰,自成绝唱。”(《词综偶评》)

俞陛云云:“后三句善写丽情。未乖贞则,自是雅奏。”(《宋词选释》)

临江仙

记得金銮同唱第,春风上国繁华。如今薄宦老天涯。十年岐路,空负曲江花。  闻说阆山通阆苑,楼高不见君家。孤城寒日等闲斜。离愁难尽,红树远连霞。

词品

释文莹《湘山野录》云:“欧阳公顷谪滁州,一同年将赴阆倅(副职官),因访之,即席为一曲歌以送。其飘逸清远,皆李白之品流也。”

圣无忧

世路风波险,十年一别须臾。人生聚散长如此,相见且欢娱。  好酒能消光景,春风不染髭须。为公一醉花前倒,红袖莫来扶。

浪淘沙

把酒祝东风。且共从容。垂杨紫陌洛城东。总是当时携手处,游遍芳丛。  聚散苦匆匆。此恨无穷。今年花胜去年红。可惜明年花更好,知与谁同。

[集评]

沈际飞云:“末三句虽少含蓄,不失为情语。”(《草堂诗余正集》卷二)

董其昌云:“欧阳公云:‘把酒祝东风,且共从容。’与东坡《虞美人》云:‘持杯邀劝天边月,愿月圆无缺。’同一意致。”(《古今词话》)

黄蓼园云:“按末二句忧盛危明之义,持盈保泰之心,在天道则亏盈易谦之理,俱可悟得。大有理趣,却不庸腐,粹然儒者之言。令人玩味不尽。”(《蓼园诗选》)

俞陛云云:“因惜花而怀友,前欢寂寂,后会悠悠,至情语以一气挥写,可谓深情如水,行气如虹矣》”(《宋词选释》)

浪淘沙

花外倒金翘。饮散无聊。柔桑蔽日柳迷条。此地年时曾一醉,还是春朝。  今日举轻桡。帆影飘飘。长亭回首短亭遥。过尽长亭人更远,特地魂销。

浪淘沙

五岭麦秋残。荔子初丹。绛纱囊里水晶丸。可惜天教生处远,不近长安。  往事忆开元。妃子偏怜。一从魂散马嵬关。只有红尘无驿使,满眼骊山。

[集评]

林宾王云:“诗余荔枝之咏,作者既少,遂无擅长,独欧阳公《浪淘沙》一首,稍存感慨悲凉耳。”(冯金伯《词苑华编》卷二十三引)

浪淘沙

万恨苦绵绵。旧约前欢。桃花溪畔柳阴间。几度日高春睡重,绣户深关。  楼外夕阳闲。独自凭阑。一重水隔一重山。水阔山高人不见,有泪无言。

浪淘沙

今日北池游。漾漾轻舟。波光潋滟柳条柔。如此春来春又去,白了人头。  好妓好歌喉。不醉难休。劝君满满酌金瓯。纵使花时常病酒,也是风流。

[集评]

潘游龙云:“别病不可,病酒何妨。快甚。”(《古今诗余醉》卷三)

定风波

把酒花前欲问他。对花何吝醉颜酡。春到几人能烂赏。何况。无情风雨等闲多。  艳树香丛都几许。朝暮。惜红愁粉奈情何。好是金船浮玉浪。相向。十分深送一声歌。

定风波

把酒花前欲问伊。忍嫌金盏负春时。红艳不能旬日看。宜算。须知开谢只相随。  蝶去蝶来犹解恋。难见。回头还是度年期。莫候饮阑花已尽。方信。无人堪与补残枝。

定风波

把酒花前欲问公。对花何事诉金钟。为问去年春甚处。虚度。莺声撩乱一场空。  今岁春来须爱惜。难得。须知花面不长红。待得酒醒君不见。千片。不随流水即随风。

定风波

把酒花前欲问君。世间何计可留春。纵使青春留得住。虚语。无情花对有情人。  任是好花须落去。自古。红颜能得几时新。暗想浮生何时好。唯有。清歌一曲倒金尊。

定风波

过尽韶华不可添。小楼红日下层檐。春睡觉来情绪恶。寂寞。杨花缭乱拂珠帘。  早是闲愁依旧在。无奈。那堪更被宿酲兼。把酒送春惆怅甚。长恁。年年三月病厌厌。

定风波

对酒追欢莫负春。春光归去可饶人。昨日红芳今绿树。已暮。残花飞絮两纷纷。  粉面丽姝歌窈窕。清妙。尊前信任醉醺醺。不是狂心贪燕乐。自觉。年来白发满头新。

蓦山溪

新正初破,三五银蟾满。纤手染香罗,剪红莲、满城开遍。楼台上下,歌管咽春风,驾香轮,停宝马,只待金乌晚。  帝城今夜,罗绮谁为伴。应卜紫姑神,问归期、相思望断。天涯情绪,对酒且开颜,春宵短。春寒浅。莫待金杯暖。

浣溪沙

云曳香绵彩柱高。绛旗风飐出花梢。一梭红带往来抛。  束素美人羞不打,却嫌裙慢褪纤腰。日斜深院影空摇。

[集评]

沈际飞云:“实粘秋千,纡回换眩。(《草堂诗余续集》)

浣溪沙

堤上游人逐画船。拍堤春水四垂天。绿杨楼外出秋千。  白发戴花君莫笑,六么催拍盏频传。人生何处似尊前。

[集评]

杨慎云:“不惟调句宛藻,而造理甚微,足唤醒人。”(《草堂诗余》卷一)

沈际飞云:“一‘出’字亦后人着意道不到处,未苟达人之言。”(《草堂诗余正集》)

陈霆云:“欧阳旧有春日词云:‘绿杨楼外出秋千’,前辈叹赏,谓止一‘出’字是着力道不到处,他日咏秋千作《浣溪沙》云:‘云曳香绵彩柱高,绛旗风飐出花梢。’予谓虽同用‘出’字,然视前句,其风致不侔。”(《渚山堂词话》卷二)

王士禛云:“‘楼上晴天碧四垂’,本韩侍郎‘泪眼倚楼天四垂’。不妨亚佳。欧文忠‘拍堤春水四垂天’,柳员外‘目断四天垂’,皆本韩句而意致少减。”(《花草蒙拾》)

黄蓼园云:“按第一阕写世上儿女多少得意欢娱,第二阕写老成意趣,自在众人喧嚣之外,末句写无限凄怆沉郁,妙在含蓄不尽。(《蓼园词选》)

王国维云:“欧九《浣溪沙》词:‘绿杨楼外出秋千’,晁补之谓‘只一出字,便后人所不能道。’余谓此本于正中(冯延巳)《上行杯》词:‘柳外秋千出画墙’,但欧语尤工耳。”(《人间词话》)

俞陛云云:“侯鲭録》云永叔《浣溪沙》词‘堤上游人逐画船’三句,皆绝妙,‘绿杨楼外出秋千’之‘出’字,是后人着意道不到处。黄鲁直云:‘六一翁曲子,余所见及白首,或谓音律小有不谐。’余谓如《浣溪沙》词,横放杰出,是曲子中缚不住者。”(《宋词选释》)

浣溪沙

湖上朱桥响画轮。溶溶春水浸春云。碧琉璃滑净无尘。  当路游丝萦醉客,隔花啼鸟唤行人。日斜归去奈何春。

[集评]

杨慎云:“‘奈何春’三字,新而远。”(《草堂诗余》卷一)

忘世贞云:“永叔、东坡,极不能作丽语,而亦有之,永叔如‘当路游丝迎醉客,隔花啼鸟唤行人。’东坡如‘彩索身轻常趁燕,红窗睡重不闻莺。’胜人百倍。”(张宗橚《词林纪事》引)

董其昌云:“触景赋诗,古人胸次何等活波波地。”(《便读草堂诗余》)

沈际飞云:“人谓永叔不能作丽语,如隔花句……非丽语耶!奈何二字春色撩人。”(《草堂诗余正集》)

徐士俊云:“‘日斜归去奈何天’句,汤若士(汤显祖)‘良辰美景奈何天’本此。”(《古今词统》卷四)

潘游龙云:“隔花句丽,奈何字,春色无边。”(《古今诗余醉》卷三)

黄蓼园云:“‘奈何春’三字,,‘唤’字下得有情,而‘奈何’字自然脱口而出,不拘是比是赋,读之亶亶情长。“(《蓼园词选》)

俞陛云云:“上阕写水畔春光明媚,风景宛然;下阕写嬉春之醉客行人,营营扰扰,而游丝啼鸟,复作意撩人,在冷眼观之,徒唤奈何,惟有日斜归去耳。“(《宋词选释》)

浣溪沙

叶底青青杏子垂。枝头薄薄柳绵飞。日高深院晚莺啼。  堪恨风流成薄幸。断无消息道归期。托腮无语翠眉低。

吾云:状物写情,细致入微。“托腮无语翠眉低。”一句,以定格或造型之法,人物之心思尽在其中也。

浣溪沙

青杏园林煮酒香。佳人初着薄罗裳。柳丝摇曳燕飞忙。  乍雨乍晴花自落,闲愁闲闷昼偏长。为谁消瘦损容光。

浣溪沙

红粉佳人白玉杯。木兰船稳棹歌催。绿荷风里笑声来。  细雨轻烟笼草树。斜桥曲水绕楼台。夕阳高处画屏开。

浣溪沙

翠袖娇鬟舞《石州》。两行红粉一时羞。新声难逐管弦愁。  白发主人年未老,清时贤相望偏优。一尊风月为公留。

浣溪沙

灯烬垂花月似霜。薄帘映月两交光。酒醺红粉自生香。  双手舞余拖翠袖,一声歌已釂金觞。休回娇眼断人肠。

浣溪沙

十载相逢酒一卮。故人才见便开眉。老来游旧更同谁。  浮世歌欢真易失。宦途离合信难期。尊前莫惜醉如泥。

御带花

青春何处风光好、帝里偏爱元夕。万重缯彩,构一屏峰岭,半空金碧。宝檠银釭,耀绛幕、龙虎腾掷。沙堤远,雕轮绣毂,争走五王宅。  雍容熙熙作画会,乐府神姬、海洞仙客。拽香摇翠,称执手行歌,锦街天陌。月淡寒轻,渐向晓,漏声寂寂。当年少、狂心未已,不醉怎归得。

虞美人

炉香昼永龙烟白。风动金鸾额。画屏寒掩小山川。睡容初起枕痕圆。坠花钿。  楼高不及烟霄半。望尽相思眼。艳阳刚爱挫愁人。故生芳草碧连云。怨王孙。

鹤冲天

梅谢粉,柳拖金。香满旧园林。养花天气半晴阴。花好却愁深。  花无数。愁无数。花好却愁春去。戴花持酒祝东风。千万莫匆匆。

夜行船

忆昔西都欢纵。自别后、有谁能共。伊川山水洛川花,细寻思、旧游如梦。  今日相逢情愈重。愁闻唱、画楼钟动。白发天涯逢此景,倒金尊、殢谁相送。

夜行船

满眼东风飞絮。催行色、短亭春暮。落花流水草连云,看看是、断肠南浦。  檀板未终人去去。扁舟在、绿杨深处。手把金尊难为别,更那听、乱莺疏雨。

洛阳春

红纱未晓黄鹂语。蕙炉销兰炷。锦屏罗幕护春寒,昨夜三更雨。  绣帘闲倚吹轻絮。敛眉山无绪。看花拭泪向归鸿,问来处、逢郎否?

雨中花

千古都门行路。能使离歌声苦。送尽行人,花残春晚,又到君东去。  醉藉落花吹暖絮。多少曲堤芳树。且携手留连,良辰美景,留作相思处。

越溪春

三月十三寒食日,春色遍天涯。越溪阆苑繁华地,傍禁垣、珠翠烟霞。红粉墙头,秋千影里,临水人家。  归来晚驻香车。银箭透窗纱。有时三点两点雨霁,朱门柳细风斜。沉麝不烧金鸭冷,笼月照梨花。

贺圣朝影

白雪梨花红粉桃。露华高。垂杨慢舞绿丝条。草如袍。  风过小池轻浪起,似江皋。千金莫惜买香醪。且陶陶。

洞天春

莺啼绿树声早。槛外残红未扫。露点真珠遍芳草。正帘帏清晓。  秋千宅院悄悄。又是清明过了。燕蝶轻狂,柳丝撩乱,春心多少。

忆汉月

红艳几枝轻袅。新被东风开了。倚烟啼露为谁娇,故惹蝶怜蜂恼。  多情游赏处,留恋向、绿丛千绕。酒阑欢罢不成归,肠断月斜春老。

清平乐

小庭春老。碧砌红萱草。长忆小栏闲共绕。携手绿丛含笑。  别来音信全乖。旧期前事堪猜。门掩日斜人静,落花愁点青苔。

凉州令〔东堂石榴〕

翠树芳条飐。的的裙腰初染。佳人携手弄芳菲,绿阴红影,共展双纹簟。插花照影窥鸾鉴。只恐芳容减。不堪零落春晚,青苔雨后深红点。

一去门闲掩。重来却寻朱槛。离离秋实弄轻霜,娇红脉脉,似见胭脂脸。人非事往眉空敛。谁把佳期赚。芳心只愿长依旧,春风更放明年艳。

[集评]

沈际飞云:“始终详宛,不以为纤。”(《草堂诗余续集》)

南乡子

翠密红繁。水国凉生未是寒。雨打荷花珠不定,轻翻。冷泼鸳鸯锦翅斑。  尽日凭阑。弄蕊拈花仔细看。偷得褭蹄新铸样,无端。藏在红房艳粉间。

南乡子

雨后斜阳。细细风来细细香。风定波平花映水,休藏。照出轻盈半面妆。  路隔秋江。莲子深深隐翠房。意在莲心无问处,难忘。泪裛红腮不记行。

[集评]

沈际飞云:“诗中有双关二意,其法乃比之变。比本用事,一变而用意,再变而用声。或有比事比意更比声者。此比事比意若何?曰藕几时莲,更比声。”(《草堂诗余续集》)

鹊桥仙

月波清霁,烟容明淡,灵汉旧期还至。鹊迎桥路接天津,映夹岸、星榆点缀。  云屏未卷,仙鸡催晓,肠断去年情味。多应天意不教长,凭恐把、欢娱容易。

圣无忧

珠帘卷,暮云愁。垂杨暗锁青楼。烟雨濛濛如画,轻风吹旋收。  香断锦屏新别,人闲玉簟初秋。多少旧欢新恨,书杳杳、梦悠悠。

摸鱼儿

卷绣帘、梧桐秋院落,一霎雨添新绿。对小池闲立残妆浅,向晚水纹如縠。凝远目。恨人去寂寂,凤枕孤难宿。倚阑不足。看燕拂风簷,蝶翻露草,两两长相逐。  双眉促。可惜年华婉娩,西风初弄庭菊。况伊家年少,多情未已难拘束。那堪更趁凉景,追寻甚处垂杨曲。佳期过尽,但不说归来,多应忘了,云屏去时祝。

少年游

去年秋晚此园中。携手玩芳丛。拈花嗅蕊,恼烟撩雾,拚醉倚西风。  今年重对芳丛处,追往事、又成空。敲遍阑干,向人无语,惆怅满枝红。

少年游

肉红圆样浅心黄。枝上巧如装。雨轻烟重,无聊天气,啼破晓来妆。  寒轻贴体风头冷,忍抛弃、向秋光。不会深心,为谁惆怅,回面恨斜阳。

少年游

玉壶冰莹兽炉灰。人起绣帘开。春丛一夜,六花开尽,不待剪刀催。  洛阳城阙中天起,高下遍楼台。絮乱风轻,拂鞍沾袖,归路似章街。

鹧鸪天

学画宫眉细细长。芙蓉出水斗新妆。只知一笑能倾国,不信相看有断肠。  双黄鹄,两鸳鸯。迢迢云水恨难忘。早知今日长相忆,不及从初莫作双。

千秋岁(以下録《醉翁琴趣外编》)

罗衫满袖,尽是忆伊泪。残妆粉,余香被。手把金尊酒,未饮先如醉。但向道,厌厌成病皆因你。  离思迢迢远,一似长江水。去不断,来无际。红笺著意写,不尽相思意。为个甚,相思只在心儿里。

千秋岁

画堂人静,翡翠帘前月。鸾帷凤枕虚铺设。风流难管束,一去音书歇。到而今,高梧冷落西风切。  未语先垂泪,滴尽相思血。魂欲断,情难绝。都来些子事,更与何人说。为个甚,心头见底多离别。

醉蓬莱

见羞容敛翠,嫩脸匀红,素腰袅娜。红药阑边,恼不教伊过。半掩娇羞,语声低颤,问道有人知么。强整罗裙,偷回波眼,佯行佯坐。  更问假如,事还成后,乱了云鬟,被娘猜破。我且归家,你而今休呵。更为娘行,有些针线,诮未曾收啰。却待更阑,庭花影下,重来则个。

于飞乐

宝奁开,美鉴静,一掬清蟾。新妆脸,旋学花添。蜀红衫,双绣蝶、裙缕鹣鹣。寻思前事,小屏风、仍画江南。  怎空教、草解宜男。柔桑密、又过春蚕。正阴晴天气,更瞑色相兼。佳期消息,曲房西、碎月筛帘。

鼓笛慢

缕金裙窣轻纱,透红莹玉真堪爱。多情更把,眼儿斜盼,眉儿敛黛。舞态歌阑,困偎香脸,酒红微带。便直饶、更有丹青妙手,应难写、天然态。  长恐有时不见,每饶伊、百般娇騃。眼穿肠断,如今千种,思量无奈。花谢春归,梦回云散,欲寻难再。暗消魂,但觉鸳衾凤枕,有余香在。

看花回	

晓色初透东窗,醉魂方觉。恋恋绣衾半拥,动万感脉脉,春思无託。追想少年,何处青楼贪欢乐。当媚景,恨月愁花,算伊全妄凤帏约。  空泪滴、真珠暗落。又被谁、连宵留著。不晓高天甚意,既付与风流,却恁情薄。细把身心自解,只与猛拚却。又及生、见来了,怎生教人恶。

蝶恋花

几度兰房听禁漏,臂上残妆,印得香盈袖。酒力融融香汗透。春娇入眼横波留。  不见些时眉已皱。水阔山遥,乍向分飞后。大抵有情须感旧。肌肤拚为伊销瘦。

蝶恋花〔咏枕儿〕

宝琢珊瑚山样瘦。缓髻轻拢,一朵云生袖。昨夜佳人初命偶。论情旋旋移相就。  几叠鸳衾红浪皱。暗觉金钗,磔磔声相扣。一自楚台人梦后。凄凉暮雨沾裀绣。

蝶恋花

一掬天和金粉腻。莲子心中,自有深深意。意密莲深秋正媚。将花寄恨无人会。  桥上少年桥下水。小棹归时,不语牵红袂。浪浅荷心圆又碎。无端欲伴相思泪。

蝶恋花

百种相思千种恨。早是伤春,那更春醪困。薄幸辜人终不忿。何时枕畔分明问。  懊恼风流心一寸。强醉偷眠,也即依前闷。此意为君君不信。泪珠滴尽愁难尽。

武陵春

宝幄华灯相见夜,妆脸小桃红。斗帐香檀翡翠笼。携手恨怱怱。  金泥双结同心带,留与记情浓。却望行云十二峰。肠断月斜钟。

梁州令

红杏墙头树。紫萼香心初吐。新年花发旧时枝,徘徊千绕,独共东风语。阳台一梦如云雨。为问今何处?离情别恨多少,条条结向垂杨缕。  此事难分付。初心本谁先许。窃香解佩两沉沉,知他而今,记得当初否?谁教薄幸轻相误。不信道、相思苦。如今却恁空追悔,元来也会忆人去。

渔家傲

为爱莲房都一柄。双苞双蕊双红影。雨势断来风色定。秋水静。仙郎彩女临鸾镜。  妾有容华君不省。花无恩爱犹相并。花却有情人薄幸。心耿耿。因花又染相思病。

渔家傲

昨日采花花欲尽。隔花闻道潮来近。风猎紫荷声又紧。低难奔。莲茎刺惹香腮损。  一缕艳痕红隐隐。新霞点破秋蟾晕。罗袖挹残心不稳。羞人问。归来剩把胭脂衬。

渔家傲

一夜越溪秋水满。荷花开过溪南岸。贪采嫩香星眼慢。疏回眄。郎船不觉来身畔。  罢采金英收玉腕。回身急打船头转。荷叶又浓波又浅。无方便。教人只得抬娇面。

渔家傲

近日门前溪水涨。郎船几度偷相访。船小难开红斗帐。无计向。合欢影里空惆怅。  愿妾身为红菡萏。年年生在秋江上。重愿郎为花底浪。无隔障。随风逐雨长来往。

渔家傲

妾解清歌并巧笑。郎多才俊兼年少。何事抛儿行远道。无音耗。江头又绿王孙草。  昔日采花呈窈窕。玉容长笑花枝老。今日采花添懊恼。伤怀抱。玉容不及花枝好。

一斛珠

今朝祖宴。可怜明夜孤灯馆。酒醒明月空床满。翠被重重,不似香肌暖。  	愁肠恰似沉香篆。千回万转萦还断。梦中若得相寻见。却愿春宵,一夜如年远。

惜芳时

因倚栏台翠云亸。睡未足、双眉尚锁。潜身走向伊行坐。孜孜地、告他梳裹。  发妆酒冷重温过。道要饮、除非伴我。丁香嚼碎偎人睡,犹记恨、夜来些个。

洞仙歌令

楼前乱草,是离人方寸。倚遍阑干意无尽。罗巾掩,宿粉残眉、香未减,人与天涯共远。  香闺知人否,长是厌厌,拟写相思寄归信。未写了,泪成行、早满香笺。相思字、一时滴损。便直饶、伊家总无情,也拚了一生,为伊成病。

洞仙歌令

情知须病,奈自家先肯。天甚教伊恁端正。忆年时、栏棹独倚春风,相怜处、月影花光相映。  别来凭谁诉,空寄香笺,拟问前欢甚时更。后约与新期,易失难寻,空肠断、损风流心性。除只把、芳尊强开颜,奈酒到愁肠,醉了还醒。

鹊踏枝

一曲尊前开画扇。暂近还遥,不语仍低面。直至情多缘少见。千金不直双回眄。  苦恨行云容易散。过尽佳期,争向年芳晚。百种寻思千万遍。愁肠不似情难断。

品令

渐素景。金风劲。早是凄凉孤冷。那堪闻、蛩吟穿金井。唤愁绪难整。  懊恼人人薄倖。负云期雨信。终日望伊来,无凭准。闷损我、也不定。

燕归梁

风摆红藤卷绣帘。宝鉴慵拈。日高梳洗几时忺。金盆水、弄纤纤。  髻云谩亸残花淡,和娇媚、瘦嵓嵓。离情更被宿酲兼。空惹得、病厌厌。

燕归梁

屏里金炉帐外灯。掩春睡腾腾。绿云堆枕乱鬅鬙 。犹依约、那回曾。  人生少有,相怜到老,宁不被天憎。而今前事总无凭。空赢得、瘦稜稜。

圣无忧

相别重相遇,恬如一梦须臾。尊前今日欢娱事,放盏旋成虚。  莫惜斗量珠玉,随他雪白髭须。人间长久身难得,斗在不如吾。

新释

	此为感慨人生之作,“相别重相逢,恬如一梦须臾”万事恬然处之,这是历练有素者的感悟之言。表达的是一种狂放的洒脱的思想和人生态度。

锦香囊

一寸相思无著处。甚夜长难度。灯花前、几转寒更,桐叶上、数声秋雨。  真个此心终难负。况少年情绪。已交共、春茧缠绵,终不学、钿筝移柱。

系裙腰

水轩簷幕透熏风。银塘外、柳烟浓。方床遍展鱼鳞簟,碧纱笼。小墀面、对芙蓉。  玉人共处双鸳枕,和娇困、睡朦胧。起来意懒含羞态,汗香融。素裙腰,映酥胸。

阮郎归

浓香搓粉细腰肢。青螺深画眉。玉钗撩乱挽人衣。娇多常睡迟。  绣帘角,月痕低。仙郎东路归。泪红满面湿胭脂。蘭芳怨别离。

阮郎归去年今日落花时。依前又见伊。淡匀双脸浅匀眉。青衫透玉肌。  才会面,便相思。相思无尽期。这回相见好相知。相知已是迟。

阮郎归

玉肌花脸柳腰肢。红妆浅黛眉。翠鬟斜亸语声低。娇羞云雨时。  伊怜我,我怜伊。心儿与眼儿。绣屏深处说深期。幽情谁得知。

怨春郎

为伊家,终日闷。受尽悽惶谁问。不知不觉上心头,悄一霎身心顿也没处顿。  恼愁肠,成寸寸。已恁莫把人萦损。奈每每人前道着伊,空把相思泪眼和衣揾。

滴滴金

尊前一把横波溜。彼此心儿有。曲屏深幌解香罗,花灯微透。  偎人欲语眉先皱。红玉困春酒。为问鸳衾这回后。几时重又。

卜算子

极得醉中眠,迤逦翻成病。莫是前生负你来,今世里、教孤冷。  言约全无定。是谁先薄倖。不惯孤眠惯成双,奈奴子、心肠硬。

感庭秋

红笺封了还重拆。这添追忆。且教伊见我,别来翠减,香销端的。  渌波平远,暮山重叠,算难凭鳞翼。倚危楼极目,无情细草长天色。

满路花

铜荷融烛泪,金兽啮扉环。蘭堂春夜疑,惜更残。落花风雨,向晓作轻寒。金龟朝早,香衾余暖,殢娇由自慵眠。  小鬟无事须来唤,呵破点唇檀。回身还、却背屏山。春禽飞下,帘外日三竿。起来云鬓乱,不妆红粉,下堦且上秋千。

好女儿令

眼细眉长。宫样梳妆。靸鞋儿走向花下立着。一身绣出,两同心字,浅浅金黄。  早是肌肤轻渺,抱着了、暖仍香。姿姿媚媚端正好,怎教人别后,从头仔细,断得思量。

南乡子

浅浅画双眉。取次梳妆也便宜。酒着胭脂红扑面,须知。更有何人得似伊。  宝帐烛残时。好个温柔模样儿。月里仙郎清似玉,相期。些子精神更与谁。

南乡子

好个人人,深点唇儿淡抹腮。花下相逢,忙走怕人猜。遗下弓弓小绣鞋。   刬袜重来。半亸乌云金凤钗。行笑行行连抱得,相挨。一向娇痴不下怀。

踏莎行

碧藓回廊,绿杨深院。偷期夜入帘犹卷。照人无奈月华明,潜身却恨花深浅。  密约如沉。前欢未便。看看掷尽金壶箭。阑干敲遍不应人,分明帘下闻裁剪。

踏莎行

云母屏低,流苏帐小。矮床薄被秋将晓。乍凉天气未寒时,平明窗外闻啼鸟。  困殢榴花,香添蕙草。佳期须及朱颜好。莫言多病为多情,此身甘向情中老。

诉衷情

歌时眉黛舞时腰。无处不妖饶。初剪菊、欲登高。天气怯鲛绡。  紫丝障,绿杨桥。路迢迢。酒阑歌罢,一度归时,一度魂消。

诉衷情

离怀酒病两忡忡。攲枕梦无踪。可怜有人今夜,胆小怯房空。  杨柳绿,杏梢红。负春风。迢迢别恨,脉脉归心,付与征鸿。

恨春迟

欲借江梅荐饮。望陇驿、音息沉沉。住在柳州东,彼此相思,梦回云去难寻。  归燕来时花期浸。淡月坠、将晓还阴。争奈多情易感,风信无凭,如何消遣初心。

盐角儿

增之太长,减之太短,出群风格。施朱太赤,施粉太白,倾城颜色。  慧多多,娇的的。天付与、教谁怜惜。除非我、偎着抱着,更有何人消得。

盐角儿

人生最苦,少年不得,鸳帏相守。西风时节,那堪话别,双蛾频皱。  暗消魂,重回首。奈心儿里、彼此皆有。后时我、两个相见,管取一双清瘦。

忆秦娥

十五六,脱罗裳,长恁黛眉蹙。红玉暖,入人怀,春困熟。  展香裀,帐前明画烛。眼波长,斜浸鬓云绿。看不足。苦残宵、更漏促。

少年游

绿云双亸插金翘。年纪正妖饶。汉妃束素,小蛮垂柳,都占洛城腰。  锦屏春过衣初减,香雪暖凝消。试问当筵眼波恨,滴滴为谁娇。

踏莎行慢

独自上孤舟,倚危樯目断。难成暮雨,更朝云散。凉劲残叶乱。新月照、澄波浅。今夜里,厌厌离绪难销遣。  强来就枕,灯残漏永,合相思眼。分明梦见如花面。依前是、旧庭院。新月照,罗幕挂,珠帘卷。渐向晓,脉然睡觉如天远。

蕙香囊

身作琵琶,调全宫羽,佳人自然用意。宝檀槽在雪胸前,倚香脐、横枕琼臂。  组带金钩,背垂红绶,纤指转弦韵细。愿伊只恁拨梁州,且多时、得在怀里。

玉楼春

艳冶风情天与措。清瘦肌肤冰雪妒。百年心事一宵同,愁听鸡声窗外度。  信阻青禽云雨暮。海月空惊人两处。强将离恨倚江楼,江水不能流恨去。

[集评]

杨慎云:“白乐天词云:‘门前冷落车马稀,老大嫁作商人妇。’此是翻案。”(《草堂诗余》卷三)

董其昌云:“鸡既鸣则东方白矣。虽有迷花恋旧之情,不能久留。故用一‘愁’字最巧“(《便读草堂诗余》)

沈际飞云:“不能流泪,想从天落。子瞻‘流不到楚江东’,少游‘为谁流下潇湘去’,识见略同。”(《草堂诗余正集》)

玉楼春〔印眉〕

半辐霜绡亲手剪。香染青蛾和泪卷。画时横接媚霞长,印处双沾愁黛浅。  当时付我情何限。欲使妆痕长在眼。一回忆著一拈看,便似花前重见面。

玉楼春

红楼昨夜相将饮。月近珠帘花近枕。银缸照客酒方酣,玉漏催人街已禁。  晚潮去棹浮清浸。古岸平芜萧索甚。大都薄宦足离愁,不放双鸳长恁恁。

玉楼春

金雀双鬟年纪小。学画蛾眉红淡扫。尽人言语尽人怜,不解此情惟解笑。  稳着舞衣行动俏。走向绮筵呈曲妙。刘郎大有惜花心,只恨寻花来较早。

玉楼春

夜来枕上争闲事。推倒屏山褰绣被。尽人求守不应人,走向碧纱窗下睡。  直到起来由自殢。向道夜来真个醉。大家恶发大家休,毕竟到头谁不是。

定风波

把酒花前欲问伊。问伊还记那回时。黯淡梨花笼月影。人静。画堂东畔药阑西。  及至如今都不认。难问。有情谁道不相思。何事碧窗春睡觉。偷照。粉痕匀却湿胭脂。

减字木兰花

去年残腊。曾折梅花相对插。人面而今。空有花开无处寻。  天天不远。把酒拈花重发愿。愿得和伊。偎雪眠香似旧时。

减字木兰花

年来方寸。十日幽欢千日恨。未会此情。白尽人头可得平。 区区堪比。水趁浮萍风趁水。试望瑶京。芳草随人上古城。

迎春乐

薄纱衫子初腰匝。步轻轻、小罗靸。人前爱把眼儿札。	香汗透、胭脂蜡。  良夜永、幽期欢则洽。约重会、玉纤频插。执手临归,犹且更待留时霎。

一落索

小桃风撼香红碎。满帘笼花气。看花何事却成愁,悄不会、春风意。  窗在梧桐叶底。更黄昏雨细。枕前前事上心来,独自个、怎生睡。

[夜行船]

闲把鸳衾横枕。损眉尖、泪痕红沁。花时良夜不归来,忍频听、漏移清禁。  一饷无言都未寝。忆当初、是谁先恁。及至如今,教人成病,风流万般徒甚。

[夜行船]

轻捧香腮低枕。眼波媚、向人相浸。佯娇佯醉索如今,这风情、怎教人禁。  却与和衣推未寝。低声地、告人休恁。月夕花朝,不成虚过。芳年嫁君徒甚。

[望江南]

江南柳,花柳两个柔。花片落时黏酒盏,柳条低处拂人头。各自是风流。  江南月,如镜复如钩。似镜不侵红粉面,似钩不挂画帘头。长是照离愁。

清商怨

关河愁思望处满。渐素秋向晚。雁过南云,行人回泪眼。双鸾衾悔展。夜又永、枕孤人远。梦未成归,梅花闻塞管。

望江南

江南柳,叶小未成阴。人为丝轻那忍折,莺嫌枝嫩不胜吟。留着待春深。 十四五,闲抱琵琶寻。阶上簸钱阶下走,恁时相见早留心。何况到如今。

宴瑶池

恋眼哝心终未改。向意间长在。都缘为、颜色殊常,见余花、尽无心爱。 都为是风流煞。至他人、强来厮坏。从今后、若得相逢,绣帐里、痛惜娇态。

[解仙佩]

有个人人牵系。泪成痕、滴尽罗衣。问海约山盟何时。镇教人、目断魂飞。  梦里似偎人睡。肌肤依旧骨香腻。觉来但堆鸳被。想忡忡、那里争知。

[少年游]

阑干十二独凭春。晴碧远连云。千里万里,二月三月,行色苦愁人。谢家池上,江淹浦畔,吟魄与离魂。那堪疏雨滴黄昏。更特地、忆王孙。

[桃源忆故人]

碧纱影弄东风晓。一夜海棠开了。枝上数声啼鸟。妆点愁多少。  妒云恨雨腰支袅。眉黛不忺重扫。薄幸不来春老。羞带宜男草。

[阮郎归]

雪霜林际见依稀。清香已暗期。前村已遍倚南枝。群花犹未知。  情似旧,赏休迟。看看陇上吹。便从今日赏芳菲。韶华取次归。

渔家傲

战胜归来飞捷奏。倾贺酒。玉阶遥献南山寿。

词话

魏泰《东轩笔录》云:“范文正公(仲淹)守边日,作《渔家傲》数阕,皆以‘塞下秋来’为首句,颇述边镇之劳苦。欧阳公尝呼为穷塞主之词。及王尚书素出守平津,文忠亦作《渔家傲》一词以送之,其断章曰:‘战胜归来飞捷奏。倾贺酒。玉阶遥献南山寿。’顾谓王曰:‘此真元帅之事也。’”
千家诗

  卷一

  

  五言绝句

  

  春眠

  

  (唐)孟浩然

  

  春眠不觉晓,处处闻啼鸟。

  夜来风雨声,花落知多少。

  

  访袁拾遗不遇

  

  (唐)孟浩然

  

  洛阳访才子,江岭作流人。

  闻说梅花早,何如此地春。

  

  送郭司仓

  

  (唐)王昌龄

  

  映门淮水绿,留骑主人心。

  明月随良掾,春潮夜夜深。

  

  洛阳道

  

  (唐)储光羲

  

  大道直如发,春来佳气多。

  五陵贵公子,双双呜玉珂。

  

  独坐敬亭山

  

  (唐)李白

  

  众鸟高飞尽,孤云独去闲。

  相看两不厌,只有敬亭山。

  

  登鹳鹤楼

  

  (唐)王之涣

  

  白日依山尽,黄河入海流。

  欲穷千里目,更上一层楼。

  

  观永乐公主入番

  

  (唐)孙逖

  

  边地莺花少,年来未觉新。

  美人天上落,龙塞始应春。

  

  伊州歌

  

  (唐)金昌绪

  

  打起黄莺儿,莫教枝上啼。

  啼时惊妾梦,不得到辽西。

  

  左掖梨花

  

  (唐)丘为

  

  冷艳全欺雪,余香乍入衣。

  春风且莫定,吹向玉阶飞。

  

  思君恩

  

  (唐)令狐楚

  

  小苑莺歌歇,长门蝶舞多。

  眼看春又去,翠辇不曾过。

  

  题袁氏别业

  

  (唐)贺知章

  

  主人不相识,偶坐为林泉。

  莫谩愁沽酒,囊中自有钱。

  

  夜送赵纵

  

  (唐)杨炯

  

  赵氏连城璧,由来天下传。

  送君还旧府,明月满前川。

  

  竹里馆

  

  (唐)王维

  

  独坐幽篁里,弹琴复长啸。

  深林人不知,明月来相照。

  

  送朱大入秦

  

  (唐)王维

  

  避人五陵去,宝剑值千金。

  分手脱相赠,平生一片心。

  

  长干行

  

  (唐)崔颢

  

  君家在何处?妾住在横塘。

  停船暂借问,或恐是同乡。

  

  咏史

  

  (唐)高适

  

  尚有绨袍赠,应怜范叔寒。

  不知天下士,犹作布衣看。

  

  罢相作

  

  (唐)李适之

  

  避贤初罢相,乐圣且衔杯。

  为问门前客,今朝几个来。

  

  逢侠者

  

  (唐)钱起

  

  燕赵悲歌士,相逢剧孟家。

  寸心言不尽,前路日将斜。

  

  江行望匡庐

  

  (唐)钱起

  

  咫尺愁风雨,匡庐不可登。

  只疑云雾窟,犹有六朝僧。

  

  答李浣

  

  (唐)韦应物

  

  林中观易罢,溪上对鸥闲。

  楚俗饶词客,何人最往还。

  

  秋风引

  

  (唐)刘禹锡

  

  何处秋风至,萧萧送雁群。

  朝来入庭树,孤客最先闻。

  

  秋夜寄丘员外

  

  (唐)韦应物

  

  怀君属秋夜,散步咏凉天。

  山空松子落,幽人应未眠。

  

  秋日

  

  (唐)耿湋

  

  返照入闾巷,忧来谁共语。

  古道少人行,秋风动禾黍。

  

  秋日湖上

  

  (唐)薛莹

  

  落日五湖游,烟波处处愁。

  浮沉千古事,谁与问东流。

  

  宫中题

  

  (唐)李昂

  

  辇路生秋草,上林花满枝。

  凭高何限意,无复侍臣知。

  

  汾上惊秋

  

  (唐)苏頲

  

  北风吹白云,万里渡河汾。

  心绪逢摇落,秋声不可闻。

  

  寻隐者不遇

  

  (唐)贾岛

  

  松下问童子,言师采药去。

  只在此山中,云深不知处。

  

  蜀道后期

  

  (唐)张说

  

  客心争日月,来往预期程。

  秋风不相待,先至洛阳城。

  

  静夜思

  

  (唐)李白

  

  床前明月光,疑是地上霜。

  举头望明月,低头思故乡。

  

  秋浦歌

  

  (唐)李白

  

  白发三千丈,离愁似个长。

  不知明镜里,何处得秋霜。

  

  赠乔侍郎

  

  (唐)陈子昂

  

  汉廷荣巧宦,云阁薄边功。

  可怜骢马使,白首为谁雄。

  

  答五陵太守

  

  (唐)王昌龄

  

  仗剑行千里,微躯敢一言。

  曾为大梁客,不负信陵恩。

  

  行军九日思长安故园

  

  (唐)岑参

  

  强欲登高去,无人送酒来。

  遥怜故园菊,应傍战场开。

  

  婕妤怨

  

  (唐)皇甫冉

  

  花枝出建章,凤管发昭阳。

  借问承恩者,双蛾几许长?

  

  题竹林寺

  

  (唐)朱放

  

  岁月人间促,烟霞此地多。

  殷勤竹林寺,更得几回过?

  

  过三闾庙

  

  (唐)戴叔伦

  

  沅湘流不尽,屈子怨何深!

  日暮秋风起,萧萧枫树林。

  

  易水送别

  

  (唐)骆宾王

  

  此地别燕丹,壮士发冲冠。

  昔时人已没,今日水犹寒。

  

  别卢秦卿

  

  (唐)司空曙

  

  知有前期在,难分此夜中。

  无将故人酒,不及石尤风。

  

  答人

  

  (唐)太上隐者

  

  偶来松树下,高枕石头眠。

  山中无历日,寒尽不知年。

  

  卷二

  

  五言律诗

  

  幸蜀回至剑门

  

  (唐)李隆基

  

  剑阁横云峻,銮舆出狩回。

  翠屏千仞合,丹嶂五丁开。

  灌木萦旗转,仙云拂马来。

  乘时方在德,嗟尔勒铭才。

  

  和晋陵陆承相

  

  (唐)杜审言

  

  独有宦游人,偏惊物候新。

  云霞出海曙,梅柳渡江春。

  淑气催黄鸟,晴光转绿苹。

  忽闻歌古调,归思欲沾巾。

  

  蓬莱三殿侍宴奉敕咏终南山

  

  (唐)杜审言

  

  北斗挂城边,南山倚殿前。

  云标金阙回,树杪玉堂悬。

  半岭通佳气,中峰绕瑞烟。

  小臣持献寿,长此戴尧天。

  

  春夜别友人

  

  (唐)陈子昂

  

  银烛吐青烟,金尊对绮筵。

  离堂思琴瑟,别路绕山川。

  明月悬高树,长河没晓天。

  悠悠洛阳道,此会在何年。

  

  长宁公主东庄侍宴

  

  (唐)李峤

  

  别业临青甸,鸣銮降紫霄。

  长筵鵷鹭集,仙管凤凰调。

  树接南山近,烟含北渚遥。

  承恩咸已醉,恋赏未还镳。

  

  恩赐丽正殿书院赐宴应制得林字

  

  (唐)张说

  

  东壁图书府,西园翰墨林。

  诵诗闻国政,讲易见天心。

  位窃和羹重,恩叨醉酒深。

  载歌春兴曲,情竭为知音。

  

  送友人

  

  (唐)李白

  

  青山横北郭,白水绕东城。

  此地一为别,孤篷万里征。

  浮云游子意,落日故人情。

  挥手自兹去,萧萧斑马鸣。

  

  送友人入蜀

  

  (唐)李白

  

  见说蚕丛路,崎岖不易行。

  山从人面起,云傍马头生。

  芳树笼秦栈,春流绕蜀城。

  升沈应已定,不必问君平。

  

  次北固山下

  

  (唐)王湾

  

  客路青山外,行舟绿水前。

  潮平两岸阔,风正一帆悬。

  海日生残夜,江春入旧年。

  乡书何处达,归雁洛阳边。

  

  苏氏别业

  

  (唐)祖咏

  

  别业居幽处,到来生隐心。

  南山当户牖,澧水映园林。

  竹覆经冬雪,庭昏未夕阴。

  寥寥人境外,闲坐听春禽。

  

  春宿左省

  

  (唐)杜甫

  

  花隐掖垣暮,啾啾栖鸟过。

  星临万户动,月傍九霄多。

  不寝听金钥,因风想玉坷。

  明朝有封事,数问夜如何?

  

  题玄武禅师屋壁

  

  (唐)杜甫

  

  何年顾虎头,满壁画沧州。

  赤日石林气,青天江海流。

  锡飞常近鹤,杯渡不惊鸥。

  似得庐山路,真随惠远游。

  

  终南山

  

  (唐)王维

  

  太乙近天都,连山到海隅。

  白云回望合,青霭入看无。

  分野中峰变,阴晴众壑殊。

  欲投何处宿,隔水问樵夫。

  

  登总持阁

  

  (唐)岑参

  

  高阁逼诸天,登临近日边。

  晴开万井树,愁看五陵烟。

  槛外低秦岭,窗中小渭川。

  早知清净理,常愿奉金仙。

  

  寄左省杜拾遗

  

  (唐)岑参

  

  联步趋丹陛,分曹限紫薇。

  晓随天仗入,暮惹御香归。

  白发悲花落,青云羡鸟飞。

  圣朝无阙事,自觉谏书稀。

  

  登兖州城楼

  

  (唐)杜甫

  

  东郡趋庭日,南楼纵目初。

  浮云连海岱,平野入青徐。

  孤嶂秦碑在,荒城鲁殿余。

  从来多古意,临眺独踌躇。

  

  杜少府之任蜀州

  

  (唐)王勃

  

  城阙辅三秦,风烟望五津。

  与君离别意,同是宦游人。

  海内存知己,天涯若比邻。

  无为在歧路,儿女共沾巾。

  

  送崔融

  

  (唐)杜审言

  

  君王行出将,书记远从征。

  祖帐连河阙,军麾动洛城。

  旌旗朝朔气,笳吹夜边声。

  坐觉烟尘少,秋风古北平。

  

  扈从登封途中作

  

  (唐)宋之问

  

  帐殿郁崔嵬,仙游实壮哉!

  晓云连幕卷,夜火杂星回。

  谷暗千旗出,山鸣万乘来。

  扈从良可赋,终乏掞天才。

  

  题义公禅房

  

  (唐)孟浩然

  

  义公习禅寂,结宇依空林。

  户外一峰秀,阶前众壑深。

  夕阳连雨足,空翠落庭阴。

  看取莲花净,方知不染心。

  

  醉后赠张九旭

  

  (唐)高适

  

  世上漫相识,此翁殊不然。

  兴来书自圣,醉后语尤颠。

  白发老闲事,青云在目前。

  床头一壶酒,能更几回眠。

  

  玉台观

  

  (唐)高适

  

  浩劫因王造,平台访古游。

  彩云萧史驻,文字鲁恭留。

  宫阙通群帝,乾坤到十洲。

  人传有笙鹤,时过北山头。

  

  观李固请司马弟山水图

  

  (唐)杜甫

  

  方丈浑连水,天台总映云。

  人间长见画,老去限空闻。

  范蠡舟偏小,王乔鹤不群。

  此生随万物,何处出尘氛。

  

  旅夜书怀

  

  (唐)杜甫

  

  细草微风岸,危樯独夜舟。

  星垂平野阔,月涌大江流。

  名岂文章著,官因老病休。

  飘飘何所似,天地一沙鸥。

  

  登岳阳楼

  

  (唐)杜甫

  

  昔闻洞庭水,今上岳阳楼。

  吴楚东南坼,乾坤日月浮。

  亲朋无一字,老病有孤舟。

  戎马关山北,凭轩涕泗流。

  

  江南旅情

  

  (唐)祖咏

  

  楚山不可极,归路但萧条。

  海色晴看雨,江声夜听潮。

  剑留南斗近,书寄北风遥。

  为报空潭橘,无媒寄洛桥。

  

  宿龙兴寺

  

  (唐)綦毋潜

  

  香刹夜忘归,松清古殿扉。

  灯明方丈室,珠系比丘衣。

  白日传心净,青莲喻法微。

  天花落不尽,处处鸟衔飞。

  

  破山寺后禅院

  

  (唐)常建

  

  清晨入古寺,初日照高林。

  曲径通幽处,禅房花木深。

  山光悦鸟性,潭影空人心。

  万籁此俱寂,惟闻钟磬音。

  

  题松汀驿

  

  (唐)张佑

  

  山色远含空,苍茫泽国东。

  海明先见日,江白迥闻风。

  鸟道高原去,人烟小径通。

  那知旧遗逸,不在五湖中。

  

  圣果寺

  

  (唐)释处默

  

  路自中峰上,盘回出薜萝。

  到江吴地尽,隔岸越山多。

  古木丛青蔼,遥天浸白波。

  下方城郭近,钟磬杂笙歌。

  

  野望

  

  (唐)王绩

  

  东皋薄暮望,徙倚欲何依。

  树树皆秋色,山山惟落晖。

  牧人驱犊返,猎马带禽归。

  相顾无相识,长歌怀采薇。

  

  送著作佐郎崔融等从梁王东征

  

  (唐)陈子昂

  

  金天方肃杀,白露始专征。

  王师非乐战,之子慎佳兵。

  海气侵南部,边风扫北平。

  莫卖卢龙塞,归邀麟阁名。

  

  携妓纳凉晚际遇雨

  

  (唐)杜甫

  

  其一

  

  落日放船好,轻风生浪迟。

  竹深留客处,荷净纳凉时。

  公子调冰水,佳人雪藕丝。

  片云头上黑,应是雨催诗。

  

  其二

  

  雨来沾席上,风急打船头。

  越女红裙湿,燕姬翠黛愁。

  缆侵堤柳系,幔卷浪花浮。

  归路翻萧飒,陂塘五月秋。

  

  宿云门寺阁

  

  (唐)孙逖

  

  香阁东山下,烟花象外幽。

  悬灯千嶂夕,卷幔五湖秋。

  画壁余鸿雁,纱窗宿斗牛。

  更疑天路近,梦与白云游。

  

  秋登宣城谢眺北楼

  

  (唐)李白

  

  江城如画里,山晚望晴空。

  两水夹明镜,双桥落彩虹。

  人烟寒橘柚,秋色老梧桐。

  谁念北楼上,临风怀谢公。

  

  临洞庭

  

  (唐)孟浩然

  

  八月湖水平,涵虚混太清。

  气蒸云梦泽,波撼岳阳城。

  欲济无舟楫,端居耻圣明。

  坐观垂钓者,徒有羡鱼情。

  

  过香积寺

  

  (唐)王维

  

  不知香积寺,数里入云峰。

  古木无人径,深山何处钟。

  泉声咽危石,日色冷青松。

  薄暮空潭曲,安禅制毒龙。

  

  送郑侍御谪闽中

  

  (唐)高适

  

  谪去君无恨,闽中我旧过。

  大都秋雁少,只是夜猿多。

  东路云山合,南天瘴疠和。

  自当逢雨露,行矣顺风波。

  

  秦州杂诗

  

  (唐)杜甫

  

  凤林戈未息,鱼海路常难。

  候火云峰峻,悬军幕井乾。

  风连西极动,月过北庭寒。

  故老思飞将,何时议筑坛。

  

  禹庙

  

  (唐)杜甫

  

  禹庙空山里,秋风落日斜。

  荒庭垂橘柚,古屋画龙蛇。

  云气生虚壁,江深走白沙。

  早知乘四载,疏凿控三巴。

  

  望秦川

  

  (唐)李颀

  

  秦川朝望迥,日出正东峰。

  远近山河净,逶迤城阙重。

  秋声万户竹,寒色五陵松。

  有客归欤叹,凄其霜露浓。

  

  同王徵君洞庭有怀

  

  (唐)张谓

  

  八月洞庭秋,潇湘水北流。

  还家万里梦,为客五更愁。

  不用开书帙,偏宜上酒楼。

  故人京洛满,何日复同游。

  

  渡扬子江

  

  (唐)丁仙芝

  

  桂楫中流望,空波两岸明。

  林开扬子驿,山出润州城。

  海尽边阴静,江寒朔吹生。

  更闻枫叶下,淅沥度秋声。

  

  幽州夜歌

  

  (唐)张说

  

  凉风吹夜雨,萧瑟动寒林。

  正有高堂宴,能忘迟暮心。

  军中宜剑舞,塞上重笳音。

  不作边城将,谁知恩遇深。

  

  卷三

  

  七言绝句

  

  春日偶成

  

  (唐)程颢

  

  云淡风轻近午天,

  傍花随柳过前川。

  时人不识余心乐,

  将谓偷闲学少年。

  

  春日

  

  (宋)朱熹

  

  胜日寻芳泗水滨,

  无边光景一时新。

  等闲识得东风面,

  万紫千红总是春。

  

  春宵

  

  (宋)苏轼

  

  春宵一刻值千金,

  花有清香月有阴。

  歌管楼台声细细,

  秋千院落夜沈沈。

  

  城东早春

  

  (唐)杨巨源

  

  诗家清景在新春,

  绿柳才黄半未匀。

  若待上林花似锦,

  出门俱是看花人。

  

  春夜

  

  (宋)王安石

  

  金炉香烬漏声残,

  剪剪轻风阵阵寒。

  春色恼人眠不得,

  月移花影上栏杆。

  

  初春小雨

  

  (宋)韩愈

  

  天街小雨润如酥,

  草色遥看近却无。

  最是一年春好处,

  绝胜烟柳满皇都。

  

  元日

  

  (宋)王安石

  

  爆竹声中一岁除,

  春风送暖入屠苏。

  千门万户曈曈日,

  总把新桃换旧符。

  

  上元侍宴

  

  (宋)苏轼

  

  淡月疏星绕建章,

  仙风吹下御炉香。

  侍臣鹄立通明殿,

  一朵红云捧玉皇。

  

  立春偶成

  

  (宋)张栻

  

  律回岁晚冰霜少,

  春到人间草木知。

  便觉眼前生意满,

  东风吹水绿参差。

  

  打球图

  

  (宋)晁无咎

  

  阊阖千门万户开,

  三郎沈醉打球回。

  九龄已老韩休死,

  无复明朝谏疏来。

  

  宫词

  

  (宋)林洪

  

  金殿当头紫阁重,

  仙人掌上玉芙蓉。

  太平天子朝元日,

  五色云车驾六龙。

  

  其二

  

  (宋)林洪

  

  殿上衮衣明日月,

  砚中旗影动龙蛇。

  纵横礼乐三千字,

  独对丹墀日未斜。

  

  咏华清宫

  

  (唐)王建

  

  行尽江南数十程,

  晓风残月入华清。

  朝元阁上西风急,

  都入长杨作雨声。

  

  清平调词

  

  (唐)李白

  

  云想衣裳花想容,

  春风拂槛露华浓。

  若非群玉山头见,

  会向瑶台月下逢。

  

  题邸间壁

  

  (宋)郑会

  

  酴醿香梦怯春寒,

  翠掩重门燕子闲。

  敲断玉钗红烛冷,

  计程应说到常山。

  

  绝句

  

  (唐)杜甫

  

  两个黄鹂鸣翠柳,

  一行白鹭上青天。

  窗含西岭千秋雪,

  门泊东吴万里船。

  

  海棠

  

  (宋)苏轼

  

  东风袅袅泛崇光,

  香雾空蒙月转廊。

  只恐夜深花睡去,

  故烧高烛照红妆。

  

  清明

  

  (宋)王禹偁

  

  无花无酒过清明,

  兴味萧然似野僧。

  昨日邻家乞新火,

  晓窗分与读书灯。

  

  清明

  

  (唐)杜牧

  

  清明时节雨纷纷,

  路上行人欲断魂。

  借问酒家何处有,

  牧童遥指杏花村。

  

  社日

  

  (唐)张演

  

  鹅湖山下稻粱肥,

  豚栅鸡栖对掩扉。

  桑柘影斜春社散,

  家家扶得醉人归。

  

  寒食

  

  (唐)韩翃

  

  春城无处不飞花,

  寒食东风御柳斜。

  日暮汉宫传蜡烛,

  轻烟散入五侯家。

  

  江南春

  

  (唐)杜牧

  

  千里莺啼绿映红,

  水村山郭酒旗风。

  南朝四百八十寺,

  多少楼台烟雨中。

  

  上高侍郎

  

  (唐)高蟾

  

  天上碧桃和露种,

  日边红杏倚云栽。

  芙蓉生在秋江上,

  不向东风怨未开。

  

  绝句

  

  (宋)僧志安

  

  古木阴中系短篷,

  杖藜扶我过桥东。

  沾衣欲湿杏花雨,

  吹面不寒杨柳风。

  

  游小园不值

  

  (宋)叶绍翁

  

  应嫌屐齿印苍苔,

  十扣柴扉九不开。

  春色满园关不住,

  一枝红杏出墙来。

  

  客中行

  

  (唐)李白

  

  兰陵美酒郁金香,

  玉碗盛来琥珀光。

  但使主人能醉客,

  不知何处是他乡。

  

  题屏

  

  (宋)刘季孙

  

  呢喃燕子语梁间,

  底事来惊梦里闲。

  说与旁人浑不解,

  杖藜携酒看芝山。

  

  绝句漫兴

  

  (唐)杜甫

  

  肠断春江欲尽头,

  杖藜徐步立芳洲。

  颠狂柳絮随风舞,

  轻薄桃花逐水流。

  

  庆全庵桃花

  

  (宋)谢枋得

  

  寻得桃源好避秦,

  桃红又是一年春。

  花飞莫遣随流水,

  怕有渔郎来问津。

  

  玄都观桃花

  

  (唐)刘禹锡

  

  紫陌红尘拂面来,

  无人不道看花回。

  玄都观里桃千树,

  尽是刘郎去后栽。

  

  再游玄都观

  

  (唐)刘禹锡

  

  百亩庭中半是苔,

  桃花净尽菜花开。

  种桃道士归何处,

  前度刘郎今又来。

  

  滁州西涧

  

  (唐)韦应物

  

  独怜幽草涧边生,

  上有黄鹂深树鸣。

  春潮带雨晚来急,

  野渡无人舟自横。

  

  花影

  

  (宋)苏轼

  

  重重叠叠上瑶台,

  几度呼童扫不开。

  刚被太阳收拾去,

  却教明月送将来。

  

  北山

  

  (宋)王安石

  

  北山输绿涨横陂,

  直堑回塘滟滟时。

  细数落花因坐久,

  缓寻芳草得归迟。

  

  湖上

  

  (宋)徐元杰

  

  花开红树乱莺啼,

  草长平湖白鹭飞。

  风日晴和人意好,

  夕阳箫鼓几船归。

  

  漫兴

  

  (唐)杜甫

  

  糁径杨花铺白毡,

  点溪荷叶叠青钱。

  笋根稚子无人见,

  沙上凫雏傍母眠。

  

  春晴

  

  (宋)王驾

  

  雨前初见花间蕊,

  雨后全无叶底花。

  蜂蝶纷纷过墙去,

  却疑春色在邻家。

  

  春暮

  

  (宋)曹豳

  

  门外无人问落花,

  绿阴冉冉遍天涯。

  林莺啼到无声处,

  青草池塘独听蛙。

  

  落花

  

  (宋)朱淑贞

  

  连理枝头花正开,

  妒花风雨便相催。

  愿教青帝常为主,

  莫遣纷纷点翠苔。

  

  春暮游小园

  

  (宋)王淇

  

  一从梅粉褪残妆,

  涂抹新红上海棠。

  开到荼蘼花事了,

  丝丝夭棘出莓墙。

  

  莺梭

  

  (宋)刘克庄

  

  掷柳迁乔太有情,

  交交时作弄机声。

  洛阳三月花如锦,

  多少工夫织得成。

  

  暮春即事

  

  (宋)叶采

  

  双双瓦雀行书案,

  点点杨花入砚池。

  闲坐小窗读周易,

  不知春去几多时。

  

  登山

  

  (唐)李涉

  

  终日昏昏醉梦间,

  忽闻春尽强登山。

  因过竹院逢僧话,

  又得浮生半日闲。

  

  蚕妇吟

  

  (唐)谢枋得

  

  子规啼彻四更时,

  起视蚕稠怕叶稀。

  不信楼头杨柳月,

  玉人歌舞未曾归。

  

  晚春

  

  (唐)韩愈

  

  草木知春不久归,

  百般红紫斗芳菲。

  杨花榆荚无才思,

  惟解漫天作雪飞。

  

  伤春

  

  (宋)杨万里

  

  准拟今春乐事浓,

  依然枉却一东风。

  年年不带看花眼,

  不是愁中即病中。

  

  送春

  

  (宋)王令

  

  三月残花落更开,

  小檐日日燕飞来。

  子规夜半犹啼血,

  不信东风唤不回。

  

  三月晦日送春

  

  (唐)贾岛

  

  三月正当三十日,

  风光别我苦吟身。

  共君今夜不须睡,

  未到晓钟犹是春。

  

  客中初夏

  

  (宋)司马光

  

  四月清和雨乍晴,

  南山当户转分明。

  更无柳絮因风起,

  惟有葵花向日倾。

  

  有约

  

  (宋)司马光

  

  黄梅时节家家雨,

  青草池塘处处蛙。

  有约不来过夜半,

  闲敲棋子落灯花。

  

  初夏睡起

  

  (宋)杨万里

  

  梅子流酸溅齿牙,

  芭蕉分绿上窗纱。

  日长睡起无情思,

  闲看儿童捉柳花。

  

  三衢道中

  

  (宋)曾几

  

  梅子黄时日日晴,

  小溪泛尽却山行。

  绿阴不减来时路,

  添得黄鹂四五声。

  

  即景

  

  (宋)朱淑贞

  

  竹摇清影罩幽窗,

  两两时禽噪夕阳。

  谢却海棠飞尽絮,

  困人天气日初长。

  

  夏日

  

  (宋)戴敏

  

  乳鸭池塘水浅深,

  熟梅天气半晴阴。

  东园载酒西园醉,

  摘尽枇杷一树金。

  

  晚楼闲坐

  

  (宋)王安石

  

  四顾山光接水光,

  凭栏十里芰荷香。

  清风明月无人管,

  并作南来一味凉。

  

  山居夏日

  

  (唐)高骈

  

  绿树阴浓夏日长,

  楼台倒影入池塘。

  水晶帘动微风起,

  满架蔷薇一院香。

  

  田家

  

  (宋)范成大

  

  昼出耘田夜绩麻,

  村庄儿女各当家。

  童孙未解供耕织,

  也傍桑阴学种瓜。

  

  村居即事

  

  (宋)范成大

  

  绿遍山原白满川,

  子规声里雨如烟。

  乡村四月闲人少,

  才了蚕桑又插田。

  

  题榴花

  

  (宋)朱熹

  

  五月榴花照眼明,

  枝间时见子初成。

  可怜此地无车马,

  颠倒苍苔落绛英。

  

  村晚

  

  (宋)雷震

  

  草满池塘水满陂,

  山衔落日浸寒漪。

  牧童归去横牛背,

  短笛无腔信口吹。

  

  茅檐

  

  (宋)王安石

  

  茅檐常扫净无苔,

  花木成蹊手自栽。

  一水护田将绿绕,

  两山排闼送青来。

  

  乌衣巷

  

  刘禹锡

  

  朱雀桥边野草花,

  乌衣巷口夕阳斜。

  旧时王谢堂前燕,

  飞入寻常百姓家。

  

  送元二使安西

  

  (唐)王维

  

  渭城朝雨浥轻尘,

  客舍青青柳色新。

  劝君更尽一杯酒,

  西出阳关无故人。

  

  与史朗中饮听黄鹤楼上吹笛

  

  (唐)李白

  

  一为迁客去长沙,

  西望长安不见家。

  黄鹤楼中吹玉笛,

  江城五月落梅花。

  

  题淮南寺

  

  程颢

  

  南去北来休便休,

  白蘋吹尽楚江秋。

  道人不是悲秋客,

  一任晚山相对愁。

  

  秋月

  

  程颢

  

  清溪流过碧山头,

  空水澄鲜一色秋。

  隔断红尘三十里,

  白云红叶两悠悠。

  

  七夕

  

  (宋)杨朴

  

  未会牵牛意若何,

  须邀织女弄金梭。

  年年乞与人间巧,

  不道人间巧已多。

  

  立秋

  

  (宋)刘翰

  

  乳鸦啼散玉屏空,

  一枕新凉一扇风。

  睡起秋声无觅处,

  满阶梧叶月明中。

  

  秋夕

  

  (唐)杜牧

  

  银烛秋光冷画屏,

  轻罗小扇扑流萤。

  天街夜色凉如水,

  卧看牵牛织女星。

  

  中秋月

  

  杜牧

  

  暮云收尽溢清寒,

  银汉无声转玉盘。

  此生此夜不长好,

  明月明年何处看?

  

  江楼有感

  

  (唐)赵嘏

  

  独上江楼思渺然,

  月光如水水如天。

  同来玩月人何在,

  风景依稀似去年。

  

  题临安邸

  

  (宋)林升

  

  山外青山楼外楼,

  西湖歌舞几时休。

  暖风薰得游人醉,

  直把杭州作汴州。

  

  西湖

  

  苏轼

  

  毕竟西湖六月中,

  风光不与四时同。

  接天莲叶无穷碧,

  映日荷花别样红。

  

  饮湖上初晴后雨

  

  (宋)苏轼

  

  水光潋滟晴方好,

  山色空蒙雨亦奇。

  欲把西湖比西子,

  淡妆浓抹总相宜。

  

  入直召对选德殿赐茶而退

  

  (宋)周必大

  

  绿槐夹道集昏鸦,

  敕使传宣坐赐茶。

  归到玉堂清不寐,

  月钩初上紫薇花。

  

  夏日登车盖亭

  

  (宋)蔡确

  

  纸屏石枕竹方床,

  手倦抛书午梦长。

  睡起莞然成独笑,

  数声渔笛在沧浪。

  

  真玉堂作

  

  (宋)洪咨夔

  

  禁门深锁寂无哗,

  浓墨淋漓两相麻。

  唱彻五更天未晓,

  一墀月浸紫薇花。

  

  竹楼

  

  (唐)李嘉佑

  

  傲吏身闲笑五侯,

  西江取竹起高楼。

  南风不用蒲葵扇,

  纱帽闲眠对水鸥。

  

  直中书省

  

  白居易

  

  丝纶阁下文章静,

  钟鼓楼中刻漏长。

  独坐黄昏谁是伴,

  紫薇花对紫薇郎。

  

  观书有感(其一)

  

  (宋)朱熹

  

  半亩方塘一鉴开,

  天光云影共徘徊。

  问渠那得清如许,

  为有源头活水来。

  

  泛舟

  

  (宋)朱熹

  

  昨夜江边春水生,

  艨艟巨舰一毛轻。

  向来枉费推移力,

  此日中流自在行。

  

  冷泉亭

  

  (宋)林稹

  

  一泓清可沁诗脾,

  冷暖年来只自知。

  流出西湖载歌舞,

  回头不似在山时。

  

  冬景

  

  苏轼

  

  荷尽已无擎雨盖,

  菊残犹有傲霜枝。

  一年好景君须记,

  最是橙黄橘绿时。

  

  枫桥夜泊

  

  (唐)张继

  

  月落乌啼霜满天,

  江枫渔火对愁眠。

  姑苏城外寒山寺,

  夜半钟声到客船。

  

  寒夜

  

  杜小山

  

  寒夜客来茶当酒,

  竹炉汤沸火初红。

  寻常一样窗前月,

  才有梅花便不同。

  

  霜月

  

  (唐)李商隐

  

  初闻征雁已无蝉,

  百尺楼台水接天。

  青女素娥俱耐冷,

  月中霜里斗婵娟。

  

  梅

  

  王淇

  

  不受尘埃半点侵,

  竹篱茅舍自甘心。

  只因误识林和靖,

  惹得诗人说到今。

  

  早春

  

  (宋)白玉蟾

  

  南枝才放两三花,

  雪里吟香弄粉些。

  淡淡著烟浓著月,

  深深笼水浅笼沙。

  

  雪梅

  

  (宋)卢梅坡

  

  梅雪争春未肯降,

  骚人阁笔费评章。

  梅须逊雪三分白,

  雪却输梅一段香。

  

  雪梅(其二)

  

  (宋)卢梅坡

  

  有梅无雪不精神,

  有雪无诗俗了人。

  日暮诗成天又雪,

  与梅井作十分春。

  

  答锺弱翁

  

  (宋)牧童

  

  草铺横野六七里,

  笛弄晚风三四声。

  归来饱饭黄昏后,

  不脱蓑衣卧月明。

  

  秦淮夜泊

  

  (宋)杜牧

  

  烟笼寒水月笼沙,

  夜泊秦淮近酒家。

  商女不知亡国恨,

  隔江犹唱后庭花。

  

  归雁

  

  (唐)钱起

  

  潇湘何事等闲回,

  水碧沙明两岸苔。

  二十五弦弹夜月,

  不胜清怨却飞来。

  

  题壁

  

  无名氏

  

  一团茅草乱蓬蓬,

  蓦地烧天蓦地空。

  争似满炉煨榾柮,

  漫腾腾地暖烘烘。

  

  卷四

  

  七言律诗

  

  早朝大明宫

  

  (唐)贾至

  

  银烛朝天紫陌长,

  禁城春色晓苍苍。

  千条弱柳垂青锁,

  百啭流莺绕建章。

  剑佩声随玉墀步,

  衣冠身惹御炉香。

  共沐恩波凤池上,

  朝朝染翰侍君王。

  

  和贾舍人早朝

  

  (唐)杜甫

  

  五夜漏声催晓箭,

  九重春色醉仙桃。

  旌旗日暖龙蛇动,

  宫殿风微燕雀高。

  朝罢香烟携满袖,

  诗成珠玉在挥毫。

  欲知世掌丝纶美,

  池上于今有凤毛。

  

  和贾舍人早朝

  

  (唐)王维

  

  绛帻鸡人报晓筹,

  尚衣方进翠云裘。

  九天阊阖开宫殿,

  万国衣冠拜冕旒。

  日色才临仙掌动,

  香烟欲傍衮龙浮。

  朝罢须裁五色诏,

  佩声归到凤池头。

  

  和贾舍人早朝

  

  (唐)岑参

  

  鸡鸣紫陌曙光寒,

  莺啭皇州春色阑。

  金阙晓钟开万户,

  玉阶仙仗拥千官。

  花迎剑佩星初落,

  柳拂旌旗露未乾。

  独有凤凰池上客,

  阳春一曲和皆难。

  

  上元应制

  

  (宋)蔡襄

  

  高列千峰宝炬森,

  端门方喜翠华临。

  宸游不为三元夜,

  乐事还同万众心。

  天上清光留此夕,

  人间和气阁春阴。

  要知尽庆华封祝,

  四十余年惠爱深。

  

  上元应制

  

  (宋)王淇

  

  雪消华月满仙台,

  万烛当楼宝扇开。

  双凤云中扶辇下,

  六鳌海上驾山来。

  镐京春酒沾周宴,

  汾水秋风陋汉才。

  一曲升平人尽乐,

  君王又进紫霞杯

  

  侍宴

  

  (唐)沈佺期

  

  皇家贵主好神仙,

  别业初开云汉边。

  山出尽如鸣凤岭,

  池成不让饮龙川。

  妆楼翠幌教春住,

  舞阁金铺借日悬。

  

  敬从乘舆来此地,

  称觞献寿乐钧天。

  

  答丁元珍

  

  (宋)欧阳修

  

  春风疑不到天涯,

  二月山城未见花。

  残雪压枝犹有橘,

  冻雷惊笋欲抽芽。

  夜闻啼雁生乡思,

  病入新年感物华。

  曾是洛阳花下客,

  野芳虽晚不须嗟。

  

  插花吟

  

  (宋)邵雍

  

  头上花枝照酒卮,

  酒卮中有好花枝。

  身经两世太平日,

  

  眼见四朝全盛时。

  况复筋骸粗康健,

  那堪时节正芳菲。

  酒涵花影红光溜,

  争忍花前不醉归。

  

  寓意

  

  (宋)晏殊

  

  油壁香车不再逢,

  峡云无迹任西东。

  梨花院落溶溶月,

  柳絮池塘淡淡风。

  几日寂寥伤酒后,

  一番萧瑟禁烟中。

  鱼书欲寄何由达,

  水远山长处处同。

  

  寒食书事

  

  (宋)赵鼎

  

  寂寂柴门村落里,

  也教插柳纪年华。

  禁烟不到粤人国,

  上冢亦携庞老家。

  汉寝唐陵无麦饭,

  山溪野径有梨花。

  一樽竟藉青苔卧,

  莫管城头奏暮笳。

  

  清明

  

  黄庭坚

  

  佳节清明桃李笑,

  野田荒冢只生愁。

  雷惊天地龙蛇蛰,

  雨足郊原草木柔。

  人乞祭余骄妾妇,

  士甘焚死不公侯。

  贤愚千载知谁是,

  满眼蓬蒿共一丘。

  

  清明

  

  (宋)高菊卿

  

  南北山头多墓田,

  清明祭扫各纷然。

  纸灰飞作白蝴蝶,

  泪血染成红杜鹃。

  日落狐狸眠冢上,

  夜归儿女笑灯前。

  人生有酒须当醉,

  一滴何曾到九泉。

  

  郊行即事

  

  程颢

  

  芳原绿野恣行时,

  春入遥山碧四围。

  兴逐乱红穿柳巷,

  困临流水坐苔矶。

  莫辞盏酒十分劝,

  只恐风花一片飞。

  况是清明好天气,

  不妨游衍莫忘归。

  

  秋千

  

  (宋)僧惠洪

  

  画架双裁翠络偏,

  佳人春戏小楼前。

  飘扬血色裙拖地,

  断送玉容人上天。

  花皮润沾红杏雨,

  彩绳斜挂绿杨烟。

  下来闲处从容立,

  疑是蟾宫谪神仙。

  

  曲江对酒(其一)

  

  杜甫

  

  一片花飞减却春,

  风飘万点正愁人。

  且看欲尽花经眼,

  莫厌伤多酒入唇。

  江上小堂巢翡翠,

  苑边高冢卧麒麟。

  

  细推物理须行乐,

  何用浮名绊此身。

  

  曲江对酒(其二)

  

  杜甫

  

  朝回日日典春衣,

  每日江头尽醉归。

  酒债寻常行处有,

  人生七十古来稀。

  穿花蛱蝶深深见,

  点水蜻蜓款款飞。

  传与风光共流转,

  暂时相赏莫相违。

  

  黄鹤楼

  

  (唐)崔颢

  

  昔人已乘黄鹤去,

  此地空余黄鹤楼。

  黄鹤一去不复返,

  

  白云千载空悠悠。

  晴川历历汉阳树,

  芳草萋萋鹦鹉州。

  日暮乡关何处是,

  烟波江上使人愁。

  

  旅怀

  

  (唐)崔涂

  

  水流花谢两无情,

  送尽东风过楚城。

  蝴蝶梦中家万里,

  杜鹃枝上月三更。

  故园书动经年绝,

  华发春催两鬓生。

  自是不归归便得,

  五湖烟景有谁争。

  

  答李儋

  

  韦应物

  

  去年花里逢君别,

  今日花开又一年。

  世事茫茫难自料,

  春愁黯黯独成眠。

  身多疾病思田里,

  邑有流亡愧俸钱。

  闻道欲来相问讯,

  西楼望月几回圆。

  

  江村

  

  杜甫

  

  清江一曲抱村流,

  长夏江村事事幽。

  自去自来梁上燕,

  相亲相近水中鸥。

  老妻画纸为棋局,

  稚子敲针作钓钩。

  多病所须惟药物,

  微躯此外更何求。

  

  夏日

  

  (宋)张文潜

  

  长夏江村风日清,

  檐牙燕雀已生成。

  蝶衣晒粉花枝午,

  蛛网添丝屋角晴。

  落落疏廉邀月影,

  嘈嘈虚枕纳溪声。

  久斑两鬓如霜雪,

  直欲樵渔过此生。

  

  积雨辋川庄作

  

  王维

  

  积雨空林烟火迟,

  蒸藜炊黍饷东菑。

  漠漠水田飞白鹭,

  阴阴夏木啭黄鹂。

  山中习静合朝槿,

  松下清斋折露葵。

  野老与人争席罢,

  海鸥何事更相疑。

  

  新竹

  

  (宋)陆游

  

  插棘编篱谨护持,

  养成寒碧映涟漪。

  清风掠地秋先到,

  赤日行天午不知。

  解箨时闻声簌簌,

  放梢初见影离离。

  归闲我欲频来此,

  枕簟仍教到处随。

  

  偶成

  

  程颢

  

  闲来无事不从容,

  睡觉东窗日已红。

  万物静观皆自得,

  四时佳兴与人同。

  道通天地有形外,

  思入风云变态中。

  

  富贵不淫贫贱乐,

  男儿到此是豪雄。

  

  表兄话旧

  

  (唐)窦叔向

  

  夜合花开香满庭,

  夜深微雨醉初醒。

  远书珍重何由达,

  旧事凄凉不可听。

  去日儿童皆长大,

  昔年亲友半凋零。

  明朝又是孤舟别,

  愁见河桥酒幔青。

  

  游月陂

  

  程颢

  

  月坡堤上四徘徊,

  北有中天百尺台。

  万物已随秋气改,

  

  一樽聊为晚凉开。

  水心云影闲相照,

  林下泉声静自来。

  世事无端何足计,

  但逢佳节约重陪。

  

  秋兴八首(其一)

  

  杜甫

  

  千家山郭静朝晖,

  日日江楼坐翠微。

  信宿渔人还泛泛,

  清秋燕子故飞飞。

  匡衡抗疏功名薄,

  刘向传经心事违。

  同学少年多不贱,

  五陵裘马自轻肥。

  

  秋兴(其二)

  

  杜甫

  

  蓬莱宫阙对南山,

  承露金茎霄汉间。

  西望瑶池降王母,

  东来紫气满函关。

  云移雉尾开宫扇,

  日绕龙鳞识圣颜。

  一卧沧江惊岁晚,

  几回青琐点朝班。

  

  秋兴(其三)

  

  杜甫

  

  玉露凋伤枫树林,

  巫山巫峡气萧森。

  江间波浪兼天涌,

  塞上风云接地阴。

  丛菊两开他日泪,

  孤舟一系故园心。

  寒衣处处催刀尺,

  白帝城高急暮砧。

  

  秋兴(其四)

  

  杜甫

  

  昆明池水汉时功,

  武帝旌旗在眼中。

  织女机丝虚夜月,

  石鲸鳞甲动秋风。

  波飘菰米沉云黑,

  露冷莲房坠粉红。

  关塞极天惟鸟道,

  江湖满地一渔翁。

  

  月夜舟中

  

  (宋)戴复古

  

  满船明月浸虚空,

  绿水无痕夜气冲。

  诗思浮沈樯影里,

  梦魂摇拽橹声中。

  星辰冷落碧潭水,

  鸿雁悲鸣红蓼风。

  数点渔灯依古岸,

  断桥垂露滴梧桐。

  

  长安秋望

  

  赵嘏

  

  云物凄凉拂署流,

  汉家宫阙动高秋。

  残星几点雁横塞,

  长笛一声人倚楼。

  紫艳半开篱菊静,

  红衣落尽渚莲愁。

  鲈鱼正美不归去,

  空戴南冠学楚囚。

  

  新秋

  

  杜甫

  

  火云犹未敛奇峰,

  欹枕初惊一叶风。

  几处园林萧瑟里,

  谁家砧杵寂寥中。

  蝉声断续悲残月,

  萤焰高低照暮空。

  

  赋就金门期再献,

  夜深搔首叹飞蓬。

  

  中秋

  

  (宋)李朴

  

  皓魄当空宝镜升,

  云间仙籁寂无声。

  平分秋色一轮满,

  长伴云衢千里明。

  狡兔空从弦外落,

  妖蟆休向眼前生。

  灵槎拟约同携手,

  更待银河澈底清。

  

  九日蓝耕会饮

  

  杜甫

  

  老去悲秋强自宽,

  兴来今日尽君欢。

  羞将短发还吹帽,

  

  笑倩旁人为正冠。

  蓝水远从千涧落,

  玉山高并两峰寒。

  明年此会知谁健,

  醉把茱萸仔细看。

  

  秋思

  

  陆游

  

  利欲驱人万火牛,

  江湖浪迹一沙鸥。

  日长似岁闲方觉,

  事大如天醉亦休。

  砧杵敲残深巷月,

  梧桐摇落故园秋。

  欲舒老眼无高处,

  安得元龙百尺楼。

  

  与朱山人

  

  杜甫

  

  锦里先生乌角巾,

  园收芋栗未全贫。

  惯看宾客儿童喜,

  得食阶除鸟雀驯。

  秋水才深四五尺,

  野航恰受两三人。

  白沙翠竹江村暮,

  相送柴门月色新。

  

  闻笛

  

  赵嘏

  

  谁家吹笛画楼中,

  断续声随断续风。

  响遏行云横碧落,

  清和冷月到帘栊。

  兴来三弄有桓子,

  赋就一篇怀马融。

  曲罢不知人在否,

  余音嘹亮尚飘空。

  

  冬景

  

  刘克庄

  

  晴窗早觉爱朝曦,

  竹外秋声渐作威。

  命仆安排新暖阁,

  呼童熨贴旧寒衣。

  叶浮嫩绿酒初熟,

  橙切香黄蟹正肥。

  蓉菊满园皆可羡,

  赏心从此莫相违。

  

  冬至

  

  杜甫

  

  天时人事日相催,

  冬至阳生春又来。

  刺绣五纹添弱线,

  吹葭六管动飞灰。

  岸容待腊将舒柳,

  山意冲寒欲放梅。

  云物不殊乡国异,

  教儿且覆掌中杯。

  

  梅花

  

  林逋

  

  众芳摇落独鲜妍,

  占断风情向小园。

  疏影横斜水清浅,

  暗香浮动月黄昏。

  霜禽欲下先偷眼,

  粉蝶如知合断魂。

  幸有微吟可相狎,

  不须檀板共金樽。

  

  左迁至蓝关示侄孙湘

  

  韩愈

  

  一封朝奏九重天,

  夕贬潮阳路八千。

  本为圣朝除弊政,

  敢将衰朽惜残年。

  云横秦岭家何在,

  雪拥蓝关马不前。

  

  知汝远来应有意,

  好收吾骨瘴江边。

  

  干戈

  

  (宋)王中

  

  干戈未定欲何之,

  一事无成两鬓丝。

  踪迹大纲王粲传,

  情怀小样杜陵诗。

  鶺鴒音断人千里,

  乌鹊巢寒月一枝。

  安得中山千日酒,

  酩然直到太平时。

  

  归隐

  

  (宋)陈抟

  

  十年踪迹走红尘,

  回首青山入梦频。

  紫绶纵荣争及睡,

  

  朱门虽富不如贫。

  愁闻剑戟扶危主,

  闷听笙歌聒醉人。

  携取旧书归旧隐,

  野花啼鸟一般春。

  

  山中寡妇

  

  杜荀鹤

  

  夫因兵乱守蓬茅,

  麻苎裙衫鬓发焦。

  桑柘废来犹纳税,

  田园荒尽尚徵苗。

  时挑野菜和根煮,

  旋砍生柴带叶烧。

  任是深山最深处,

  也应无计避征徭。

  

  送天师

  

  (明)朱权

  

  霜落芝城柳影疏,

  殷勤送客出鄱湖。

  黄金甲锁雷霆印,

  红锦韬缠日月符。

  天上晓行骑只鹤,

  人间夜宿解双凫。

  匆匆归到神仙府,

  为问蟠桃熟也无。

  

  送毛伯温

  

  (明)明世宗

  

  大将南征胆气豪,

  腰横秋水雁翎刀。

  风吹鼍鼓山河动,

  电闪旌旗日月高。

  天上麒麟原有种,

  穴中蝼蚁岂能逃。

  太平待诏归来日,

  朕与先生解战袍。

  
!!商颂 那

猗与那与!置我鞉鼓。奏鼓简简,衎我烈祖。汤孙奏假,绥我思成。鞉鼓渊渊,嘒嘒管声。既和且平,依我磬声。于赫汤孙!穆穆厥声。庸鼓有斁,万舞有奕。我有嘉客,亦不夷怿。自古在昔,先民有作。温恭朝夕,执事有恪,顾予烝尝,汤孙之将。

!!商颂 烈祖

嗟嗟烈祖!有秩斯祜。申锡无疆,及尔斯所。既载清酤,赉我思成。亦有和羹,既戒既平。鬷假无言,时靡有争。绥我眉寿,黄耇无疆。约軧错衡,八鸾鸧鸧。以假以享,我受命溥将。

自天降康,丰年穰穰。来假来飨,降福无疆。顾予烝尝,汤孙之将。

!!商颂 玄鸟

天命玄鸟,降而生商,宅殷土芒芒。古帝命武汤,正域彼四方。

方命厥后,奄有九有。商之先后,受命不殆,在武丁孙子。武丁孙子,武王靡不胜。

龙旂十乘,大糦是承。邦畿千里,维民所止,肇域彼四海。

四海来假,来假祁祁。景员维河。殷受命咸宜,百禄是何。

!!商颂 长发

浚哲维商,长发其祥。洪水芒芒,禹敷下土方。外大国是疆,幅陨既长。有娀方将,帝立子生商。

玄王桓拨,受小国是达,受大国是达。率履不越,遂视既发。相土烈烈,海外有截。

帝命不违,至于汤齐。汤降不迟,圣敬日跻。昭假迟迟,上帝是祗,帝命式于九围。

受小球大球,为下国缀旒,何天之休。不竞不絿,不刚不柔。敷政优优。百禄是遒。

受小共大共,为下国骏厖。何天之龙,敷奏其勇。不震不动,不戁不竦,百禄是纟忽。

武王载旆,有虔秉钺。如火烈烈,则莫我敢曷。苞有三蘖,莫遂莫达。九有有截,韦顾既伐,昆吾夏桀。

昔在中叶,有震且业。允也天子,降予卿士。实维阿衡,实左右商王。

!!商颂 殷武

挞彼殷武,奋伐荆楚。罙入其阻,裒荆之旅。有截其所,汤孙之绪。

维女荆楚,居国南乡。昔有成汤,自彼氐羌,莫敢不来享,莫敢不来王。曰商是常。

天命多辟,设都于禹之绩。岁事来辟,勿予祸适,稼穑匪解。

天命降监,下民有严。不僣不滥,不敢怠遑。命于下国,封建厥福。

商邑翼翼,四方之极。赫赫厥声,濯濯厥灵。寿考且宁,以保我后生。

陟彼景山,松伯丸丸。是断是迁,方斫是虔。松桷有梴,旅楹有闲,寝成孔安。

!![[诗经]]

!![[古诗源]]

!![[千家诗]]


!诗经

!![[国风]]

!![[小雅]]

!![[大雅]]

!![[颂]]
!中国古典文学集

!![[楚辞]]

!![[汉赋]]

!![[诗集]]

!![[宋词]]


---

本文件内容来源: https://github.com/garychowcmu/daizhigev20

本文件来源:https://xy185.github.io

---

另外,你可能还需要知道:

[[编辑示范说明|编辑示范说明]]

[[文档使用指南]]

---



本文件采用[[内容分享声明|内容分享声明]]中的第一种声明:

[[署名-相同方式分享-维权代理|内容分享声明]]
《李清照集校注》  (宋)李清照 著 

  ●漱玉词全集 

  分正集、存疑、误题、补遗和佚词,共收词88首,残句13则,佚词1。  

  (一)正集(词43首,残句2则) 

  南歌子 

  天上星河转,人间帘①幕垂。凉生枕簟泪痕滋,起解罗衣,聊问夜何其②? 

  翠贴莲蓬小,金销藕叶稀。旧时天气旧时衣,只有情怀、不似旧家时! 

  ①帘:《历代诗余》作“翠”。 

  ②其:音jī,语助词。  

  转调满庭芳 

  芳草池塘,绿阴庭院,晚晴寒透窗纱。玉钩①金锁,管是客来唦②。寂寞尊前席上,惟□□③、海角天涯。能留否?酴醾④落尽,犹赖有□□⑤ 。 

  当年、曾胜赏,生香熏袖,活火分茶。□□龙骄⑥马,流水轻车。不怕风狂雨骤,恰才称,煮酒残⑦花。如今也,不成怀抱,得似旧时那? 

  (缺六字) 

  ①玉钩:各本《乐府雅词》原缺,据文津阁《四库全书》本《乐府雅词》补。惟此句“玉钩金锁”文义,与下句不甚连接,疑有错误,或馆臣臆补。 

  ②唦:此字字书不载,宋人词中用之,依所押之韵,应读做shā音,语助词。 

  ③□□:文津阁《四库全书》本《乐府雅词》作“惟愁”,仍缺一字,疑非,故未补。 

  ④酴醾:或作“荼蘼”。 

  ⑤□□:文津阁《四库全书》本《乐府雅词》作“梨花”。按季节酴醾花开在梨花之后,此处作梨花不妥。未据补。 

  ⑥骄:原作“娇”,应误,今改。 

  ⑦残:四印斋本《漱玉词》注“别作笺”。未知所据何本,文义已不合。  

  渔家傲 

  天接云涛连晓雾,星河欲转①千帆舞。彷佛梦魂归帝所,闻天语,殷勤问我归何处。 

  我报路长嗟日暮,学诗谩②有惊人句。九万里风鹏正举。风休住,蓬舟吹取③三山去。 

  《唐宋诸贤绝妙词选》、《林下词选》、诗词杂俎本《漱玉词》题作“记梦”。 

  《广蘅馆词选》乙卷“此绝似苏辛派,不类《漱玉词》中语”。 

  ①转:《历代诗余》作“曙”。 

  ②谩:《历代诗余》作“复”。 

  ③取:文津阁《四库全书》本《乐府雅词》作“往”。  

  如梦令 

  常①记溪亭日暮, 

  沈②醉不知归路。 

  兴尽晚③回舟, 

  误入藕花④深处。 

  争渡、争渡, 

  惊起一滩⑤鸥⑥鹭。 

  《唐宋诸贤绝妙词选》题作“酒兴”。 

  杨金本《草堂诗余》卷上,误作苏轼词。 

  《词林万选》卷四,误作无名氏,注“或作李易安”。(按:《词林万选》书中所注或作某某,殆为毛晋所加,非杨慎原文) 

  《汇选历代名贤词府全集》卷一、《唐词纪》卷五、《古今词话·词辨》卷上、《历代诗余》卷112引《古今词话》,俱误作吕洞宾词。 

  ①常:《全芳备祖》、杨金本《草堂诗余》、《古今词话》、《历代诗余》卷112作“尝”。 

  ②沈:通假字“沉”。 

  ③晚:《全芳备祖》、《词林万选》、《唐词纪》、《二如亭群芳谱》、《古今词话》、《历代诗余》卷112、《广群芳谱》作“欲”。 

  ④藕花:杨金本《草堂诗余》、《花草粹编》作“芙蕖”。 

  ⑤滩:诗词杂俎本《漱玉词》、《全芳备祖》、《唐宋诸贤绝妙词选》、《林下词选》、杨金本《草堂诗余》、《词林万选》、《二如亭群芳谱》、《林下词选》、《历代诗余》、《广群芳谱》、《三李词》、《唐词纪》、《古今词话》作“行”。(按:《三李词》所收之词,多录自《历代诗余》,以后凡《三李词》与《历代诗余》文章无出入者,校记不列。) 

  ⑥鸥:《全芳备祖》作“鸳”。  

  如梦令 

  昨夜雨疏风骤①。 

  浓睡不消残酒。 

  试问卷帘人, 

  却道海棠依旧。 

  知否、知否? 

  应是绿肥红瘦。 

  一题作春晚、暮春、春景、春晓、春容。 

  《全芳备祖》误将调名作《醉花阴》。 

  ①雨疏风骤:一作“风疏雨骤“。  

  菩萨蛮 

  风柔日薄①春犹早,夹衫乍著心情好。睡起觉微寒,梅花鬓上残。 

  故乡何处是?忘了除非醉。沈水卧时烧,香消酒未消。 

  ①薄:四部丛刊本、文津阁四库全书本《乐府雅词》作“暮”。  

  菩萨蛮 

  归鸿声断残云碧。背窗雪落炉烟直。烛底凤钗明,钗头人胜轻。 

  角声催晓漏。曙①色回牛斗。春意看花难,西风留旧寒。 

  ①曙:从《花草粹编》补,《乐府雅词》原作空格,文津阁四库全书本作“霁”。  

  浣溪沙 

  小院闲窗春色深,重帘未卷影沈沈,倚楼无语理瑶琴。 

  远岫出云①催薄暮,细风吹雨弄轻阴。梨花欲谢②恐难禁。 

  《草堂诗余》(杨金本无题)、《汇选历代名贤词府全集》、《啸余谱》、《古今诗余醉》、《记红集》、《清绮轩词选》题作“春景”。 

  ①云:《乐府雅词》、《花草粹编》原作“山”,据《历代诗余》及他本误引之周邦彦词改。 

  ②谢:沈际飞本《草堂诗余》注一作“卸”。  

  浣溪沙 

  淡荡春光寒食天,玉炉沈水袅残烟,梦回山①枕隐花钿。 

  海燕未②来人斗草,江梅已③过柳生绵,黄昏疏雨湿秋千。 

  此首别见于明《永乐大典》收录的宋人仲并《浮山集》,题作“春闺即事”。宋人曾慥以此为易安作。 

  ①山:《浮山集》作“绣”。 

  ②燕:《阳春白雪》作“归”。 

  ③已:《浮山集》作“初”。  

  凤凰台上忆吹箫  

  香冷金猊,被翻红浪,起来慵自①梳头。任宝奁尘满②,日③上帘钩。生怕离怀别苦④,多少事、欲说还⑤休。新来⑥瘦,非干病久,不是悲秋。  

  休休⑦!这回去也,千万遍阳关,也则⑧难留。念武陵人远⑨,⑩烟锁秦楼⑾。惟有⑿楼前流⒀水,应念我、终日凝眸。凝眸⒁处,从今又添⒂,⒃一⒄段新愁。 

  一题作“闺情”。 

  一题作“离别”。 

  ①慵自:《乐府雅词》原作“人未”。  

  ②尘满:《乐府雅词》原作“闲掩”。 

  ③日:《汇选历代名贤词府全集》作“月”。 

  ④离怀别苦:《乐府雅词》原作“闲愁暗恨”;《词的》作“离情别苦”;《草堂诗余》评林秋集卷五、《词菁》作“离别苦”;《自怡轩词谱》、《碎金词谱》作“别愁离苦”。 

  ⑤还:《啸余谱》作“难”。 

  ⑥新来:《乐府雅词》原作“今年”。 

  ⑦休休:《乐府雅词》原作明朝。 

  ⑧则:《乐府雅词》原作“即”;《词菁》作“只”。 

  ⑨人远:《乐府雅词》原作“春晚”。 

  ⑩《历代词府全集》此句作“空凝竚武陵人远”。 

  ⑾烟锁秦楼:《乐府雅词》原作“云锁重楼”。 

  ⑿惟有:《乐府雅词》原作“记取”。 

  ⒀流:《乐府雅词》原作“绿”。 

  ⒁凝眸:沈际飞本《草堂诗余》注“一作‘盼望’,误”。 

  ⒂又添:《乐府雅词》原作“更数”。 

  ⒃《汇选历代名贤词府全集》此句作“从今去又添”,无“凝眸处”三字。 

  ⒄一:《乐府雅词》原作“几”。  

  一剪梅 

  红藕香残玉簟秋,轻解罗裳①,独上兰舟。云中谁寄②锦书来③,雁字回④时,月满西⑤楼。⑥ 

  花自⑦飘零水自流,一种相思,两处⑧闲⑨愁。此情无计可⑩消除,⑾才⑿下眉⒀头,却⒁上心⒂头。 

  《彤管遗编》、《名媛玑囊》、《绣谷春容》调作“一枝花”。 

  一题作“别愁”、“离别”、“秋别”、“闺思”。 

  清张宗櫹《词林纪事》卷十九:“此《一剪梅》变体也。前段第五句原本无‘西’字,后人所增。旧谱谓脱去一字者非。又按汲古阁宋词,此词载入《惜香乐府》,恐误。” 

  赵万里辑《漱玉词》云:“又案此阕别见赵长卿《惜香乐府》九。以校《雅词》,颇有异文:‘玉簟’作‘碧树’、‘轻解罗裳’作‘羞解罗襦’、‘独’作‘偷’、‘满’下有‘西’字、‘此情无计可消除’作‘酒醒梦断数更残’、‘才下眉头’作‘旧恨前欢’、‘却’作‘总’,疑出长卿手订。编者不察,遂误入赵集耳。” 

  按又万历庚子乔山书堂刊本《续草堂诗余》卷下,此首作无名氏词。 

  ①裳:《便读草堂诗余》、《草堂诗余评林》作“襦”; 沈际飞本《草堂诗余》注“一作‘襦’,误”;《续草堂诗余》作“裙”。 

  ②谁寄:《古今别肠词选》作“不见”。 

  ③来:《古今别肠词选》作“投”。 

  ④回:《琅(láng)嬛(huán)记》、《词律》作“来”。 

  ⑤西:许多版本皆无“西”字,词学丛书本《乐府雅词》注“一本无西字”。 

  ⑥《古今别肠词选》此二句作“雁字南楼,明月西楼”。 

  ⑦自:《便读草堂诗余》、《草堂诗余评林》作“月”;《古今女史》作“落”。 

  ⑧处:《历城县志》、《林下词选》做“地”。 

  ⑨闲:《续草堂诗余》作“离”;《天籁轩词选》作“凝”;文津阁四库全书本《乐府雅词》无此字。 

  ⑩可:《续草堂诗余》作“与”。 

  ⑾《古今别肠词选》此句作“此时转转几时休”。 

  ⑿才:《弇(yǎn)州山人词评》一作“方”;沈际飞本《草堂诗余》注“一作方”。 

  ⒀眉:《续草堂诗余》作“心”。 

  ⒁却:《花草粹编》等作“又”,沈际飞本《草堂诗余》注“一作又”。 

  ⒂心:《续草堂诗余》作“眉”。  

  蝶恋花·晚止昌乐馆寄姊妹 

  泪湿①罗②衣脂粉满③,④四⑤叠阳关,唱⑥到⑦千千遍。人道⑧山长山⑨又断,萧萧微⑩雨闻孤馆。 

  惜别伤离方寸乱,忘了临行,酒盏深和浅。好⑾把⑿音书凭过雁,东莱不似蓬莱远。 

  此首别见于元人刘应李《事文类聚翰墨大全》后丙集卷四,无撰人姓氏,题作《晚止昌乐馆寄姊妹》。 

  田艺衡《诗女史》卷十一、田艺衡《留青日札》卷三十九、《阳关三叠》、周铭《林下词选》卷三并以为延安夫人作,题《暂止乐昌馆寄姊妹》。 

  郦琥《彤管遗编》后集卷十二、《古今名媛汇诗》卷十七、《名媛玑囊》卷三、赵世杰《古今女史》卷十二亦作延安夫人词,题作《寄姊妹》。 

  叶申芗(xiāng)《闽词钞》卷四、林葆恒《闽词征》卷六亦作延安夫人词,题作“暂止东昌馆寄姊妹”,注:“此阕或误题李易安”。 

  宋人曾慥《乐府雅词》以此为李易安作,必无错误。 

  ①湿:《翰墨大全》、《留青日札》、《诗女史》、《彤管遗编》、《花草粹编》、《名媛玑囊》、《林下词选》、《历代诗余》等作“揾(wèn)”。 

  ②罗:《翰墨大全》、《留青日札》、《古今名媛汇诗》、《诗女史》、《彤管遗编》、《花草粹编》、《名媛玑囊》、《林下词选》、《历代诗余》等作“征”。 

  ③满:《翰墨大全》、《留青日札》、《古今名媛汇诗》、《诗女史》、《彤管遗编》、《花草粹编》、《名媛玑囊》、《林下词选》、《历代诗余》等作“暖”。 

  ④此句四印斋本《漱玉词》注“别作泪揾征衣脂粉暖”。 

  ⑤四:文津阁四库全书本《乐府雅词》作“三”。 

  ⑥唱:《历代诗余》作“听”。 

  ⑦到:《翰墨大全》、《诗女史》、《彤管遗编》、《花草粹编》、《名媛玑囊》、《林下词选》、《历代诗余》等作“了”。 

  ⑧道:《历代诗余》作“到”。 

  ⑨山:《历代诗余》作“水”。 

  ⑩微:《留青日札》作“风”。 

  ⑾好:《翰墨大全》、《留青日札》、《诗女史》、《彤管遗编》、《花草粹编》、《名媛玑囊》、《林下词选》、《历代诗余》、《古今名媛汇诗》、《古今女史》作“若”。 

  ⑿把:《翰墨大全》、《留青日札》、《诗女史》、《彤管遗编》、《花草粹编》、《名媛玑囊》、《林下词选》、《历代诗余》、《古今名媛汇诗》、《古今女史》作“有”;四印斋本《漱玉词》注“别作有”。  

  蝶恋花 

  暖雨①晴②风初破冻,柳眼③梅腮④,已觉春心⑤动。酒意诗情谁与共?泪融残粉花钿重。 

  乍试夹衫⑥金缕缝,山⑦枕斜欹(yi)⑧,枕损钗头凤。独抱浓愁无好梦,夜阑犹翦灯花弄。 

  《唐宋诸贤绝妙词选》、《草堂诗余别集》、《古今词统》、《古今诗余醉》、《词汇》、《林下词选》、诗词杂俎本《漱玉词》题作“离情“。 

  《草堂诗余别集》注:“一作春怀”。 

  ①雨:四部丛刊本《乐府雅词》作“日”,旁注“雨”。 

  ②晴:四部丛刊本《乐府雅词》旁注“和”;《唐宋诸贤绝妙词选》、《草堂诗余别集》、《古今词统》、《古今诗余醉》、《林下词选》、《历代诗余》、诗词杂俎本《漱玉词》作“和”;《花草粹编》、文津阁四库全书本《乐府雅词》作“清”; 《草堂诗余别集》注“一作清,误”。 

  ③眼:《草堂诗余别集》注“一作润”;《唐宋诸贤绝妙词选》、《林下词选》、诗词杂俎本《漱玉词》作“润”。 

  ④腮:《唐宋诸贤绝妙词选》、《林下词选》、诗词杂俎本《漱玉词》作“轻”。 

  ⑤心:四部丛刊本《乐府雅词》旁注“风”。 

  ⑥衫:《唐宋诸贤绝妙词选》、《草堂诗余别集》、《古今词统》、《古今诗余醉》、《历代诗余》、《林下词选》、诗词杂俎本《漱玉词》作“衣”。 

  ⑦山;《草堂诗余别集》注“一作鸳”。 

  ⑧斜欹:《历代诗余》、文津阁四库全书本《乐府雅词》作“欹斜”。  

  鹧鸪天 

  寒①日萧萧上②锁窗,梧桐应恨夜来霜。酒阑更喜团茶苦,梦断偏宜瑞脑香。 

  秋已尽,日犹长,仲宣怀远更凄凉。不如随分尊前醉,莫负东篱菊蕊黄。 

  ①寒:《历代诗余》作“尽”。 

  ②锁:《历代诗余》、文津阁四库全书本《乐府雅词》作“琐”。  

  小重山  

  春到长门春草青,江梅些子破,未开匀。碧玉笼①碾玉成尘,留晓②梦,惊破一瓯春③。 

  花影压重门,疏帘铺淡月,好黄昏。二年三度负东君,归来也,著意过今春。 

  ①笼:文津阁四库全书本《乐府雅词》、《花草粹编》作“龙”。 

  ②晓:文津阁四库全书本《乐府雅词》、《花草粹编》、《历代诗余》作“晚”。 

  ③瓯春:文津阁四库全书本《乐府雅词》旁注“溪云”。“春” 《历代诗余》作“云”。  

  临江仙 

  (序:)欧阳公做蝶恋花,有“深深深几许”之语,予酷爱之。用其语做作“庭院深深”数阕。其声即旧临江仙也。①  

  庭院深深深几许?云窗雾阁常扃(jiōng)。柳梢梅萼渐分明。春归秣陵树,人客②建安③城。 

  感月吟风多少事,如今老去无成。谁怜憔悴更凋零。试灯无意思,踏雪没心情。④ 

  疑从《词学丛书》本《乐府雅词》作“建安”为是。 

  ①此序见《草堂诗余前集》卷上欧阳永叔蝶恋花词注。(清沈雄《古今词话·词辨》卷上引《乐府纪闻》一则与此同。《词苑丛谈》卷一又另有一则,盖亦出自《草堂诗余》)。 

  蝶恋花(欧阳修) 

  庭院深深深几许?杨柳堆烟,帘幕无重数。玉勒雕鞍游冶处,楼高不见章台路。 

  雨横风狂三月暮。门掩黄昏,无计留春住。泪眼问花花不语,乱红飞过秋千去。 

  此首《蝶恋花》非欧阳修作,实冯延巳(sì)作。 

  ②客:赵万里辑《漱玉词》作“老”。 

  ③建安:四部丛刊本《乐府雅词》作“远安”;四印斋所刻词本《漱玉词》、赵万里辑《漱玉词》作“建康”。 

  ④末二句,《花草粹编》、《历代诗余》作“灯花空结蕊,离别共伤情”。  

  醉花阴 

  薄雾浓云①愁永昼,瑞脑销②金③兽。佳④节又重阳,玉⑤枕纱橱,半夜⑥凉⑦初透。⑧ 

  东篱把酒⑨黄昏后,有暗香⑩盈袖。莫道不销魂,帘卷西风,人似⑾黄花瘦。 

  诗词杂俎本《漱玉词》、《花草粹编》等题作“九日”。 

  《草堂诗余》、《词的》等题作“重阳”。 

  《汇选历代名贤词府全集》题作“重九”。 

  ①云:《全芳备祖》作“阴”(该书只存抄本,另有作“云”);《词品》卷一云“今俗本改‘雰(fèn)’作‘云’”;《古今词统》等作“雰”;《林下词选》云“一作‘云’”;沈际飞本《草堂诗余》注“一作‘雰’,误”。 

  ②销:《全芳备祖》、《草堂诗余》等作“喷”; 沈际飞本《草堂诗余》作“销”,注“一作喷,误”。 

  ③金:《全芳备祖》、《二如亭群芳谱》作“香”。 

  ④佳:诗词杂俎本《漱玉词》、《全芳备祖》等作“时”; 沈际飞本《草堂诗余》注“一作佳,误”。 

  ⑤玉:《草堂诗余》、《词的》等作“宝”; 沈际飞本《草堂诗余》注“一作玉”;《自娱轩词选》作“鸳”。 

  ⑥夜:《啸余谱》、《古今诗余醉》作“夏”,误。 

  ⑦凉:《全芳备祖》、《草堂诗余》等作“秋”。 

  ⑧凉初:《诗余圆谱》作“秋先”; 《历城县志》作“新凉”; 沈际飞本《草堂诗余》在句末注“一作秋光透,又作秋先透,俱误”。 

  ⑨酒:《词学筌蹄》、《汇选历代名贤词府》作“菊”。 

  ⑩香:《全芳备祖》误作“风”(抄本或作‘香’,或误作‘风’”)。 

  ⑾似:《全芳备祖》(抄本或作‘似’,或误作‘比’”); 《彤管遗编》、《词综》等作“比”; 四印斋所刻词本《漱玉词》作“比”,注“别作似”。  

  好事近  

  风定落花深,帘外拥红堆雪。长记海棠开后,正①伤春时节。 

  酒阑歌罢玉尊空,青缸②暗明灭。魂梦不堪幽怨,更一声啼鴂(jué)。 

  ①正:原本作“正是”; 四印斋所刻词本《漱玉词》云“此词上段末句‘是’字疑衍”;赵万里辑《漱玉词》云“按此句无作六言者,‘正’、‘是’二字必有一衍”;兹从其说,删去“是”字。 

  ②缸:文津阁四库全书本《乐府雅词》、《花草粹编》作“红”。  

  诉衷情  

  夜来沈①醉卸妆迟,梅萼②插残枝。酒醒熏破春睡,梦远不成归。③ 

  人悄悄,月依依,翠帘垂。更挼残蕊,更捻余香,更得些时。 

  《花草粹编》题作《枕畔闻残梅喷香》。 

  ①沈:通“沉”。 

  ②萼:《花草粹编》作“蕊”。 

  ③“酒醒”二句:《乐府雅词》原作“酒醒薰破,惜春梦远,又不成归”,与律不合,兹从《花草粹编》改;四印斋本《漱玉词》注“运案:‘酒醒’三句,毛抄本、《花草粹编》并作‘酒醒熏破春睡,梦断不成归’”;词学丛书本《乐府雅词》云“案《诉衷情》有单调、有双调,皆与此词不同。惟《诉衷情令》相合,但前段第三句六字、第四句五字。此词前段五句,下三段皆作四字一句,较谱多一字。或传为误增,或当时本有此体,然宋人皆无如此填者,附注俟考”。  

  行香子  

  草际鸣蛩、惊落梧桐、正人间天上愁浓。云阶月地①,关锁千重②,纵浮槎来,浮槎去,不相逢。 

  星桥鹊③驾,经年才见,想离情别恨难穷。牵牛织女,莫是离中。甚霎儿晴,霎儿雨,霎儿风。④ 

  《历代诗余》题作“七夕”。 

  ①地:四部丛刊本《乐府雅词》、《花草粹编》、《词谱》作“色”。 

  ②重:《花草粹编》作“里”,误。此处应叶韵。  

  ③鹊:四部丛刊本《乐府雅词》、《花草粹编》作“鹤”。 

  ④“甚霎儿晴”三句:《花草粹编》、《词谱》作“甚一霎儿晴,一霎儿雨,一霎儿风。”每句多一“一”字,《词谱》以为又一体。按《翰墨大全》丁集卷一,有铃岗(傅大询)《行香子》·邓宰母一首,上下半阕末三句俱作四字句,《词谱》漏列其体,清照词则上半阕仍为三字句耳。  

  孤雁儿 

  世人作梅词,下笔便俗。予试作一篇,乃知前言不妄耳。  

  藤床纸帐朝眠起,说不尽无佳思。沈香断续①玉炉寒,伴我情怀如水。笛声三弄,梅心惊破,多少春情意。 

  小风疏雨萧萧②地,又催下千行泪。吹箫人去玉楼空,肠断与谁同倚。一枝折得,人间天上,没个人堪寄。 

  四印斋本《漱玉词》、《三李词》调作“御街行”。 

  ①断续:《历代诗余》、《花草粹编》、《天籁轩词选》作“烟断”。 

  ②萧萧:《历代诗余》、《花草粹编》、《天籁轩词选》作“潇潇”。  

  满庭芳 

  小阁藏春,闲窗锁昼,画堂无限深幽。篆香烧尽,日影下帘钩。手种江梅更①好,又何必、临水登楼。无人到,寂寥浑②似,何逊在扬州。 

  从来,知韵胜,难堪③雨藉,不耐风揉④。更谁家横笛,吹动浓愁。莫恨香消雪⑤减,须信道、扫迹⑥情留。难言处、良宵淡月,疏影尚风流。 

  《历代诗余》、《花草粹编》、《复堂词录》题作“残梅”。 

  ①更:《历代诗余》、《花草粹编》作“渐”。 

  ②浑:《历代诗余》、《花草粹编》作“恰”。  

  ③堪:《历代诗余》作“禁”。 

  ④揉:《乐府雅词》原作“柔”;《历代诗余》、《花草粹编》作“揉”。风柔无不耐之理,兹从《花草粹编》。 

  ⑤雪:《历代诗余》作“玉”。 

  ⑥扫迹:四印斋本《漱玉词》注“一作迹扫”。  

  玉楼春 

  红酥肯放琼苞①碎,探著南枝开遍未。不知酝藉几多香②,但见包藏无限意。 

  道人憔悴春窗底,闷损③阑干愁不倚。要来小酌④便来休,未必明朝风不起。 

  《历代诗余》、《花草粹编》题作“红梅”。 

  ①琼苞:《历代诗余》、《花草粹编》作“瑶”。 

  ②香:《历代诗余》作“时”。 

  ③闷损:《花草粹编》作“闲损”;《历代诗余》作“闲拍”。 

  ④酌:《花草粹编》作“著”;《历代诗余》作“看”。  

  渔家傲 

  雪里已知春信至。寒梅点缀琼枝腻。香脸半开娇旖旎。当庭际。玉人浴出新妆洗。 

  造化可能偏有意,故教明月玲珑地。共赏金尊沈①绿蚁。莫辞醉。此花不与群花比。 

  ①沈:通“沉”。  

  清平乐 

  年年雪里,常插梅花醉。挼尽梅花无好意,赢得满衣清泪。 

  今年海角天涯,萧萧两鬓生华。看取晚来风势,故应难看梅花。  

  鹧鸪天 

  暗淡轻黄体性柔,情疏迹远只香留。何须浅碧轻红色,自是花中第一流。 

  梅定妒,菊应羞,画栏开处①冠中秋。骚人可煞无情思,何事当年不见收。 

  ①画栏开处:《二如亭群芳谱》、《广群芳谱》作“诗书闲处”,按李贺金铜仙人辞汉歌云“画栏桂树悬秋香,三十六宫土花碧”,此词正用其事,故曰“画栏开处”。《群芳谱》不足据。  

  添字丑奴儿  

  窗前谁种①芭蕉树,阴满中庭,阴满中庭,叶叶心心、舒展有馀清②。 

  伤心枕上三更雨,点滴霖霪③,点滴霖霪③,愁损北④人,不惯起来听。 

  《历代诗余》调作《添字采桑子》 

  《花草粹编》、《词谱》作《采桑子》 

  《词鹄》云:“一名丑奴儿第二体”。 

  ①谁种:四印斋本《漱玉词》作“种得”。 

  ②清:各本俱作“情”。 

  ③霖霪:《历代诗余》、《词谱》、《词鹄》、四印斋本《漱玉词》作“凄清”。 

  ④北:《历代诗余》、《词谱》、四印斋本《漱玉词》作“离”。  

  忆秦娥 

  临高阁。乱山平野烟光薄。烟光薄。栖鸦归後,暮天闻①角。 

  断香残酒情②怀恶。西风③催衬梧桐落。梧桐落。又还秋色④,⑤又还寂寞。 

  四印斋本《漱玉词》题作“咏桐”。 

  此词又见杨金本《草堂诗余》前集卷上、《花草粹编》卷三,无撰人姓名。 

  ①闻:杨金本《草堂诗余》作“残”;《花草粹编》作“吹”。 

  ②情:《花草粹编》作“襟”。 

  ③西风:《群芳备祖》原缺此二字,据《花草粹编》补。 

  ④秋色:《花草粹编》作“愁也”。 

  ⑤又还秋色:杨金本《草堂诗余》作“天还秋也”。  

  念奴娇  

  萧条庭院,又①斜风细雨、重门须②闭。宠柳③娇花④寒食近,种种恼人天气。险韵诗成,扶头酒醒,别是闲滋味。征⑤鸿过尽、万千心事难⑥寄。 

  楼上几日春寒⑦,帘垂四⑧面,玉阑干慵倚。⑨被冷香消新⑩梦觉⑾,不许愁人不起。清露晨流,新⑿桐初引⒀,多少游春意。日⒁高烟敛,更看今⒂日晴未。 

  诗词杂俎本《漱玉词》、《词林纪事》调作《壶中天慢》。 

  《唐宋诸贤绝妙词选》、《词学筌蹄》、《草堂诗余》(杨金本无题)、《词选》等题作“春情”。 

  《彤管遗编》、《名媛玑囊》、《古今女史》、《古今名媛汇诗》题作“春日闺情”。 

  《词的》题作“春恨”。 

  《历城县志》题作“春思”。 

  ①又:《花草粹编》、《词的》、《草堂诗余》、《古今词统》、《历城县志》作“有”;沈际飞本《草堂诗余》卷四作“又”,注“一作‘有’,误”。 

  ②须:《词的》、《历代诗余》、《历城县志》作“深”。 

  ③柳:沈际飞本《草堂诗余》注“一作‘弱’,误”。 

  ④花:《阳春白雪》作“莺”。 

  ⑤征:《阳春白雪》作“飞”。 

  ⑥难:《阳春白雪》作“谁”。 

  ⑦春寒:《阳春白雪》作“寒浓”。 

  ⑧四:《阳春白雪》作“三”。 

  ⑨玉阑干慵倚:《阳春白雪》作“慵拍阑干倚”;《古今别肠词选》作“懒向阑干倚”。 

  ⑩新:《阳春白雪》作“清”;《历城县志》作“春”;《古今别肠词选》作“孤”。 

  ⑾梦觉:《彤管遗编》误倒作“觉梦”;“觉”《阳春白雪》作“断”。 

  ⑿新:《阳春白雪》作“疏”。 

  ⒀引:《词菁》作“影”。 

  ⒁日:《阳春白雪》作“云”。 

  ⒂今:《阳春白雪》作“明”。  

  永遇乐·元宵  

  落日熔金,暮云合璧,人在何处。染柳烟浓①,吹梅笛怨,春意知几许。元宵佳节,融和天气,次第岂无风雨。来相召,香车宝马,谢他酒朋诗侣。 

  中州盛日,闺门多暇,记得偏重三五。铺翠冠儿、捻金雪柳、簇带争济楚。如今憔悴,风鬟霜②鬓,怕见夜间出去。③不如向,帘儿底下,听人笑语。 

  题据《贵耳集》卷上补。 

  ①浓:《贵耳集》、《癸巳类稿》卷十五引断句作“轻”。 

  ②霜:四印斋所刻词本《漱玉词》作“雾”。 

  ③怕见夜间出去:《癸巳类稿》作“怕向花间重去”;四印斋所刻词本《漱玉词》注“‘见’别作‘向’,又作‘怕向花间重去’”。  

  长寿乐·南昌生日 

  微寒应候,望日边、六叶阶蓂初秀。爱景欲挂扶桑,漏残银箭,杓回摇斗。庆高闳此际,掌上一颗明珠剖。有令容淑质,归逢佳偶。到如今,昼锦满堂贵胄。 

  荣耀,文步紫禁,一一金章绿绶。更值棠棣连阴,虎符熊轼,夹河分守。况青云咫尺,朝暮重入承明后。看彩衣争献,兰羞玉酎。祝千龄,借指松椿比寿。 

  此首原题撰人为易安夫人,宋人未见有以此呼清照者,未知有误否?《翰墨大全》有延安夫人、易少夫人,俱仅一字之异。  

  武陵春 

  风住尘香花①已尽,日晚②倦梳头。物是人非事事休,欲语③泪先④流。 

  闻说⑤双溪春尚⑥好,也拟泛轻⑦舟。只恐双溪舴艋舟,载不动⑧、许多愁⑨。 

  诗词杂俎本《漱玉词》、《类编草堂诗余》、《古今名媛汇诗》、《汇选历代名贤词府全集》等题作“春晚”。 

  《彤管遗编》、《彤管摘奇》、《名媛玑囊》题作“暮春”。 

  《词学筌蹄》题作“春暮”。 

  《词汇》题作“春晓”。 

  《词鹄》调作《武陵春第二体》。 

  赵万里辑《漱玉词》云:“至正本《草堂诗余》前集上《如梦令》后接引此阕,不注撰人。玩意境颇似李作,姑存之。”(按明洪武本、成化本、荆聚本、陈钟秀本、杨金本《草堂诗余》前集卷上,此首俱无撰人,与至正本同。) 

  《古今别肠词选》卷二又误以此首为马洪所作。 

  ①花:《词律》、《词谱》作“春”。 

  ②晚:《花草粹编》作“落”;《词律》、《词谱》、《词汇》作“晓”。 

  ③语:崇祯《历城县志》误夺此字。 

  ④先:《彤管遗编》、《彤管摘奇》作“珠”;沈际飞本《草堂诗余》注“一作‘珠’,误”。 

  ⑤说:《天籁轩词选》作“道”。 

  ⑥尚:《啸余谱》作“向”。 

  ⑦轻:《历朝名媛诗词》、《汇选历代名贤词府》作“扁”。 

  ⑧动:沈际飞本《草堂诗余》注“一作‘得’,误”;文津阁四库全书本《漱玉词》作“得”。 

  ⑨愁:沈际飞本《草堂诗余》注“后叠句多一字”;《古今词统》、《林末下词选》云“载字衬”。  

  声声慢  

  寻寻觅觅,冷冷清清,凄凄惨惨戚戚。乍暖还寒时候,最①难将息。三杯两盏②淡酒,怎敌他、晚③来风急。雁过也,正④伤心,却是旧时相识。 

  满地黄花堆积,憔悴损,如今有谁忺(xiān)⑤摘。守著⑥窗儿,独自怎生得黑。梧桐更兼细雨,到黄昏、点点滴滴。这次第,怎一个、愁字了得? 

  《三百词谱》调名作《梧桐雨》。 

  《词的》、《古今名媛汇诗》、《草堂诗余别集》、《古今诗余醉》、文津阁四库全书本《漱玉词》等题作“秋情”。 

  《古今女史》题作“秋晴”。 

  《古今词统》、《历城县志》等题作“秋闺”。 

  《碎金词谱》题作“秋词”。 

  ①最:《词林万选》、《花草新编》、《花草粹编》、《古今名媛汇诗》等作“正”;《草堂诗余别集》注“一作‘正’”。 

  ②盏:《花草粹编》作“杯”;《草堂诗余别集》注“一作‘杯’”。 

  ③晚:《古今名媛汇诗》、《词的》、《碎金词谱》、《草堂诗余别集》等作“晓”;《草堂诗余别集》注“一作‘晚’”。 

  ④正:《花草新编》、《花草粹编》作“纵”;《草堂诗余别集》注“一作‘纵’”。 

  ⑤忺:《词林万选》、《草堂诗余别集》、《古今诗余醉》、《古今名媛汇诗》等作“堪”。 

  ⑥著:《贵耳集》卷上、《癸巳类稿》卷十五引断句作“定”。  

  点绛唇 

  寂寞深闺、柔①肠一寸愁千缕。惜春春去,几点催花雨。 

  倚遍阑干,只是无情绪。人何处,连天芳草②,望断归来路。 

  诗词杂俎本《漱玉词》、《花草粹编》、《续草堂诗余》、《词的》、《古今诗余醉》、《林下词选》、《词汇》题作“闺思”。 

  《古今名媛汇诗》、《古今女史》题作“闺怨”。 

  ①柔:《续选草堂诗余》作“愁”。 

  ②芳草:《花草粹编》原作“衰草”,《古今名媛汇诗》同;《草堂诗余续集》注“一作‘衰’,误”;诗词杂俎本《漱玉词》、《续选草堂诗余》、《古今诗余醉》、《林下词选》、《见山亭古今词选》作“芳草”;《词综》、《历代诗余》、《历朝名媛诗词》作“芳树”,四印斋本《漱玉词》同。 

  按此阕上半首云:“惜春春去,几点催花雨。”乃暮春景物,下云:“连天衰草”,则又为残秋气象,“衰”字必误。“芳草”字较合,惟“草”字不叶韵。“芳树”未知所本。  

  减字木兰花 

  卖花担上,买得一枝春欲放。泪染①轻匀,犹带彤霞晓露痕。 

  怕郎猜道、奴面不如花面好。云鬓斜簪,徒要教郎比并看。 

  赵万里辑《漱玉词》云“案汲古阁未刻本《漱玉词》收之,‘染’作‘点’,词意浅显,亦不似他作。”按以词意判断真伪,恐不甚妥,兹仍作清照词,不列入存疑词内。 

  ①染:四印斋本《漱玉词》作“点”,注“一作‘染’”。  

  摊破浣溪沙 

  揉破黄金万点轻①,剪成碧玉叶层层。风度精神如彦辅,大②鲜明。 

  梅蕊重重何俗甚,丁香千结苦麄(cu)生。熏透愁人千里梦,却无情。 

  ①轻:四印斋本《漱玉词》作“明”,注“一作‘轻’”。 

  按上半阕末句已押“明”字,此句不应重押,“轻”字是。 

  ②大:四印斋本《漱玉词》作“太”,注“一作‘大’”。  

  摊破浣溪沙 

  病起萧萧两鬓华,卧看残月上窗纱。豆蔻连梢煎熟①水,莫分茶。 

  枕上诗书②闲处好,门前风景雨来佳。终日向人多酝藉,木犀花。 

  《天籁轩词选》调作《山花子》;《历代诗余》调作《南唐浣溪沙》。 

  ①熟:《天籁轩词选》、《历代诗余》作“热”,赵辑《漱玉词》、《全宋词》同,误。 

  ②书:《历代诗余》作“篇”。  

  瑞鹧鸪·双银杏 

  风韵雍容未甚都,尊前甘橘可为奴。谁怜流落江湖上,玉骨冰肌未肯枯。 

  谁教并蒂连枝摘,醉后明皇倚太真。居士擘(bāi)开真有意,要吟风味两家新。 

  赵万里辑《漱玉词》云“案虞、真二部,诗余绝少通叶。极似七言绝句,与《瑞鹧鸪》词体不合”。 

  按《花草粹编》收此篇作《瑞鹧鸪》,必非无据,尚未能断其为诗,兹仍编入词内。  

  庆清朝慢 

  禁幄低张,彤①栏巧护,就中独占残春。容华淡伫②,绰约俱见天真。待得群花过后,一番风露晓妆新。妖娆艳③态,妒风笑月,长殢东君。 

  东城边、南陌上,正日烘池馆,竞④走香轮。绮筵散日⑤,谁人可继芳尘。更好明光宫殿⑥。几枝先近⑦日边匀。金尊倒,拚了尽⑧烛,不管⑨黄昏。 

  ①彤:《历代诗余》作“雕”。 

  ②淡伫:《历代诗余》、《词谱》作“泞”;四印斋本《漱玉词》作“澹(dàn)沱”。 

  ③艳:《历代诗余》、《词谱》夺此字。 

  ④竞:《花草粹编》原作“竞”;兹从《历代诗余》、《词谱》作“竞”。旧本书“竞”误作“竞”者常有之。 

  ⑤日:《历代诗余》作“目”。 

  ⑥殿:《历代诗话》作“里”。 

  ⑦近:《历代诗话》作“向”。 

  ⑧了尽:“尽”《历代诗话》作“画”;赵万里辑《漱玉词》云“‘了尽’当作‘尽了’”。 

  ⑨管:《词谱》作“爱”。  

  失调名 

  条脱闲揎(xuān)系五丝。 

  《岁时广记》卷二十一“易安居士词云‘条脱闲揎系五丝’”。  

  失调名·元旦词 

  瑞脑烟残,沈香火冷。 

  见于《岁时广记》卷四十《纪闻》“李易安《元旦》词云‘瑞脑烟残,沈香火冷’”。 

  《岁时广记》所引《纪闻》原出《太平广记》卷二百三十六,文字稍有出入。  

  多丽  

  小楼寒,夜长帘幕低垂。恨潇潇、无情风雨,夜来揉①损琼②肌。也不似、贵妃醉脸,也不似、孙寿愁③眉。韩令偷香,徐娘傅粉,莫将比拟未新奇。细看取,屈平陶令,风韵正相宜。微风起,清芬酝藉,不减酴醾。  

  渐秋阑、雪清玉瘦,向人无限依依。似愁凝、汉皋解佩,似泪洒、纨扇题诗。朗④月清风,浓烟暗雨,天教憔悴度⑤芳姿。纵爱惜,不知从此,留得几多时。人情好,何须更忆,泽畔东篱。  

  《乐府雅词》题作“咏白菊”。  

  《历代诗余》题作“兰菊”。  

  ①揉:四部丛刊本《乐府雅词》注一作“掺”。  

  ②琼:四部丛刊本《乐府雅词》作“瑶”。  

  ③愁:《历代诗余》作“低”。  

  ④朗:《花草粹编》、《历代诗余》作“明”。  

  ⑤度:《历代诗余》作“瘦”。  

  浣溪沙  

  莫许杯深琥珀浓,未成沈醉意先融,疏钟①已应晚来风。  

  瑞脑香消魂梦断,辟寒金小髻鬟松,醒时空对烛花红。  

  ①疏钟:据文津阁四库全书本《乐府雅词》。此二字不妥,疑亦臆补。  

  怨王孙  

  湖上风来波浩渺,①秋已暮、红稀香②少。水光山色与人亲,说不尽、无穷好。  

  莲子已成荷叶老,清③露洗、蘋花汀草。眠沙鸥鹭不回头,似③也④恨、人归早。  

  此词别见于《词谱》卷二引《复雅歌词》,作无名氏词。《复雅歌词》久无传本,《词谱》殆从《花草粹编》转引。  

  《碎金词谱》卷二亦作无名氏词。  

  ①《花草粹编》注:“首句,复雅歌词作云锁重楼帘幕晓”。  

  ②香:《乐府雅词》少此字。兹从其他各本补。  

  ③清:词学丛书本《乐府雅词》作“青”。  

  ④似:《历代诗余》、《天籁轩词选》作“应”。  

  (二)存疑 (词14首,残句1则) 

  怨王孙 

  梦断、漏悄,愁浓、酒恼。宝枕生寒,翠屏向晓。门外谁扫残红?夜来①风。 

  玉箫声断人何处?春又去,忍把归②期负。此情此恨此际,拟托行云,问东君。 

  ①夜来:《历城县志》作“落花”。 

  ②归:陈钟秀本《草堂诗余》、《诗余图谱补遗》、《古今女史》、《古今词统》作“佳”。  

  怨王孙  

  帝里春晚,重门深院。草绿阶前,暮天雁断。楼上远信谁①传?恨绵绵。 

  多情自是多沾惹,难拼②舍,又是寒食也。秋千巷陌人静,皎月初斜,浸梨花。 

  《草堂诗余》、《汇选历代名贤词府全集》、《词的》、《名媛玑囊》、《词综》、《复堂词录》、诗词杂俎本《漱玉词》题作“春暮”。  

  《啸余谱》题作“春景”。 

  《古今名媛汇诗》、《古今女史》题作“暮春”。 

  赵万里辑《漱玉词》云:“案上二阕(指‘梦断、漏悄’一阕及此阕)《诗词杂俎》本《漱玉词》收之,殆与《类编草堂诗余》同出一源。前一阕,至正本《草堂诗余》引与《如梦令》《武陵春》二词衔接,类编本以为李作,失之。后一阕,至正本不收,见类编本,未详所出。” 

  按:前一首杨金本《草堂诗余》前集卷下作无名氏词;后一首杨金本《草堂诗余》同卷作秦少游词,并无题。《类编草堂诗余》并以为李清照作,不可据。 

  ①谁:《古今诗余醉》作“难”。 

  ②拼:《草堂诗余评林春集》卷三、《便读草堂诗余》卷三作“弃”。  

  生查子  

  年年玉镜台,梅蕊宫妆困。今岁未还家①,怕见江南信。 

  酒②从别后疏,泪向愁中尽。遥想楚云深,人远天涯近。 

  《汇选历代名贤词府全集》、《古今名媛汇诗》、《名媛玑囊》、《绣谷春容》、《古今女史》题作“闺情”。 

  别作朱淑真词,见元·杨朝英《乐府新编·阳春白雪》卷一、《词综》卷二十五、金绳武本《花草粹编》卷二、《复堂词录》卷八。 

  又作朱希真词,见《词林万选》卷四、《花草粹编》卷一、四印斋所刻词本《樵歌拾遗》。 

  ①未还家:《林下词选》、《历代诗余》作“不归来”。 

  ②酒:《樵歌拾遗》作“欢”。  

  丑奴儿  

  晚①来一阵②风兼雨,洗尽炎光。理罢笙簧,却对菱花淡淡妆。 

  绛绡缕薄冰肌莹,雪腻酥香。笑语檀郎,今夜纱厨枕簟凉。 

  《汇选历代名贤词府全集》调作《丑奴儿令》。 

  杨金本《草堂诗余》、《汇选历代名贤词府全集》、《花草粹编》题作“夏意”。 

  《词的》题作“新凉”。 

  ①晚:《古今词选》作“晓”。 

  ②阵:《花草粹编》作“霎”。 

  四印斋本《漱玉词》注:“此阕词意肤浅,不类易安手笔。” 

  赵万里辑《漱玉词》云:“案上阕词意儇(xuān)薄,不似他作。未知升庵何据?” 

  按: 

  此首别见《汇选历代名贤词府全集》卷一、《花草粹编》卷二,题康伯可作。(赵万里辑《顺庵乐府》,此阕失收。) 

  又见杨金本《草堂诗余》后集卷下、《词的》卷二、《古今词选》卷一,俱无撰人姓氏。 

  《古今别肠词选》卷一又误以此首为魏大中词。 

  此首疑实为康与之词。  

  点绛唇  

  蹴(cù)罢秋千,起来慵整①纤纤手。露浓花瘦,薄汗轻衣透。 

  见客入来,②袜刬(chǎn)金钗溜。和羞走,倚门回首,却把青梅嗅。 

  《续草堂诗余》、《词的》、《古今词统》、《古今诗余醉》、《花镜隽声》、《词汇》题作“秋千”。 

  杨金本《草堂诗余》题作“佳人”。 

  ①慵整:杨金本《草堂诗余》、《续草堂诗余》、《古今词统》、《古今诗余醉》作“整顿”。 

  ②见客入来:《历代诗余》、《古今图书集成》、《天籁轩词选》、金绳武活字本《花草粹编》作“见有人来”。 

  此首别作苏轼词,见杨金本《草堂诗余》卷下。 

  又作无名氏词,见《花草粹编》卷一、《续草堂诗余》卷上、《古今词统》卷四、《古今诗余醉》卷十二、《花镜隽声》卷七、《词汇》卷七、《同情集词选》卷四。 

  别又误作周邦彦词,见《词的》卷二。 

  赵万里辑《漱玉词》云:“案词意浅薄,不似他作。未知升庵何据?” 

  按: 

  一九五九年出版之北京大学学生编写之《中国文学史》第五编第四章,断定此首为李清照作,评价颇高,恐未详考。《词林万选》中不可靠之词甚多,误题作者姓名之词,约有二三十首,非审慎不可也。  

  浪淘沙 

  帘外五更风,吹梦无踪。画楼重上与谁同?记得玉①钗斜拨火,宝篆成空。 

  回首紫金峰,雨润烟②浓。一江春浪③醉醒中。留得罗襟前日泪,弹与征鸿。 

  《续草堂诗余》、《古今词统》、《古今诗余醉》、《记红集》、《古今词选》题作“闺情”。 

  《林下词选》云:“一本误刻六一居士。” 

  赵万里辑《漱玉词》云:“案《花草粹编》卷五引此阕,不注撰人。《词林万选》注‘一作六一居士。’检《醉翁琴趣》无之,未知升庵何据?” 

  按杨金本《草堂诗余》前集卷下,此首作无名氏词。 

  《续草堂诗余》卷上、《古今词统》卷七、《古今诗余醉》卷十、《见山亭古今词选》卷中、《记红集》卷一、《古今词选》卷二、《词汇》卷二、《自怡轩词选》卷一并以为欧阳修词。 

  此首似非李清照作,亦决非欧阳修词(《近体乐府》、《醉翁琴趣外编》俱不载)。 

  又按《花草粹编》卷五,此首题“二”字,盖以为与前一首同一撰人所作(前一首乃幼卿撰),赵先生所考未谛。 

  疑从杨金本《草堂诗余》作无名氏词为是。 

  杨慎《词林万选》误题撰人姓名之词极多,殊不可据,清《四库全书总目·词林万选提要》疑其书为后人所伪托。此书所注:“一作某某。”不似杨慎原注,殆为毛晋刻《词苑英华》时所加。 

  ①玉:《草堂诗余续集》注“一作‘金’,误。” 

  ②烟:《历代诗余》、《晚香室词录》作“云”。 

  ③一江春浪:《词洁》、《自怡轩词选》作“一腔春恨”。  

  临江仙·梅 

  庭院深深深几许?云窗雾阁春迟。为谁憔悴损①芳姿。夜来清梦好,应是发南枝。 

  玉瘦檀轻无限恨,南楼羌管休吹。浓香吹②尽又谁知。暖风迟日也,别到杏花肥③。 

  题从《花草粹编》,他本俱无题。 

  四印斋本《漱玉词》注:“此首疑亦有伪,似借前《临江仙》词橅拟为之者。” 

  赵万里辑《漱玉词》云:“案《梅苑》九引作曾子宣妻词,《乐府雅词》下魏夫人词不收。以《草堂》所载前阕自序证之,自是李作无疑。王鹏运云:借前调橅拟为之者,盖未之深考也。” 

  按此首泛咏梅花,情调与另一首完全不同,未必同时所作。《乐府雅词》李词亦未收此首。《梅苑》以此首为曾子宣妻词,《花草粹编》以为李易安词,俱不详所本,存疑为是。 

  ①损:《历代诗余》、《天籁轩词选》作“瘦”。 

  ②吹:《历代诗余》、《天籁轩词选》作“开”。 

  ③肥:《历代诗余》、《天籁轩词选》作“时”。  

  殢人娇·后亭梅开有感 

  玉瘦香浓,檀深雪散。今年恨、探梅又①晚。江楼楚馆,云闲水远。清昼永,凭栏翠帘低卷。 

  坐上客来,尊前②酒满。歌声共、水流云断。南枝可插,更③须频剪。莫直待西楼、数声羌管。 

  题从《花草粹编》,他本俱无题。 

  赵万里辑《漱玉词》云:“案《梅苑》九引上阕,不注撰人。《花草粹编》题作李词者,其所据《梅苑》,殆较今本为善故也。兹并校之。” 

  按旧本《梅苑》,今不可见。傅本《梅苑》既不注撰人姓名,或《花草粹编》误题清照姓名,亦不可知。只能存疑。 

  ①又:《梅苑》作“较”。 

  ②前:《历代诗余》、《梅苑》作“中”。 

  ③更:《梅苑》作“便”。  

  青玉案 

  征鞍不见邯郸路,莫便匆匆归①去。秋风②萧条何以度?明窗小酌、暗灯清话,最好留连处。 

  相逢各自伤迟暮。犹③把新词④诵奇句。盐絮家风人所许。如今憔悴、但馀双⑤泪,一似黄梅雨。 

  《花草粹编》、《翰墨大全》题作“送别”。 

  赵万里辑《漱玉词》云:“案《翰墨大全》后丙集卷四引接《蝶恋花·上巳召亲族》一首,不注撰人。《花草粹编》,《历代诗余》以为李作,失之。” 

  按:通行元、明刻本《翰墨大全》后丙集未载诗词。此首只海宁吴氏拜经楼旧藏元刻初印本有之。 

  ①归:《翰墨大全》无“归”字。 

  ②风:《历代诗余》作“正”。 

  ③犹:《历代诗余》作“独”。 

  ④词:《历代诗余》、《词谱》作“诗”。 

  ⑤双:《翰墨大全》作“衰”。  

  浣溪沙 

  髻子伤春慵①更梳,晚风庭院落梅初,淡云来往月疏疏。 

  玉鸭薰炉闲瑞②脑,朱樱斗帐掩流苏。遗③犀还解辟④寒无。 

  《花草粹编》、《续草堂诗余》、《古今词统》、《古今诗余醉》、《历城县志》、《林下词选》题作“闺情”。 

  此首别见《花草粹编》卷二,无撰人姓氏,其前为李清照“淡荡春光寒食天”《浣溪沙》一阕。《续草堂诗余》等以为李清照作,未知何据。 

  ①慵:《花草粹编》、《古今诗余醉》、《历代诗余》、《词综》作“懒”。《历朝名媛诗词》误作“恼”。 

  ②瑞:《历城县志》作“玛”。 

  ③遗:《历代诗余》、《历朝名媛诗词》、《词综》作“通”。 

  ④辟:《历城县志》作“避”。  

  浣溪沙 

  绣面①芙蓉一笑开,斜飞②宝鸭衬香腮,眼波才③动被人猜。 

  一面风情深有韵,半笺④娇恨寄幽怀。月移花影约重来。 

  《续草堂诗余》、《二如亭群芳谱》、《花镜隽声》调名误作《山花子》。 

  《续草堂诗余》、《古今词统》、《古今女史》、《花镜隽声》、《古今诗余醉》、《林下词选》、《古今名媛汇诗》、《词的》题作“闺情”。 

  四印斋本《漱玉词》注:“此尤不类,明明是淑真‘月上柳梢头,人约黄昏后’词意。盖既污淑真,又污易安也。” 

  赵万里辑《漱玉词》云:“案《金瓶梅》卷十三回引上阕,不著撰人。《诗词杂俎》本《漱玉词》收之,‘面’作‘幕’,词意浅薄,不类易安他作。。王鹏运已疑之,未详所出。” 

  ①面:《历代诗余》、《古今图书集成》作“幕”。 

  ②飞:《历代诗余》、《古今图书集成》作“偎”;《词坛艳逸品》作“云”。 

  ③才:《古今诗余醉》作“方”。 

  ④笺:《古今图书集成》作“残”。  

  浪淘沙  

  素约①小腰身,不奈②伤春。疏梅影下晚妆新。袅袅娉娉③何样似?一缕轻云。 

  歌巧动朱唇,字字娇嗔④。桃花深径⑤一通津。怅望瑶台清夜月,还送⑥归轮。  

  《诗词杂俎》本《漱玉词》、《二如亭群芳谱》、《花镜隽声》调名误作《雨中花》。 

  《续草堂诗余》、《诗词杂俎》本《漱玉词》、《花镜隽声》、《古今诗余醉》、《林下词选》题作“闺情”。 

  赵万里辑《漱玉词》云:“案《诗词杂俎》本《漱玉词》收之,题作‘闺情’。《花草粹编》五引作赵子发词。《草堂续集》以为李作,失之”。 

  ①素约:《花草粹编》作“约素”。 

  ②奈:《续草堂诗余》、《历代诗余》、《林下词选》作“耐”。 

  ③娉娉:各本多作“娉婷”;只《续草堂诗余》、《花草粹编》作“娉娉”;《历代诗余》作“婷婷”。 

  ④嗔:《续草堂诗余》、《花镜隽声》、《花草粹编》作“真”,改从其他各本。 

  ⑤径:《花草粹编》作“处”。 

  ⑥送:《历代诗余》、《古今图书集成》作“照”。 

  鹧鸪天  

  枝①上流莺和泪闻,新啼痕间旧啼痕。一春鱼鸟②无消息,千里关山劳梦魂。  

  无一语,对芳樽,安排肠断到黄昏。甫能炙得灯儿③了,雨打梨花深闭门。  

  《草堂诗余》(杨金本无题)、《词的》、《古今词统》题作“春闺”。  

  四印斋本《漱玉词·补遗》“案毛钞本尚有《鹧鸪天》‘枝上流莺’一阕,《青玉案》‘一年春事’一阕,注云‘《草堂》作少游、永叔,而秦、欧集无。’今案此二阕,别本无作李词者,当是秦、欧之作。且脍炙人口,故未附录。”  

  各家辑《漱玉词》,俱未收此二阕。《全宋词》卷二百九十《李清照词》亦未载此二阕,盖俱本况周仪之说(惟李清照之附录词,卷末之《宋词互见表》俱未收入,则疑为遗漏)。按《草堂诗余》前后集上下四卷本载此二词,俱无撰人姓名。《枝上流莺》阕前为秦观《画堂春》一首,《一年春事》阕前为欧阳永叔《浪淘沙》一首。《类编草堂诗余》、四印斋刻陈钟秀本《草堂诗余》及以后各选本遂俱以为秦、欧之作,实不足据。明谢天瑞本《诗余图谱》卷二不著撰人姓名,注:“诗余”。杨金本《草堂诗余》前集卷上载《鹧鸪天》词,后集卷上载《青玉案》词,并无撰人姓名。汲古阁未刻词本《漱玉词》收此二词,虽未知所本,但此二首既非秦、欧之作,实应存疑,不宜遽(jù)从《漱玉词》中删去。  

  汲古阁未刻词本《漱玉词》原书未见。此词从《类编草堂诗余》卷一录出。其文字与汲古阁未刻词本《漱玉词》是否相同,不得而知。  

  ①枝:沈际飞本《草堂诗余》。注“一作‘枕’,误。”《古今词统》作“枕”,注:“‘枕’误作 ‘枝’”。按此处以作“枝”为是,《古今词统》所云不足据。  

  ②鸟:《草堂诗余》前集卷上、《草堂诗余评林春集》卷二、《诗余画谱》作“雁”。  

  ③儿:沈际飞本《草堂诗余》注“一作‘光’,误。”  

  青玉案 

  一年春事都来几?早过了三之二。绿暗红嫣浑可事①。②绿③杨庭院,暖风帘幕,有个人憔悴。 

  买花载酒长安市,又④争似家山见桃李。不枉⑤东风吹客泪。相思难表,梦魂无据,惟有归来是。 

  《类编草堂诗余》、《古今词统》题作“春日怀旧”。 

  杨金本《草堂诗余》题作“春情”。 

  此首或为无名氏词,《类编草堂诗余》误为欧阳修作,参阅上《鹧鸪天》考证。 

  沈际飞本《草堂诗余》正集注:“一刻易安。” 

  各本《草堂诗余》而外,误为欧阳修作者尚有《词学筌蹄》卷五、《汇选历代名贤词府全集》卷三、《花草新编》卷三、《花草粹编》卷七、《词综》卷四、《古今图书集成·人事典》卷一百零五、《词轨》卷四、《蓼园词选》等书。近人周泳先《唐宋金元词钩沈》、唐圭璋《全宋词》(初版本),咸承其误。 

  ①事:沈际飞本《草堂诗余》注“一作‘是’,误。”按此首末句押“是”字,此句作“是”字必误。 

  ②绿暗红嫣浑可事:胡桂芳本《类编草堂诗余》卷上作“绿暗红稀浑何事”。 

  ③绿:杨金本《草堂诗余》作“垂”。 

  ④又:沈际飞本《草堂诗余》注“后段第二句多一字。”《古今词统》注“又字衬”。 

  ⑤枉:《古今词统》、《词洁》卷二作“住”。  

  失调名 

  教我甚情怀。 

  出于《花草粹编》卷二朱秋娘集句《采桑子》,亦载《彤管遗编》后集卷十二,未注每句出处。《花草粹编》所载则每句俱注有撰人,当别有所据。 

  按:《彤管遗编》云朱秋娘名希真,与宋词人朱敦儒之字希真相同。《彤管遗编》、《古今女史》等所载朱希真(秋娘)词,又多见于朱敦儒《樵歌》。一部分词则又见于朱淑真《断肠词》。朱秋娘有无其人,颇成疑问。所集词句,未见可据。 

  (三)误题(词29首,残句2则) 

  玉烛新 

  溪源新腊后。见几朵江梅,剪裁初就。晕酥砌玉,芳英嫩,故把春心轻漏。前村昨夜,想弄月、黄昏时候。孤岸悄,疏影横斜,浓香暗沾襟袖。  

  尊前赋与多才,问岭外风光,故人知否?寿阳谩斗。终不似,照水一枝清瘦。风娇雨秀。好插繁华盈首。须信羌笛无情,看看又奏。  

  此首乃周邦彦作,见宋本《详注周美成词片玉集》卷七。 

  《梅苑》误作李清照词。  

  品令 

  零落残红,似胭脂颜色。一年春事,柳飞轻絮,笋添新竹。寂寞,幽对小园嫩绿。 

  登临未足。怅游子、归期促。他年清梦,千里犹到,城阴溪曲。应有凌波,时为故人凝目 

  此首乃曾纡(yū)词见《乐府雅词》卷下。《京本通俗小说》所引多附会之说,不足据。  

  春光好 

  看看腊尽春回。消息到、江南早梅。昨夜前村深雪里,一朵先开。 

  盈盈玉蕊如裁。更风清、清香暗来。空使行人肠欲断,驻马徘徊。  

  河传·梅影 

  香雹素质。天赋与、倾城标格。应是晓来,暗传东君消息。把孤芳,回暖律。 

  寿阳粉面增妆饰。说与高楼,休更吹羌笛。花下醉赏,留取时倚阑干,斗清香,添酒力。  

  七娘子 

  清香浮动到黄昏,向水边疏影梅开粉。溪边伴,轻蕊有如浅杏。一枝儿、喜得东君信。 

  风吹只怕霜侵损。更欲折来,插在多情鬓。寿阳妆面、雪肌玉莹。岭头别后微添粉。  

  忆少年 

  疏疏整整,斜斜淡淡,盈盈脉脉。徒怜暗香句,笑梨花颜色。 

  羁马萧萧行又急。空回首、水寒沙白。天涯倦牢落,忍一声羌笛。  

  上海新编《李清照集》云:“此阕《梅苑》作易安词。”下《捣练子》、《喜团圆》、《清平乐》、《二色宫桃》、《泛兰舟》、《远朝归》、《十月梅》、《真珠髻》、《击梧桐》、《沁园春》、等阕俱同。 

  按传本《梅苑》,各首实俱作无名氏词,不知所据何本。  

  玉楼春·腊梅 

  腊梅先报东风信。清似龙涎香得润。黄轻不肯整齐开,比著江梅仍更韵。 

  纤枝瘦绿天生嫩。可惜轻寒摧韵横。刘郎只解误桃花,惆怅今年春又尽。 

  以上五首,俱见《梅苑》卷九,无撰人姓氏,盖无名氏作品。 

  《永乐大典》误作李清照词。《梅苑》无名氏词,《永乐大典》往往以为前一人所作。 

  又按:唐圭璋《全唐词》,《玉楼春》一首失收。又《全宋词》所录《永乐大典》各词,先后次序未依原书,文字亦与原书不尽相同,如改从别本,又无任何注明,一似《永乐大典》原文如是者,不知何故?  

  柳梢春·春晚 

  子规啼血。可怜又是,春归时节。满院东风,海棠铺绣,梨花飞雪。   

  丁香露泣残枝,诮未比、愁肠寸结。自是休文,多情多感,不干风月。 

  此乃蔡伸作,见《友古居士词》。 

  洪武本《草堂诗馀》前集卷上、荆聚本《草堂诗馀》前集卷上、陈钟秀本《草堂诗馀》卷上、杨金本《草堂诗馀》后集卷上俱误作无名氏词。 

  《词学筌蹄》误作李清照词,《七修类藁》殆承其误。 

  《类编草堂诗馀》卷一、《诗馀图谱补遗》卷一等又俱误作贺铸词。 

  上海新编《李清照集》云:“《草堂诗馀》作易安词。”余所见各本《草堂诗馀》未有以此词为李易安作者。不知究竟何本也。  

  点绛唇·春晚 

  红杏飘香,柳含烟翠拖轻缕。水边朱户。门掩黄昏雨。  

  烛影摇红,一枕伤春绪。归不去。凤楼何处。芳草迷归路。  

  此首乃苏轼作,见曾慥本《东坡词拾遗》。 

  洪武本《草堂词馀》前集卷上误作无名氏词。 

  《类编草堂诗馀》卷一又误作贺铸词,其后各选本俱误从之。  

  青玉案·春晚 

  凌波不过横塘路,但目送、芳尘去。锦瑟年华谁与度。月楼花院,倚牕朱户。惟有春知处。 

  碧云冉冉蘅皋暮。彩笔空题断肠句。试问闲愁知几许。一川烟草,满城风絮,梅子黄时雨。 

  此乃贺铸作,见《东山词》卷上,《乐府雅词》卷上、《中吴记闻》卷三、《诗人玉屑》卷二一等书。黄山谷有《寄贺方回》诗云:“少游醉卧古藤下,谁与愁眉唱一杯。解作江南断肠句,只今惟有贺方回”。见《山谷内集诗注》卷十八。宋人和方回此词韵者甚多。 

  洪武本《草堂诗馀》前集卷上误作无名氏词。  

  如梦令·闺怨 

  谁伴明窗独坐?和我影儿两个。灯尽欲眠时,影也把人抛亸。无那。无那。好个恓(qi)惶的我。 

  此乃向镐作,见《乐斋词》。 

  《续草堂诗馀》误作李清照词。 

  《林下词选》注:“一本误作向丰之”。非是。 

  上海新编《李清照集》云:“《乐府雅词》作向镐《乐斋词》。”而传本《乐府雅词》并无此词,亦无向镐词,不知何据,疑有错误。  

  菩萨蛮·闺情 

  绿云鬓上飞金雀。愁眉翠敛春烟薄。香阁掩芙蓉。画屏山几重。  

  窗寒天欲曙。犹结同心苣。啼粉污罗衣。问郎归几时? 

  乃五代时牛峤所作,见《花间集》卷四。《续草堂诗馀》等误。《林下词选》注:“一本误作牛峤。”非。  

  生查子·元夕有怀 

  去年元夜时,花市灯如昼。月在柳梢头,人约黄昏后。  

  今年元夜时,月与灯依旧。不见去年人,泪满春衫袖。 

  此乃欧阳修词,见《欧阳文忠公近体乐府》卷一。 

  《词的》误作李清照词。 

  又《汇选历代名贤词府全集》卷一、《续草堂词馀》卷上误以此首为秦观词。 

  《词品》卷二误为朱淑真词。 

  《见山亭古今词选》卷一误作无名氏词。 

  《瀛奎律髓》卷十六王諲《观灯》诗,方回注云:“如李易安‘月上柳梢头’则邪僻矣。”是宋人已误以此为清照作矣。  

  浣溪沙·春暮 

  楼上晴天碧四垂。楼前芳草接天涯。劝君莫上最高梯。 

  新笋看成堂下竹,落花都上燕巢泥。忍听林表杜鹃啼.  

  乃周彦邦词,见《详注周美成词片玉集》卷三。《林下词选》注:“一本误刻周美成。”非。 

  《便读草堂诗余》等误作李清照词  

  孤鸾·早梅 

  天然标格,是小蕚堆红,芳姿凝白。淡伫新妆,浅点寿阳宫额。东君想留厚意,倩年年、与传消息。昨夜前村雪里,有一枝先拆。 

  念故人何处水云隔。纵驿使相逢,难寄春色。试问丹青手,是怎生描得。晓来一番雨过,更那堪、数声羌笛。归去和羹未晚,劝行人休摘。 

  此首见《草堂诗馀正集》卷四,题朱希真撰,注:“误刻李”。盖当时或以此为李清照词也。 

  实为无名氏作。见《草堂诗馀》后集卷下、杨金本《草堂诗馀》后集卷下、陈钟秀本《草堂诗馀》后集卷下。 

  陈钟秀本《草堂诗馀》卷下、《类编草堂诗馀》卷三误作朱敦儒词,其后各选本多承其误。  

  品令 

  急雨惊秋晓。今岁较、秋风早。一觞一咏,更须莫负,晚风残照。可惜莲花已谢,莲房尚小。 

  汀蘋岸草。怎称得、人情好。有些言语,也待醉折、荷花问道。道与荷花,人比去年总老。 

  此首见《花草粹编》卷七,无撰人姓名,与前《品令》“零落残红”一首相衔接。 

  《词谱》误作李清照词。  

  捣练子 

  欺万木,怯寒时。倚阑初认月宫姬。拭新妆,披素衣。 

  孤标韵,暗香奇。冰容玉艳缀琼枝。借阳和,天付伊。  

  喜团圆 

  轻攒碎玉,玲珑竹外,脱去繁华。□殢东君,□先点破,□压群花。   

  瘦影生香,黄昏月馆,清浅溪沙。仙标淡伫,偏宜幺凤,肯带栖鸦。 

  (缺三字) 

  此二首俱无名氏词,见《梅苑》卷八。第二首又误作晏几道词,见朱之赤旧藏抱经斋钞本《小山词》补遗引《花草粹编》。 

  李文裿辑《漱玉词》卷三此二首俱误作李清照词。  

  清平乐 

  寒溪过雪。梅蕊春前发。照影临姿香苒苒,临水一枝风月。 

  梦游仿佛仙乡。绿窗曾见幽芳。事往无人共说,愁闻玉笛声长。  

  二色宫桃 

  镂玉香苞酥点蕚。正万木、园林萧索。惟有一枝雪里开,江南有信凭谁托。 

  前年记赏登高阁。叹年来、旧欢如昨。听取乐天一句云,花开处、且须行乐。 

  以上二首皆无名氏作,见《梅苑》卷九。 

  李文裿辑《漱玉词》卷三误作李清照词。  

  小桃红 

  后园春早。残腊蒙烟草。数树寒梅,欲绽香英。小妹无端、折尽钗头朵,满把金尊细细倾。 

  忆得往年同伴,沈吟无限情。恼乱东风、莫便吹零落,惜取芳菲眼下明。 

  此首乃晏殊《玉堂春》词,见《珠玉词》。 

  《梅苑》卷八误作无名氏词。 

  李文裿辑《漱玉词》误作李清照词。  

  行香子  

  天与秋光,转转情伤。探金英、知近重阳。薄衣初试,绿蚁初尝。渐一番风、一番雨、一番凉。 

  黄昏院落,恓恓惶惶。酒醒时、往事愁肠。那堪永夜,明月空床。闻砧声捣、蛩声细、漏声长。 

  无名氏作,见《乐府雅词拾遗》卷下(《全宋词》失收)。 

  李文裿辑《漱玉词》误作李清照词。 

  上海《李清照集》云:“此词见《花草粹编》,除冷雪庵本《漱玉词》(指李文裿辑《漱玉词》)外,各本俱未收。”按传世《花草粹编》两种:一为明万历原刊十二卷本(有影印本),一为清金绳武活字印二十四卷本,此二本俱不做李清照词。  

  泛兰舟 

  霜月亭亭时节,野溪开冰灼。故人信付,江南归也仗谁托。寒影低横,轻香暗度,疏篱幽院何在,秦楼朱阁。称帘幙。 

  携酒共看,依依承醉更堪作。雅淡一种天然,如雪缀烟薄。肠断相逢,手捻嫩枝追思?浑似那人,浅妆梳掠。 

  无名氏词,见《梅苑》卷一。 

  李文裿辑《漱玉词》误作李清照词。  

  远朝归 

  金谷先春,见乍开江梅,晶明玉腻。珠帘院落,人静雨疏烟细。横斜带月,又别是、一般风味。金尊里。任遗英乱点,残粉低坠。   

  惆怅杜陇当年,念水远天长,故人难寄。山城倦眼,无绪更看桃李。当时醉魄,算依旧、徘徊花底,斜阳外。谩回首、画楼十二。 

  此赵耆孙词,见《花草粹编》卷八。 

  《梅苑》卷一作无名氏词。 

  李文裿辑《漱玉词》卷四误作李清照词。  

  远朝归 

  新律才交,早旧梢南枝,朱污粉腻。烟笼淡妆,恰值雨膏初细。而今看了,记他日、酸甜滋味。多应是。伴玉簪凤钗,低挜斜坠。 

  迤逦,对酒当歌,眷恋得芳心,竟日何际。春光付与,尤是见欺桃李。叮咛寄语,且莫负、尊前花底。拼沈醉。尽铜壶、漏传三二。  

  《梅苑》卷八无名氏词。 

  《花草粹编》卷八作赵耆孙词。 

  李文裿辑《漱玉词》卷四误作李清照词。  

  十月梅 

  千林凋尽,一阳未报,已绽南枝。独对霜天,冒寒先占花期。清香映月浮动,临浅水、疏影斜欹。孤标不似,绿李夭桃,取次成蹊。   

  纵寿阳、妆脸偏宜。应未笑、天然雅态冰肌。寄语高楼,凭阑羌管休吹。东君自是为主,调鼎鼐、终付他时。从今点缀,百草千花,须待春归。 

  无名氏词,见《梅苑》卷一。 

  李文裿辑《漱玉词》卷四误作李清照词。  

  真珠髻·红梅 

  重重山外,苒苒流光,又是残冬时节。小园幽径,池边楼畔,翠木嫩条春别。纤蕊轻苞,粉萼污、猩猩鲜血。乍几日,好景和风,次第一齐催发。   

  天然香艳殊绝,此双成,皎皎倍增芳洁。去年因遇东归使,指远恨、意曾攀折。岂谓浮云,终不放、满枝明月。但叹息、时饮金钟,更绕丛丛繁雪。 

  无名氏词,见《梅苑》卷一。 

  《历代诗馀》卷八七误作晏几道词。 

  李文裿辑《漱玉词》卷四误作李清照词。  

  击梧桐 

  雪叶红凋,烟林翠减,独有寒梅难并。瑞雪香肥,碎玉奇姿,迥得佳人风韵。清标暗折芳心,又是轻泄,江南春信。最好山前水畔,幽闲自有,横斜疏影。 

  尽日凭阑,寻思无语,可惜飘琼飞粉。但怅望、王孙未赏,空使清香成。怎得移根帝苑,开时不许众芳近。免教问、深岩暗谷,结成千万恨。  

  沁园春 

  山驿萧疏,水亭清楚,仙姿太幽。望一枝颖脱,寒流林外,为传春信,风定香浮。断送光阴,还同昨夜,叶落从知天下秋。凭阑处,对冰肌玉骨,姑射来游。 

  无端品笛悠悠。似怨感长门人泪流。奈微酸已寄,青青□杪,助当年太液,调鼎和馐。樵岭渔桥,依稀精彩,又何藉纷纷俗士求。孤标在,想繁红闹紫,应与包羞。 

  (缺一字) 

  以上二首皆无名氏作,见《梅苑》卷一。 

  李文裿辑《漱玉词》卷一误作李清照词。  

  失调名 

  凝眸。两点春山满镜愁。 

  乃周邦彦《南乡子》词句,见陈元龙《详注周美成词片玉集》卷三。 

  《花镜隽声》所附《花镜韵语》以为李清照作,误。  

  失调名 

  几日不来楼上望,粉红香白已争妍。 

  此乃清初顾贞立(顾贞观之姊)《浣溪沙》词句,全篇云:“百啭娇莺唤独眠。起来慵自整花钿。浣衣风日试衣天,几日不曾楼上望,粉红香白已争妍。柳条金嫩滞春烟。”题作《和王仲英夫人韵》,见《众香词》礼集(亦见清初人其他选本,兹不赘引)。 

  《蕙风词话》以为李清照词句,失考。 

  《蕙风词话》原文云:“梅宛陵诗‘不上楼来今几日,满城多少柳丝黄。’《晁氏客语》记欧公云:‘非圣俞不能到。’(见宋叶寘《爱日斋丛钞》)按李易安词:‘几日不曾楼上望,粉红香白已争妍。’由此脱胎,却自是词笔。” 

  (四)补遗(词2首,残句8则) 

  新荷叶 

  薄露初零,长宵共、永昼分停。绕水楼台,高耸万丈蓬瀛。芝兰为寿,相辉映、簪笏盈庭。花柔玉净,捧觞别有娉婷。 

  鹤瘦松青,精神与、秋月争明。德行文章,素驰日下声名。东山高蹈,虽卿相、不足为荣。安石须起,要苏天下苍生。 

  孔繁礼《全宋词补辑》:  

  《诗渊》“娉婷”字后空一格,有“又”字,再空一格,接“鹤瘦”句,似乎“鹤瘦”以下为另一首。 

  徐培均《李清照集笺注》:  

  此词原载北京图书馆藏明抄本《诗渊》第六册第4513页第12行,作者署“宋李 

  易安”。  

  刘瑜《李清照全词》: 

  明抄本《诗渊》(第二十五册)收为李清照词。 

  全文依《诗渊》影印本(第4513页)录之。 

  王步高、刘林《李清照·辛弃疾全集》: 

  “生”作“行”。 

  杨合林《李清照集》: 

  “绕”作“遶”。  

  木兰花令  

  沉水香消人悄悄。楼上朝来寒料峭。春生南浦水微波,雪满东山风未扫。  

  金樽莫诉连壶倒。卷起重帘留晚照。为君欲去更凭栏,人意不如山色好。  

  徐培均《李清照集笺注》:  

  此词录自台北国家图书馆藏明抄本程敏政《天机馀锦》卷二,由黄文吉复印寄赠徐培均。  

  “诉”原误作“”,径改。  

  徐北文《李清照全集评注》2005年第二版增补:“未”作“来”。 

  失调名(集残句)  

  几日不来楼上望,  

  粉红香白几争妍。  

  几多深恨断人肠。  

  水晶山枕象牙床。  

  行人舞袖拂梨花。  

  犹将歌扇向人遮。  

  闲愁也似月明多。  

  罗衣消尽恁时香。  

  直送凄凉到画屏。  

  彩云易散月长亏。  

  凝眸,  

  两点春山满镜愁。  

  本为10则,因王仲闻本误题类收入其中“几”、“凝”2则,故只算8则。  

  刘瑜《李清照全词》:  

  八句中七句出于宋人胡伟《宫词》集句,唐圭璋《全宋词》收之,唐案:“胡伟所集,有诗句亦有词句。李清照以词名,且此七句依其格调,似是词句。”亦见于王仲闻本的易安诗部分,王案:“其用韵相同者是否属于同一作品,无法考定。又胡伟所集,有时割裂原句,……此七句是否俱为完整之句,亦不得而知。以各句风调观之,似是词句。传世清照诗,与之不甚相近。”  

  其中“行人”句出自《古今小说》之《张古老种瓜娶文女》,亦见于王仲闻本的易安诗部分,王案:“此句未必为易安所作,为诗为词,亦不可知。”  

  (五)佚词 (词目1) 

  鹊桥仙·金鱼池莲  

  宋人朱敦儒有和词  

  附:  

  鹊桥仙·和李易安金鱼池莲  

  朱敦儒  

  自鸥欲下,金鱼不去,圆叶低开蕙帐。轻风冷露夜深时,独自个、凌波直上。  

  幽兰共挽,明珰难寄,尘世教谁将傍。会寻织女趁灵槎,泛旧路、银河万丈。  

  ●易安诗全集 

  说明:  

  本集照王仲闻的《李清照集校注》1997年新一版录出。  

  收诗18首,残句15则。

  浯溪中兴颂诗和张文潜  

  五十年功如电扫,华清宫柳咸阳草。  

  五坊供奉斗鸡儿,酒肉堆中不知老。  

  胡兵忽自天上来,逆胡亦是①奸雄才。  

  勤政楼前走胡马,珠翠踏尽香尘埃。  

  何为②出战辄披靡,传置③荔枝多马④死。  

  尧功舜德本⑤如天,安用区区纪文字。  

  著碑⑥铭德⑦真陋哉,乃令神鬼磨山崖。  

  子仪光弼不自⑧猜,天心悔祸人心开。  

  夏商有鉴⑨当深戒,简策汗青今具在。  

  君不见当时张说最多机,虽生已被姚崇卖。  

  文引《清波杂志》卷八、《寒夜录》卷下、《香祖笔记》卷五、《浯溪考》卷下、《宋诗纪事》卷八七、《绣水诗钞》卷一  

  ①是:《癸巳类稿》作“自”。  

  ②何为:《癸巳类稿》作“六师”。  

  ③传置:《癸巳类稿》作“前致”。  

  ④多马:《癸巳类稿》作“马多”。  

  ⑤本:《癸巳类稿》作“诚”。  

  ⑥碑:《香祖笔记》、《绣水诗钞》作“功”。  

  ⑦铭德:《癸巳类稿》作“刻铭”。  

  ⑧自:《宋诗纪事》作“用”。  

  ⑨夏商有鉴: 此依宋本《清波杂志》。知不足各丛书本《清波杂志》、《寒夜录》等俱作“夏为殷鉴”。

  又  

  君不见①惊人废兴②传③天宝,中兴碑上今生草。  

  不知负国有奸雄,但说成功尊国老。  

  谁令妃子天上来,虢、秦、韩国皆天④才。  

  花⑤桑⑥羯鼓玉方响,春风不敢生尘埃。  

  姓名谁复知安、史,健儿猛将安眠死。  

  去天尺五抱瓮峰,峰头凿出开元字。  

  时移势去真可哀,奸人心丑⑦深如崖。  

  西蜀万里尚能返,南内一闭何时开。  

  可怜孝德如天大,反使将军称好在。  

  呜呼,奴辈乃⑧不能道辅国用事张后尊⑨,乃能念⑩春荠长安作斤⑾卖。  

  文引《清波杂志》卷八、《寒夜录》卷下、《香祖笔记》卷五、《浯溪考》卷下、《宋诗纪事》卷八七、《癸巳类稿》卷十五、《绣水诗钞》卷一  

  ①君不见:《香祖笔记》、《绣水诗钞》无此三字  

  ②废兴:《香祖笔记》、《浯溪考》作“兴废”。  

  ③传:《癸巳类稿》作“唐”。  

  ④天:《癸巳类稿》作“仙”。  

  ⑤花:《寒夜录》、《宋诗纪事》作“苑”。  

  ⑥桑:《香祖笔记》、《浯溪考》、《癸巳类稿》、《绣水诗钞》作“苑天”。  

  ⑦丑:《寒夜录》、《癸巳类稿》作“魄”。  

  ⑧乃:《寒夜录》无此字。《香祖笔记》、《癸巳类稿》、《绣水诗钞》作“胡”。  

  ⑨尊:《癸巳类稿》作“专”。  

  ⑩乃能念:《香祖笔记》、《癸巳类稿》、《绣水诗钞》作“祗能道”。  

  ⑾长安作斤:《寒夜录》作“作斤长安”。  

  上枢密韩肖胄诗 

  绍兴癸丑五月,枢密韩公、工部尚书胡公使虏,通两宫也。有易安室者,父祖皆出韩公门下,今家世沦替,子姓寒微,不敢望公之车尘。又贫病,但神明未衰落。见此大号令,不能忘言,作古、律诗各一章,以寄区区之意,以待采诗者云。 

  三年夏六月,天子视朝久。凝旒望南云,垂衣思北狩。如闻帝若曰①,岳牧与群后。贤宁无②半千,运已遇③阳九。勿勒燕然铭,勿种金城柳。岂无纯孝臣,识此霜露④悲。何必羹舍⑤肉,便可车载⑥脂。土地非所惜,玉帛如⑦尘泥。谁当可⑧将命,币厚辞益卑。四岳佥曰俞,臣下帝所知。中朝第一人,春官有昌黎。身为百夫特,行足⑨万人师。嘉佑与建中,为政有皋夔。匈奴畏⑩王商,吐蕃⑾尊⑿子仪。夷狄⒀已⒁破胆,将命公所宜。公拜手稽首,受命白玉犀。曰臣敢辞难,此亦何等时。家人安足谋,妻子不必⒂辞。愿奉天地⒃灵,愿奉宗庙⒄威。径持紫泥诏,直入黄龙城。单于⒅定稽颡,⒆侍子当来迎。仁君方恃⒇信,(21)狂生休(22)请缨。或取犬(23)马血,与结天日盟。胡公清德人所难,谋同德协必志(24)安。脱衣已被(25)汉恩暖,离歌不道易水寒。(26)皇天久阴后土湿,雨势未回风势急。车声辚辚马萧萧,壮士懦夫俱感泣。闾阎嫠妇亦何知,沥血投书(27)干记室。夷虏从来(28)性虎狼,不虞预备庸何伤。衷甲昔时闻楚幕,乘城前日记平凉。(29)葵丘践土(30)非荒城,勿轻谈士弃儒生。露布词成马犹倚,崤函关出鸡未鸣。(31)巧匠何(32)曾弃(33)樗栎,刍荛之言(34)或有益。不乞隋珠与和壁,只(35)乞乡关新信息。灵光虽在应萧萧(36),草中翁仲今何若。遗氓岂尚(37)种桑麻,残虏(38)如闻保城郭。嫠家父祖(39)生齐鲁,位下名高人比数。当时(40)稷下纵谈时,犹记人挥汗成(41)雨。子孙南渡今几年,漂流(42)逐与流人伍。欲(43)将血泪寄山河(44),去洒东山(45)一抔土。 

  文引《云麓漫钞》卷十四、《宋诗纪事》卷八七、《癸巳类稿》卷十五、《绣水诗钞》卷一。 

  又 

  想见皇华过二京,壶浆夹道万人迎。连昌宫里桃应在,华萼楼前鹊定惊。 

  但说帝心怜赤子,须知天意念苍生。圣君大信明如日,长乱何须在屡盟。 

  文引《云麓漫钞》卷十四。  

  《云麓漫钞》云:《上枢密韩公诗》《宋诗纪事》题作《上枢密韩公、工部尚书胡公》,并自“胡公清德人所难”句起,另为一首(《癸巳类稿》等同)。按易安词序明云:“作古、律诗各一章”,即指此诗及下七律一首而言。如依《宋诗纪事》等则共为古、律诗三首,与序不合。且此古诗分为两首,则第一首词意未完,有头无尾。第二首开首即云“谋同德协”,突如其来,俱不能单独自成一首。此二首(此首及下律一首,实以韩肖胃为主,胡松年仅附及而已。兹从《云麓漫钞》订为一首。 

  《宋诗纪事》序文作:“绍兴癸丑五月,两公使金,通两宫也。易安父辈出韩公门下,见此大号令,不能忘言。作诗各一章以寄意,以待采诗者云。”殆为厉鹗所删节。序内原文“作古、律诗各一章”改为“作诗各一章”,而将古诗一首分作两首。 

  ①若曰:《绣水诗钞》作“曰咨”。 

  ②无:《癸巳类稿》作“违”。 

  ③遇:《癸巳类稿》、《绣水诗钞》作“过”。 

  ④露:《癸巳类稿》作“雪”。 

  ⑤羹舍:《癸巳类稿》作“舍羹”。 

  ⑥车载:《癸巳类稿》作“载车”。 

  ⑦如:《癸巳类稿》作“亦”。 

  ⑧当可:《癸巳类稿》作“可当”。 

  ⑨足:《癸巳类稿》作“为”。 

  ⑩匈奴畏:《宋诗纪事》作“汉家畏”;《癸巳类稿》作“汉家贵”。 

  ⑾吐蕃:《宋诗纪事》、《癸巳类稿》作“唐室”;《绣水诗钞》作“唐时”。 

  ⑿尊:《癸巳类稿》作“重”。 

  ⒀夷狄:《宋诗纪事》、《绣水诗钞》作“是时”。 

  ⒁夷狄已:《癸巳类稿》作“见时应”。 

  ⒂必:《癸巳类稿》作“复”。 

  ⒃天地:《癸巳类稿》作“宗庙”。 

  ⒄宗庙:《癸巳类稿》作“天地”。 

  ⒅单于:《宋诗纪事》、《绣水诗钞》作“北人”。 

  ⒆单于定稽颡:《癸巳类稿》作“北人怀旧德”。 

  ⒇恃:《宋诗纪事》、《绣水诗钞》作“博”。 

  (21)仁君方恃信:《癸巳类稿》作“圣孝定能达”。 

  (22)狂生休:《癸巳类稿》作“勿复言”。 

  (23)或取犬:《癸巳类稿》作“俏持白”。 

  (24)必志:《癸巳类稿》作“置器”。 

  (25)脱衣已被:《癸巳类稿》作“解衣已道”。 

  (26)离歌不道易水寒:《癸巳类稿》作“离诗不怯关山寒”。 

  (27)书:《癸巳类稿》作“诗”。 

  (28)夷虏从来:《绣水诗钞》作“天生性气”。 

  (29)“性虎狼”四句:《宋诗纪事》、《癸巳类稿》俱无,殆为其所删。 

  (30)践土:《癸巳类稿》作“莒文”。 

  (31)“露布”两句:《癸巳类稿》作“愤王墓下马犹倚,寒号城边鸡未鸣”。 

  (32)何:《癸巳类稿》作“亦”。 

  (33)弃:《癸巳类稿》作“顾”。 

  (34)言:《癸巳类稿》作“询”。 

  (35)只:《癸巳类稿》作“但”。 

  (36)萧萧:《癸巳类稿》作“萧条”。 

  (37)遗氓岂尚:《癸巳类稿》作“遗民定向”。 

  (38)残虏:《宋诗纪事》、《癸巳类稿》作“败将”。 

  (39)父祖:《癸巳类稿》作“祖父”。 

  (40)时:《癸巳类稿》作“年”。 

  (41)成:《癸巳类稿》作“如”。 

  (42)流:《宋诗纪事》、《癸巳类稿》作“零”。 

  (43)欲:《绣水诗钞》、《癸巳类稿》作“愿”。 

  (44)山河:《癸巳类稿》作“河山”。 

  (45)东山:《癸巳类稿》作“青州”;《绣水诗钞》作“山东”。 

  题八咏楼 

  千古风流八咏楼, 

  江山留与后人愁。 

  水通南国三千里, 

  气压江城十四州。 

  文引《方与胜览》卷七、《事文类聚翰墨大全》后乙集、《圣朝混一方舆胜览》卷下,《彤管遗编续集》卷十七、《名媛诗归》卷十八、《古今名媛汇诗》卷十一、《名嫒玑囊》卷三、《古今女史诗集》卷六、《绣谷春容》卷一、《绣水诗钞》卷一。 

  此首当作于绍兴五年,清照时在金华。  

  皇帝阁端午帖子 

  日月尧天①大, 

  璇玑舜历长。 

  侧②闻行殿帐, 

  多集③上书囊。 

  文引《浩然斋雅谈》卷上、《诗女史》卷十一、《彤管遗编续集》卷十七、《名媛诗归》卷十八、《古今女史诗集》卷七、《历朝名媛诗词》卷七、《癸巳类稿》卷十五、《绣水诗钞》卷一、《宋诗纪事补遗》卷九四。 

  ①天:《诗女史》、《彤管遗编》、《名媛诗归》作“仁”。 

  ②侧:《诗女史》、《彤管遗编》、《古今女史》、《历朝名媛诗词》、《绣水诗钞》作“或”。 

  ③集:《诗女史》、《彤管遗编》、《古今女史》、《历朝名媛诗词》、《绣水诗钞》作“是”。  

  皇后阁端午帖子 

  意帖初宜夏, 

  金驹已过蚕。 

  至尊千万寿, 

  行见百斯男。 

  文引《浩然斋雅谈》卷上、《癸巳类稿》卷十五、《绣水诗钞》卷一、《宋诗纪事补遗》卷九四。  

  夫人阁端午帖子 

  三宫催解粽, 

  妆罢未天明。① 

  便面天题字, 

  歌头御赐名。 

  文引《浩然斋雅谈》卷上、《癸巳类稿》卷十五、《绣水诗钞》卷一、《宋诗纪事补遗》卷九四。 

  ①“妆罢”句:《癸巳类稿》、《绣水诗钞》作“团箭采丝萦”。  

  偶成 

  十五年前花月底, 

  相从曾赋赏花诗。 

  今看花月浑相似, 

  安得情怀似昔时。 

  文引《永乐大典》卷八八九诗字韵。 

  此首乃黄盛璋先生首先发现者,见《李清照事迹考》。  

  皇帝阁春帖子 

  莫进①黄金簟, 

  新除玉局床。 

  春风送庭燎, 

  不复用沈香。 

  文引《诗女史》卷十一、《彤管遗编续集》卷十七、《古今女史诗集》卷七、《名媛诗归》卷十八、《历朝名媛诗词》卷七、《绣水诗钞》卷一。 

  各本载此首俱与前《皇帝阁端午帖子》(日月尧天大)一首合作一首,题作《皇帝阁》。传世宋人帖子词,或为七言四句,或为五言四句(新编《李清照集》云:“端午帖子均系五绝。”未知何据。)未见有五律或七律者。《浩然斋雅谈》载“日月尧天大”等三首,亦俱为五言四句,并不似误夺半首。《浩然斋雅谈》所载乃端午帖子,而此四句内有“春风”、“庭燎”,俱非端午事,此必春帖子也,(立春所进帖子词,名“春帖子”)。《诗女史》等殆以其同韵而误为一首,今分为两首。此首依其内容改题作《皇帝阁春帖子》。下贵妃阁一首,亦有“春”字,当亦为春帖子。亦同样改题,不另作说明。 

  此首必作于绍兴十三年或以后。《建炎以来系年要录》载:建炎以来,进帖子事久废,绍兴十三年立春,学士院始进帖子词。李清照进帖子词殆不止一次也。 

  ①进:《古今女史》、《历朝名媛诗词》作“是”;《绣水诗钞》作“其”。  

  贵妃阁春帖子 

  金环半后礼, 

  钩弋比昭阳。 

  春生百①子帐, 

  喜入万年觞。 

  文引《诗女史》卷十一、《彤管遗编续集》卷十七、《历朝闺雅》卷六、《名媛诗归》卷十八、《历朝名媛诗词》卷七、《绣水诗钞》卷一。 

  此首殆作于绍兴十三年立春之前。据《宋史·后妃传》:高宗吴皇后于绍兴十三年闰四月自贵妃立为皇后后,宫中无贵妃。贵妃既虚位,似不得有贵妃阁帖子。此诗其吴皇后为贵妃时作乎? 

  ①百:各本俱作“柏”,此从《历朝闺雅》改。  

  乌江 

  生当作①人杰, 

  死亦为②鬼雄。 

  至今思项羽, 

  不肯过江东。 

  文引《诗女史》卷十一、《彤管遗编续集》卷十七、《名媛诗归》卷十八、《历朝名媛诗词》卷七、《绣水诗钞》卷一、乾隆《章丘县志》卷十二。 

  《彤管遗编》、《名媛诗归》、《章丘县志》、《绣水诗钞》题作《夏日绝句》。 

  ①作:《彤管遗编》、《名媛诗归》、《历朝名媛诗词》作“为”。 

  ②为:同上作“作”。  

  分得知字 

  学语①三十年, 

  缄口不求知。 

  谁遣好奇士, 

  相逢说项斯。 

  《诗女史》卷十一、《彤管遗编后集》卷十七、《名媛诗归》卷十八、《绣水诗钞》卷一 

  ①语:彤管遗编、名媛诗归作“诗”。  

  晓梦 

  晓梦随疏钟,飘然蹑云霞。因缘安期生,邂逅萼绿华。 

  秋风正无赖,吹尽玉井花。共看藕如船,同食枣如瓜。 

  翩翩坐上客,意妙语亦佳。嘲辞斗诡辩,活火分新茶。 

  虽非助帝功,其乐莫可涯。人生能如此,何必归故家。 

  起来敛衣坐,掩耳厌喧哗。心知不可见,念念犹咨嗟。 

  诗女史卷十一、彤管遗编续集卷十七、名媛诗归卷十八、古今名媛汇诗卷三、古今女史诗集卷二、宋诗纪事卷八十七、历朝名媛诗词卷七、癸巳类稿卷十五、绣水诗钞卷一 

  ①蹑:癸巳类稿、绣水诗钞作“跻”。 

  ②坐上客:癸巳类稿作“垂发女”。 

  ③意妙:癸巳类稿作“貌妍”。 

  ④分:癸巳类稿作“烹”。 

  ⑤莫可:宋诗纪事作“何莫”。 

  “虽非”二句:癸巳类稿、绣水诗钞作“虽乏上元术,游乐亦莫涯”。 

  ⑥归故:宋诗纪事作“故归”。  

  春残 

  春残何事苦思乡, 

  病里梳头恨最①长。 

  梁燕语多终日在②, 

  蔷薇风细一帘香。 

  诗女史卷十一、彤管遗编续集卷十七、名媛诗归卷十八、古今名媛汇诗卷十一、名媛玑囊卷三、古今女史诗集卷六、二如亭群芳谱岁谱卷一、花镜隽声卷五、彤管摘奇卷下、历朝闺雅卷九、宋诗纪事卷八十七、历朝名媛诗词卷七、癸巳类稿卷十五、绣水诗钞卷一 

  ①最:癸巳类稿作“发”。 

  ②在:历朝名媛诗词作“伴”。  

  感怀 

  宣和辛丑八月十日到莱,独坐一室,平生所见,皆不在目前。几上有礼韵,因信手开之,约以所开为韵作诗。偶得“子”字,因以为韵,作感怀诗云。 

  寒窗败几无书史,公路可怜合①至此。 

  青州从事孔方君②,终日纷纷喜生事。 

  作诗谢绝聊闭门,燕寝凝香③有佳思。 

  静中我④乃得至交⑤,乌有先生子虚子。 

  诗女史卷十一、彤管遗编续集卷十七、名媛诗归卷十八、古今名媛汇诗卷五、古今女史诗集卷三、宋诗纪事卷八十七、历朝名媛诗词卷七、癸巳类稿卷十五、绣水诗钞卷一 

  古今女史题作“感怀诗”,无序。 

  各本无序,从《诗女史》、《彤管遗编》补。 

  ①可怜合:癸巳类稿作“生平竟”。合:彤管遗编作“竟”,历朝名媛诗词作“今”。 

  ②君:癸巳类稿作“兄”。 

  ③燕寝凝香:癸巳类稿、绣水诗钞作“虚室香生”。 

  ④我:癸巳类稿作“吾”。 

  ⑤得至交:癸巳类稿作“见真吾”。得:宋诗纪事作“见”。至:彤管遗编作“知”。  

  钓台 

  巨舰只缘因利往, 

  扁舟亦是为名来。 

  往来有愧先生德, 

  特地通宵过钓台。 

  钓台集卷下、宋诗纪事卷八十七 

  《钓台集》有数本,宋人所编久佚(见陈振孙《直斋书录解题》所著录,及元吴师道《吴礼部诗论》所引),有无此诗,不得而知。明吴希孟所编《钓台集》八卷,无此首。刘伯潮辑本卷下始载之。疑此诗为宋本所未收。此首是否易安所作,或有疑问。如果为其所作,则当作于绍兴四年冬,或五年中清照由临安赴金华或其后回临安时。 

  失题 

  诗情如夜鹊, 

  三绕未能安。 

  风月堂诗话卷上、宋诗纪事卷八十七、癸巳类稿卷十五、绣水诗钞卷一  

  失题 

  少陵也自①可怜人, 

  更待来②年试春早。 

  风月堂诗话卷上、宋诗纪事卷八十七、癸巳类稿卷十五、绣水诗钞卷一 

  ①自:癸巳类稿作“是”。 

  ②来:风月堂诗话以外各本俱作“明”。 

  此二断句当作于北宋时期,参阅《李清照事迹编年》公元一一四0年事迹。  

  上赵挺之 

  何况人间父子情。 

  洛阳名园记张掞序、癸巳类稿卷十五、绣水诗钞卷一、山东通志卷一百四十一 

  《洛阳名园记·张掞序》云:“文叔在元佑,官太学。丁建中靖国,再用邪朋,串为党人。女适赵相挺之子,亦能诗,上赵相救其父云:‘何况人间父子情。’识者哀之。” 

  按定党籍事在崇宁元年(公元一一0二),此诗殆作于是时,其时赵挺之虽为执政(尚书左丞),尚未为相。张掞称为赵相,乃追叙之语。 

  又按黄庭坚诗中亦有此句(《忆邢敦父》诗:“眼看白璧埋黄壤,何况人间父子情。”)见《豫章黄先生文集》卷九。山谷于清照为前辈,疑清照或用其成句,否则即暗合也。  

  上赵挺之 

  炙手可热心可寒。 

  昭德先生郡斋读书志卷四下、诗女史卷十一、癸巳类稿卷十五、绣水诗钞卷一、山东通志卷一百四十一 

  晁公武《郡斋读书志》云:“其舅正夫相徽宗朝,李氏曾献诗云:‘炙手可热心可寒。’” 

  按《宋宰辅编年录》,赵挺之于崇宁四年(1105)三月拜尚书右仆射,六月罢。崇宁五年(1106)二月又拜,大观元年(1107)三月罢,寻卒。(《宋史·徽宗纪》同)清照作此诗,必在崇宁四年或五年。  

  失题 

  南渡衣冠少①王导②, 

  北来消息欠③刘琨。 

  鸡肋编卷中、苕溪渔隐丛话后集卷四十引诗说隽永、诗人玉屑卷二十引诗说隽作、宋诗纪事卷八十七、癸巳类稿卷十五、绣水诗钞卷一 

  ①少:鸡肋编作“欠”,从其他各本。 

  ②王导:一百卷本诗话总龟作“安石”。明月窗道人本夺此二字,亦无空格。“安石”,谢安之字。 

  ③欠:鸡肋编作“少”,从其他各本。  

  失题 

  南来①尚②怯③吴江冷, 

  北狩应悲④易水寒。 

  鸡肋编卷中、苕溪渔隐丛话后集卷四十引诗说隽永、诗话总龟后集卷四十八引诗说隽永、诗人玉屑卷二十引诗说隽作、宋诗纪事卷八十七、癸巳类稿卷十五、绣水诗钞卷一 

  ①来:鸡肋编作“游”,从其他各本。 

  ②尚:癸巳类稿作“犹”。 

  ③怯:鸡肋编作“觉”,从其他各本。 

  ④悲:癸巳类稿作“知”。  

  咏史 

  两汉本继绍, 

  新室如赘疣①。 

  所以嵇中散, 

  至死薄殷周。 

  朱子语类卷一百四十、朱文公游艺至论卷下、事文类聚后集卷十一、精隽卷十四诗女史卷十一、彤管遗编续集卷十七、彤管摘奇卷下、崇祯历城县志卷十四艺文志三、宋诗纪事卷八十七、乾隆章丘县志卷九又卷十二艺文、癸巳类稿卷十五、绣水诗钞卷一 

  ①疣:历城县志、章丘县志、绣水诗钞作“旒(liu)”。 

  据朱子语类,上两句与下两句并本连接,盖从一首中先摘二句,继又另摘二句。各本多以此四句连接为一首,非是。  

  失题 

  露花倒影柳三变, 

  桂子飘香张九成。 

  老学庵笔记卷二、词苑丛谈卷三、癸巳类稿卷十五、绣水诗钞卷一  

  失题 

  犹将歌扇向人遮。  

  失题 

  水晶山枕象牙床。  

  失题 

  彩云易散月长亏。  

  失题 

  几多深恨①断人肠。 

  ①恨:李龏梅花衲作“意”。  

  失题 

  罗衣消尽恁时香。  

  失题 

  闲愁也似月明多。  

  失题 

  直送凄凉到画屏。 

  以上断句俱见宋人胡伟集句《宫词》,只“几多深恨断人肠”一句,亦见于李龏《梅花衲》中。胡氏所集有诗句,亦有词句,但俱未注明。此七句不见于清照传世作品中,亦从未见人称引,盖隐晦已久。此七句究为诗句或词句,其用韵相同者是否属于同一作品,无法考定。又胡伟所集,有时割裂原句,如李后主:“自是人生长恨水长东”一句,胡伟集作“人生长恨水长东”。此七句是否俱为完整之句,亦不得而知。以各句风调观之,似是词句。传世清照诗,与之不甚相近。 

  胡伟字元迈,乃南宋人,《苕溪渔隐丛话》作者胡仔之从兄弟。其宫词收入《十家宫词》中。有汲古阁精抄影宋临安府陈道人书籍铺本,有康熙间据宋本重刻本,又有乾隆刻本,乃宋人旧籍。所引清照断句,决非伪作。此次辑《李清照集》,由于征引未广,新发现者仅此断句七句而已。  

  失题 

  行人舞袖拂梨花。 

  古今小说第三十三卷张古老种瓜娶文女 

  《古今小说·张古老种瓜娶文女》,殆出自《宝文堂书目》所著录之《种瓜张老》(《也是园书目》亦有之),与《花草粹编》所引之“张老小说”。《古今小说》此篇所引之词如黄庭坚《踏莎行》、晁冲(chong)之《临江仙》俱有问题(黄词不见本集,晁词亦为各选本所未载)。而周紫芝《虞美人》一首则又不著撰人姓氏(《花草粹编》亦载此词,注:“张老小说。”)此句未必为易安所作,为诗为词,亦不可知。 

  ●易安文全集 

  说明: 

  本集照王仲闻的《李清照集校注》1997年新一版录出,分正文、补遗两部分,其中补遗为黄墨谷的《重辑李清照集》1981年版和徐培均的《李清照集笺注》2002年版所出。 

  收文8篇,残句2则。  

  (一)正集

  打马赋 

  岁令云①徂,卢或可呼。千金一掷,百万十都。樽徂具②阵,已行揖让之礼;主宾即醉③,不有博奕者乎!打马爰兴,摴蒲遂废④。实愽奕⑤之上流,乃⑥闺房⑦之雅戏。齐驱骥騄,疑穆王万里之行;间列⑧玄黄,类杨氏五家之队。珊珊佩响,方惊玉蹬⑨之敲;落落星罗,忽见⑩连钱之碎。若乃吴江枫冷⑾,胡⑿山叶飞;玉门关闭,沙苑草肥。临波不渡,似惜障⒀泥。或出入用奇⒁,有类⒂昆阳之战;或优游仗义⒃,正如涿鹿之师。或闻望久高,脱复庾郎之失;或声名素昧,便同⒄痴叔之奇。亦有缓缓而归,昂昂而出⒅。鸟道惊驰,蚁封安步。崎⒆岖峻坂,未遇⒇王良;跼促盐车,难(21)逢造父。且夫丘陵云远,白云在天,心存(22)恋豆,志在著鞭。止(23)蹄黄叶,何(24)异(25)金钱。用五十六采之间,行九十一路之内。明以赏罚,覈其殿最。运指麾于方寸之中,决胜负于几微之外。(26)且好胜者(27)人之常情,小艺者士(28)之末技。说梅止渴,稍苏奔竞之心;画饼充饥,少谢腾骧(29)之志。将图实(30)效,故临难而不回;欲(31)报厚恩,故知(32)机而先退。或衔枚缓(33)进,巳逾关塞之艰;或贾勇争先,(34)莫悟阱堑之坠。皆由不知止足,(35)自贻(36)尤悔。况为之不已,(37)事(38)实见于正经;用之以诚,(39)义必合于天德。故遶床大叫(40)五木皆卢;沥酒一呼,六子尽赤。平生不负,遂成剑阁之师(41);别墅未输(42),已(43)破淮淝之贼。今日岂无元子,明时不乏安石。又何必陶长沙博局之投,正当师袁彦道布帽(44)之掷也。辞曰:(45)佛狸定见卯(46)年死,贵贱纷纷尚流徙。满眼骅骝杂騄駬。时危安得真致此。老矣谁能志千里,(47)但愿相将过淮水。  

  《诗女史》题作《打马图赋》,前有序云:“予性专博,昼夜每忘食事。南渡金华,侨居陈氏。讲博奕之事,遂作依经打马赋曰。”云云,盖摘自打马图经序。(此以说郛本为校勘底本) 

  ①云:癸巳类稿、马戏图谱原赋(观自得斋本《马戏图谱》此赋重出,文字不尽相同。以下一简称《图谱原赋》,一简称《图谱赋》,相同者称《图谱》)作“聿”。 

  ②具:同上书作“列”。 

  ③既醉:同上书作“言洽”;欣赏编、清江都秦氏石研斋钞本打马赋(以下简称秦钞)作“既辞”,误。 

  ④遂废:癸巳类稿、图谱原赋作“者退”。 

  ⑤博奕:夷门广牍本马戏图谱(以下简称夷本)、粤雅堂丛书本打马图经(以下简称粤本)、古今女史、历代赋汇、癸巳类稿、图谱作“小道”。 

  ⑥乃:癸巳类稿、图谱原赋作“兢”。 

  ⑦闺房:夷本、粤本、古今女史、历代赋汇、癸巳类稿、图谱作“深闺”。 

  ⑧间列:癸巳类稿、图谱原赋作“别起”。 

  ⑨蹬:同上书作“镫”;明会稽钮氏世学楼钞本说郛(以下简称钮钞)、欣赏编、夷本、秦钞、丽廔(lou)丛书、诗女史、粤本、古今女史、图谱赋作“■〈革登〉”。 

  ⑩见:癸巳类稿、图谱原赋作“讶”。 

  ⑾冷:各本俱作“乐”。 

  ⑿胡:粤本、历代赋汇、癸巳类稿、图谱原赋作“燕”。(此必编《历代赋汇》诸臣所改,其后各本从之,非原文) 

  ⒀障:图谱原赋作“幛”。 

  ⒁用奇:癸巳类稿、图谱原赋作“胜骧”。 

  ⒂有类:同上书作“猛比”。 

  ⒃优游仗义:同上书作“纵容磬控”。 

  ⒄便同:同上书作“倏惊”。 

  ⒅出:同上书作“驻”;欣赏编、夷本、秦钞、丽廔丛书、诗女史、历代赋汇、古今女史作“立”;钮钞、粤本、图谱赋作“去”。夷本注:“一本作‘出’”。 

  ⒆崎:欣赏编、夷本、秦钞、丽廔丛书、图谱赋、历代赋汇、古今女史作“敧”。 

  ⒇未遇:癸巳类稿、图谱原赋作“慨想”。 

  (21)难:同上书作“忽”。 

  (22)存:同上书作“无”。 

  (23)止:同上书作“蹴”。 

  (24)何:说郛本原误作“同”,兹改从各本。 

  (25)异:癸巳类稿、图谱原赋作“画道”。 

  (26)“决”句:同上书作“决胜负以几微之介”。 

  (27)者:同上书无此字。 

  (28)小:夷本、粤本、历代赋汇、古今女史、图谱赋作“游”。小艺者士:癸巳类稿、图谱原赋作“争筹者道”。 

  (29)少谢腾骧:同上书作“亦寓踔胜”。 

  (30)图实:同上书作“求远”。 

  (31)欲:同上书作“留”。 

  (32)故知:同上书作“或相”。 

  (33)缓:古今女史作“远”。 

  (34)“或”句:癸巳类稿、图谱原赋作“岂致奋足争先”。 

  (35)“皆”句:同上书作“至于不习军行”。 

  (36)自贻:同上书作“必占”。 

  (37)“况”句:癸巳类稿、图谱原赋作“况乃为之贤己”。此句上另有“当知范我之驰驱,勿忘君子之箴佩”十四字两句,为他本所无,不知所据。已:说郛本原误作“异”,从各本改。 

  (38)事:说郛本原误作“是”,改从各本。 

  (39)“用”句:癸巳类稿、图谱原赋作“行以无疆”。诚:夷本、历代赋汇、古今女史、图谱赋作“经”。 

  (40)故遶床大叫:同上书作“故宜遶床大叫”。此句上另有“牝乃叶地类之贞,反亦记鲁姬之式。鉴髻堕於梁家,溯浒循於岐国”四句二十六字,俱为他本所无,未知所本。 

  (41)师:同上书作“勋”。 

  (42)输:说郛本原误作“逾”,改从各本。 

  (43)已:癸巳类稿、图谱原赋作“决”。 

  (44)布帽:说郛本误夺此二字,从各本补。 

  (45)“辞曰”等句:“辞曰”二字起《历代赋汇》未载,盖以下有“佛狸定见卯年死”句,触犯当时(康熙年间)忌讳,故被删。辞:癸巳类稿、图谱原赋、诗女史、古今女史作“乱”。 

  (46)卯:欣赏编、夷本、秦钞、丽廔丛书、诗女史、古今女史作“酉”。按“佛狸死卯年”出《宋书·臧质传》。清照作此赋时为绍兴四年甲寅,下一年为乙卯,“酉”字必误。癸巳类稿、图谱原赋注“是岁甲寅”。 

  (47)“老”句:癸巳类稿、图谱原赋上有“木兰横戈好女子”一句,为他本所无,未知何据。 谁能:癸巳类稿、图谱原赋作“不复”。志:说郛本、古今女史作“致”;钮钞作“至”,今从他本。  

  打马图序 

  慧①即通,通即无所不达;专即精,精即②无所不妙。故疱丁之解牛,郢人之运斤,师旷之听,离娄之视③,大至于尧、舜之仁,桀、纣之恶,小至于掷豆起蝇,巾角拂棋,皆臻至理④者何⑤?妙而已。后世之人,不惟学圣人之道,不到圣处。虽嬉戏之事,亦得其依稀彷佛而遂止者多矣。⑥夫⑦博者无他,争先术耳,故专者能之⑧。予性喜⑨博,凡所谓博者皆耽之,昼夜每忘寝食。但平生随多寡未尝不进者何,精而巳。自南渡来流离迁徒,⑩尽散博具,故罕为之,然实未尝忘于胸中也。⑾今年冬十月朔,闻淮上警报。江、浙之人,自东走西,自南走北,居山林者谋入城市,居城市者谋入山林,旁午络绎,莫卜所之。⑿易安居士⒀亦自⒁临安溯流,涉严⒂滩之险⒃,抵金华,卜居陈氏第。乍释舟楫而见轩窗⒄。意颇适然。更长烛明,奈此良夜乎。于是乎博奕之事讲矣。且长行、叶子、博塞⒅、弹棋,世无传者。打揭⒆、大小、猪窝、族⒇鬼、胡画、数仓、赌快之类,皆鄙俚,不经见。藏酒(21)、摴(chū)蒲、双蹙融,近渐废绝。选仙、加减、插关火(22),质鲁任命,无所施人(23)智巧。大小象棋、奕棋,又惟可容二人。独采选、打马,特为闺房(24)雅(25)戏。尝恨采选丛繁,劳于检阅,故(26)能通者少,难遇勍(qíng)敌。打马简要,而无文采。按打马世有二种:一种一将十马者,谓之关西马;一种无将二十(27)马者,谓之依经马。流行既久,各有图经凡例可考。行移赏罚,互有同异。又宣和间,人取两种马,参杂加减,大约交加徼(jiǎo)倖(xìng),古意尽矣。所谓宣和马者是也。予独爱依经马(28),因取其赏罚互度,每事作数语,随事附见,使(29)儿辈图之。不独施之博徒,实足贻诸好事。使千万(30)世后,知命辞打马,始自易安居士也。时(31)绍兴四年十一月二十四日,(32)易安室(33)序。  

  书名《打马图经》,或即名《打马赋》,而序则曰:“打马图序”。 

  ①慧:粤本、癸巳类稿、古今女史、马戏图谱(谱内此序重出,一云《打马图原序》,一云《打马图经序》,以下简称《图谱原序》、《图谱序》,如二者相同,则简称《图谱》) 作“慧”。(此以说郛本为底本,原作“惠”,从各本改。) 

  ②即:上四“即”字各本多作“则”。 

  ③视:癸巳类稿、图谱原序作“察”;钮钞做“明”。 

  ④至理:癸巳类稿、图谱原序作“其极”。 

  ⑤何:癸巳类稿、图谱原序无“何”字。 

  ⑥“后世之人”起“多矣”止三十三字:癸巳类稿、图谱原序俱无。得:粤本、图谱序作“不得”。 

  ⑦夫:“夫”字原无,从各本增。 

  ⑧能之:癸巳类稿、图谱原序作“胜”。 

  ⑨喜:各本作“专”;只说郛本与图谱序作“喜”;夷门广牍本马戏图谱(以下简称夷本)作“善”。 

  ⑩“昼夜”起“迁徙”止二十九字:癸巳类稿、图谱原序作“南渡流寓”。但:图谱序作“且”。随:粤本、图谱序无“随”字。 

  ⑾“故罕为之”至“胸中也”十三字:癸巳类稿、图谱原序无。 

  ⑿莫卜所之:粤本、图谱序作“莫不失所”。 

  ⒀易安居士:粤本、图谱原序作“余”。 

  ⒁亦自:欣赏编、古今女史、绿窗女史、清江都秦氏石砚斋钞本打马图(以下简称秦钞)无“自”字;彤管遗编无作“亦自”二字。 

  ⒂严:原作“岩”,从各本改正。 

  ⒃险:癸巳类稿、图谱原序无“险”字。 

  ⒄轩窗:癸巳类稿、图谱原序作“窗轩”。 

  ⒅塞:欣赏编、夷本、秦钞、丽廔丛书、彤管遗编、古今女史、绿窗女史作“簺(sai)”。 

  ⒆打揭:粤本、图谱序二字上有一“若”。揭:原作“楬(jié)”;其他各本作“褐”;钮钞作“揭”,今从钮钞。 

  ⒇族:原作“挨”,夷本注:“一作‘挨’”。今改从各本。 

  (21)酒:原作“弦”;钮钞作“弹”,今改从各本。夷本作“驱”。 

  (22)火:原作“太”;夷本作“大”,注:“一作‘火’”。改从各本。 

  (23)人:秦钞、丽廔丛书作“其”;古今女史作“行”;癸巳类稿、图谱原序无此字。 

  (24)房:原作“防”,改从各本。 

  (25)雅:欣赏编、丽廔丛书、古今女史、绿窗女史、彤管遗编作“杂”。 

  (26)故:欣赏编、夷本、秦钞、丽廔丛书、彤管遗编、古今女史、绿窗女史作“彼”;癸巳类稿、图谱原序作“又”。 

  (27)二十:图谱序作“二十四”。 

  (28)马:癸巳类稿、图谱原序作“法”。 

  (29)使:图谱序作“俟”。 

  (30)万:癸巳类稿、图谱原序作“百”。 

  (31)时:说郛本、图谱序无“时”字,从各本补。 

  (32)“绍兴”句:癸巳类稿、图谱原序引至此句为止。十一:癸巳类稿、图谱原序作“十有二”。 

  (33)易安室:欣赏编、夷本、秦钞、丽廔丛书、彤管遗编、古今女史、绿窗女史作“易安居士李清照”。  

  投翰林学士綦崇礼启 

  清照启:素习义方,粗明诗礼。近因疾病,欲至膏肓,牛蚁不分,灰钉已具。尝药虽存弱弟,譍门唯有老兵。既尔苍皇,因成造次。信彼如簧之说,惑兹似锦之言。弟既可欺,持官文书来辄信;身几欲死,非玉镜架亦安知。僶俛难言,优柔莫决。呻吟未定,强似同归。视听才分,实难共处,忍①以桑榆之晚节②,配兹驵侩之下才。身既怀臭之可嫌,惟求脱去;彼素抱壁之将往,决欲杀之。遂肆侵凌,日加殴击,可念刘伶之肋,难胜石勒之拳。局天扣地,敢效谈娘之善诉;升堂入室,素非李赤之甘心。外援难求,自陈何害,岂期末事,乃得上闻。取自宸衷,付之廷尉。被桎梏而置对,同凶丑以陈词。岂惟贾生羞绛灌为伍③,何啻老子与韩非同传。但祈脱死,其望偿金。友凶横者十旬,盖非天降;居囹圄者九日,岂是人为!抵雀捐金,利当安往;将头碎壁,失固可知。实自谬愚,分知狱市。此盖伏遇内翰承旨,搢绅望族,冠盖清流,日下无双,人间第一。奉天克④复,本缘陆贽之词;淮蔡底平,实以会昌之诏。⑤哀怜无告,虽未⑥解骖;感戴鸿恩,如⑦真出已。故兹白首,得免丹书。清照敢不省过知惭,扪心识愧。责全责智,已难逃万世之讥;败德败名,何以见中朝之士。虽南山之竹,岂能穷多口之谈;惟智者之言,可以止无根之谤。高鹏尺鷃,本异升沈;火鼠冰蚕,难同嗜好。达人⑧共悉,童子皆知。愿赐品题,与加湔洗。誓当布衣蔬食,温故知新。再见江山,依旧一瓶一钵;重归畎亩,更须三沐三薰。忝在葭莩。敢兹尘渎。  

  按此启殆作于绍兴二年九月或稍后,綦崇礼为翰林学士之时。 

  ①忍:苕溪渔隐丛话、诗话总龟、事文类聚、宋诗纪事作“猥”。 

  ②晚节:各本作“暮景”,宋诗纪事作“晚景”。 

  ③伍:宋诗纪事作“侪(chái)”。 

  ④克:癸巳类稿作“收”。 

  ⑤“实以”句:癸巳类稿作“共传昌黎之笔”。 

  ⑥虽未:癸巳类稿作“义同”。 

  ⑦如:癸巳类稿作“事”。 

  ⑧人:癸巳类稿作“者”。  

  金石录后序 

  右金石录三十卷者何?赵侯德父①所著书也。取上自三代,下迄五季,钟、鼎、甗(yǎn)、鬲、盘、彝、尊、敦之款识,丰碑、大碣,显人、晦士之事迹,凡见于金石刻者二千卷,皆是正②伪③谬,去取褒贬,上足以合圣人之道,下足以订史氏之失者,皆载④之,可谓多矣。 呜呼,自王播⑤、元载之祸,书画与胡椒无异;长舆、元凯之病,钱癖与传癖何殊。名虽不同,其惑一也。余建中辛巳,始归赵氏。时先君作礼⑥部员外郎,丞相时⑦作吏部侍郎。侯年二十一,在太学作学生。赵、李族寒,素贫俭。每朔望谒告出,质衣,取半千钱,步入相国寺,市碑文果实。归,相对展玩咀嚼,自谓葛天氏之民也。后二年,出仕宦,便有饭蔬⑧衣练⑨,穷遐方绝域,尽天下古文奇字之志。日就月将,渐益堆积。丞相居政府,亲旧或在馆阁,多有亡诗、逸史,鲁壁、汲冢所未见之书,遂力传写,浸觉有味,不能自已。后或见古今名人书画,一⑩代奇器,亦复脱衣市易。尝记崇宁间,有人持徐熙牡丹图,求钱二十万。当时虽贵家子弟,求二十万钱,岂易得耶。留信宿,计无所出而还之。夫妇相向惋怅者数日。后屏居乡里十年⑾,仰取俯拾⑿,衣食有余。连守两郡,竭其俸入,以事铅椠。每获一书,即同共勘校,整集签题。得书、画、彝、鼎,亦摩玩舒卷,指摘疵病,夜尽一烛为率。故能纸⒀札精致,字画完整,冠诸收书家。余性偶⒁强记,每饭罢,坐归来堂烹茶,指堆积书史,言某事在某书、某卷、第几叶⒂、第几行,以⒃中否角胜负,为饮茶先后。中即举杯大笑,至茶倾覆怀中⒄,反不得饮而起。甘心老是乡矣。故虽处忧患困穷,而志不屈⒅。收书既成,归来堂起书库,大橱簿甲乙,置书册。如要讲读,即请钥上簿,关出⒆卷帙。或少损污,必惩⒇责揩完涂改(21),不复向时之坦夷也。是欲求适意,而反取憀(liao)栗。余性不耐,始谋食去重肉,衣去重采,首无明珠、翠羽(22)之饰,室(23)无涂金、刺绣之具。遇书史百家,字不刓(wán)缺,本不讹谬者,辄市之,储作副本。自来家传周易、左氏传,故两家者流,文字最备。于是几案罗列,枕席枕藉,(24)意会心谋,目往神授,乐在声色狗马之上。至靖康丙午岁,侯守淄川,闻金寇(25)犯京师,四顾茫然,盈箱溢箧(qiè),且恋恋,且怅怅,知其必不为己物矣。建炎丁未春三月,奔太夫人丧南来。(26)既长物不能尽载,乃先去书之重大印本者,又去画之多幅者,又去古器之无款识者,后又去书之监本者,画之平常者,器之重大者。凡屡减去,尚载书十五车。至东海,连舻渡淮,又(27)渡江,至建康。青州故第(28),尚锁书册什物,用屋十余间,期明年春再具舟载之。十二月,金人陷青州,凡所谓十余屋者,已皆为煨烬矣。建炎戊申秋九月,侯起复知建康府。已酉春三(29)月罢(30),具舟上芜湖,入姑孰,将卜居赣水上。夏五月,至池阳。被旨知湖州,过阙上殿。遂驻家池阳,独赴召。六月十三(31)日,始负担(32),舍舟坐岸上,葛衣岸巾,(33)精神如虎,目光烂烂射人,(34)望舟中告别。余意甚恶,呼曰:“如传闻(35)城中(36)缓急,建炎戊申秋九月,侯起复,知建康府。已酉春三月罢,具舟上芜湖,入姑孰,将卜居赣水上。夏五月,至池阳。被旨知湖州,过阙上殿,遂驻家池阳,独赴召。六月十三日,始负担舍舟,坐岸上,葛衣岸中,精神如虎,目光烂烂射人,望舟中告别。余意甚恶,呼曰:“如传闻城中缓急奈何。”戟手遥应曰:“从众。必不得已,先弃辎重,次衣被,次书册卷轴,(37)次古器,独所谓宗(38)器者,可自负抱,与身俱存亡,勿忘之(39)。”遂驰马去。途中奔驰,冒大暑,感疾。至行在,病店。七月末,书报卧病。余惊怛(dá),念侯性素急,奈何。病店或热,必服(40)寒药,疾(41)可忧。遂解舟下,一日夜行三百里。比至,果大服柴胡、黄芩药,疟且痢,病危在膏盲。余悲泣,仓皇不忍问后事。八月十八(42)日,遂不起。取笔作诗,绝笔而终,殊无分香卖履之意(43)。葬毕,余无所之。(44)朝廷已分遣六宫,又传江当禁渡。时犹有书二万卷,金石刻二千卷,器皿、茵褥,可待百客,他长物称是。余(45)又大病,仅存喘息。事势日迫。念侯有妹婿,任兵部侍郎,从卫在洪州,遂遣二故吏,先部送行李往投之。冬十二月,金寇(46)陷洪州,遂尽委弃。所谓连舻渡江之书,又散为云烟矣。独(47)余少轻小卷轴书帖、写本李、杜、韩、柳集,世说、盐铁论,汉唐石刻副本数十轴,三代鼎鼐十数事,南唐写本书数箧,偶病中把玩,搬在卧内者,岿然独存。上江既不可往,又虏势叵测,有弟迒(háng)任(48)敕局删定官,遂往依之。到台,守(49)已遁。之剡(shàn)出陆,(50)又弃衣被走黄岩,雇舟入海,奔行朝,(51)时驻跸章安,从御舟海(52)道道(53)之温,又之越。庚戌十二月,放散百官,遂之衢。绍兴辛亥春三月,复赴越,壬子,又(54)赴杭。先侯疾亟时,有张飞卿学士,携玉壶过,视侯,便携去,其实珉(mín)也。不知何人传道,遂妄言有颁(55)金之语(56)。或传亦有密论列者。余大惶怖,不敢言,遂(57)尽将家中所有铜器等物,欲走(58)外廷投进。到越,已移幸四明。不敢留家中,并写本书寄剡(59)。后官军收叛卒取去,闻尽入故李将军家。所谓岿然独存者,无虑十去五六矣。惟有书画砚墨,可五七簏(60),更不忍置他所。常在卧塌下,手自开阖。在会稽,卜居土民钟氏舍。忽一夕;穴壁负五簏去。余悲恸不已(61),重立赏收赎。后二日,邻人钟复皓(62)出十八轴求赏,故知其(63)盗不远矣。万计求之,其余遂不可出。今知尽为吴(64)说运使贱价得之。所谓岿然独存者,乃(nǎi)十去其七八。所有一二残零不成部帙书册三数种,平平书帙(65),犹复爱惜如护头目,何愚也耶。今日忽阅(66)此书,如见故人。因忆侯在东莱静治堂,装卷(67)初就,芸签缥带,束十卷作一帙。每日晚更(68)散,辄校勘二卷,跋题一卷。此二千卷,有题跋者五百二卷耳。今手泽如新,而墓木已拱,悲夫!昔萧绎江陵陷没,不惜国亡,而毁裂书画。杨广江都倾覆,不悲身死,而复取图书。岂人性之所著(69),死生不能忘之欤。或者天意以余菲薄,不足以享此尤物耶。抑亦死者有知,犹斤斤爱惜,不肯留在人间耶。何得之艰而失之易也。呜呼,余自少陆机作赋之二年,至过蘧(qú)瑗(yuàn)(70)知非之两岁岁,三十四年之间,忧患得失,何其多也。然有有必有无,有聚必有散,乃理之常。人亡弓,人得之,又胡足道!所以区区记其终始者,亦欲为后世好古博雅者之戒云。绍兴二(71)年、玄黓(chì)岁,壮月朔甲寅,易安室(72)题。  

  按此序大要,另见《容斋四笔》卷五。从之出者有《诗文史》卷十一、《彤管遗编》续集卷十七、《古文品外录》卷二十三、诗词杂俎本《漱玉词》等,不另校。又《金石录》旧抄本颇多,未能多校。此以吕无党抄本为底本。此序又收入孙星衍所编《续古文苑》卷十二,即录自雅雨堂本《金石录》,不另校。 

  后序所署年月,以及序内所叙述各事之日期,多有问题,请参阅后附《李清照事迹编年》。 

  ①德父:商务印书馆排印明抄本《说郛》卷十九载《瑞桂堂暇录》(以下简称郛瑞本)作“夫”。按赵明诚之字,宋人或作德甫,或作德父,或作德夫,盖三字通用。 

  ②正:瑞本作“正其”。 

  ③伪:康熙谢世箕刻本《金石录》(以下简称谢本)、雅雨堂《金石录》(以下简称雅本,三长物斋丛书本《金石录》出自雅本,不另校)、结一庐刊津逮秘书未刻本《金石录》(以下简称结本)俱作“譌(é)”,“譌”即“讹”字,讹谬较伪谬为常见,疑作“譌”为是。 

  ④载:瑞本作“具载”。 

  ⑤播:何义门校:“‘播’当作‘涯’。”(此据四部丛刊续编景印清吕无党手抄本《金石录》所附校勘过录。下引顾千里、吕无党校语同。)顾亭林《日知录》引作“王涯”,(见下)或顾所本作“王涯”也。 

  ⑥礼:瑞本作“吏”。按李清照之父李格非似未尝为吏部员外郎,疑涉下赵挺之为吏部侍郎而误。 

  ⑦时:结本无“时”字。顾千里校(以下简称顾校)抹去,注:“‘时’字钱本已衍。”(钱本指明钱叔宝抄本) 

  ⑧蔬:雅本作“疏”,明会稽钮氏世学楼钞说郛本《瑞桂堂暇录》(以下简称钮抄)作“素”。 

  ⑨练:谢本、雅本、钮抄作“练”。顾校:“‘练’,钱本已伪。”参阅注释⑦。 

  ⑩一:明谢行甫钞本《金石录》(以下简称谢抄)、结本、雅本、瑞本作“三”。 

  ⑾十年:顾校抹去“十年”二字,注:作“钱本亦衍。”结本无此二字,与顾校合。 

  ⑿拾:吕无党校作“给”,谢本亦作“给”。 

  ⒀纸:瑞本作“笔”。 

  ⒁偶:瑞本作“偏”(钮抄仍作“偶”) 

  ⒂叶:结本作“叶子”;顾校“叶”下增一“子”字,注:“钱本已脱”。

  ⒃以:瑞本作“比”(钮抄仍作“以”) 

  ⒄中:顾校抹去“中”字,注:“钱本已衍。” 

  ⒅屈:瑞本作“少缓”。 

  ⒆出:顾校抹去“出”字,注:“钱本有。”(结本无此字,与顾校同。) 

  ⒇惩:顾校改“征”。结本亦作“征”,与顾校合。 

  (21)揩完涂改:瑞本作“楷涂完整”。揩:雅本、结本作“楷”。 

  (22)翠羽:原作“翡翠”,据瑞本改。 

  (23)室:谢抄作“体”。 

  (24)枕席枕藉:瑞本作“枕藉枕席”。枕席:雅本、结本无此字。 枕藉:谢抄二字空格。 

  (25)寇:据瑞本改。按此必清照原文如是。今各本《金石录》所载后序俱作“人”,盖已经窜改。  

  (26)“奔”句:钮抄此下有空格若干。按后序此处文气不接,意义不明,必有阕文。钮抄尚留空格,足资考证,最为善本。 

  (27)又:瑞本作“及”。 

  (28)第:原作“地”,据雅本、结本改。 

  (29)三:顾校改“二”,注:“钱本‘三’”;结本亦作“二”。 

  (30)罢:瑞本“罢”字下有“建康”二字。 

  (31)三:瑞本作“二”。 

  (32)担(担):顾校改“檐”。 

  (33)葛衣岸巾:瑞本作“著衣巾”。“葛”:钮抄作“著”。 

  (34)“目”句:瑞本作“目烂烂光射人”。 

  (35)闻:顾校“闻”下增一“或”字,注:“钱本脱”。 

  (36)中:结本“中”下有“或”字。 

  (37)次书册卷轴:瑞本作“次书册,次卷轴”。 

  (38)宗:钮抄作“宋”;宋本《容斋四笔》亦作“宋”,据谢抄、雅本、结本、瑞本改。 

  (39)忘之:谢抄、谢本、雅本作“忘也”,顾校“也”改“之”。瑞本作“亡失”。 

  (40)服:据顾校增,注:“钱本脱”。 

  (41)疾:结本作“复”。 

  (42)八:瑞本作“七”。 

  (43)意:结本作“念”。 

  (44)余无所之:瑞本作“顾四维无所之”。 

  (45)余:结本作“且”,顾校改“直”,注:“钱本‘余’”。 

  (46)寇:他本作“人”。按宋本《容斋四笔》引作“虏陷洪”,《瑞桂堂暇录》作“金寇陷洪州”。而通行本《容斋四笔》与传本《金石录》(明抄本亦然)俱不作“虏”或“寇”,必非清照原文。后人妄改,或出元人、清人之手。今据瑞本改。 

  (47)独:结本作“独余”;顾校下增“余”字,注:“钱本脱”。 

  (48)有弟迒任:谢抄作“有弟迒在”;结本作“有弟近任”;瑞本作“有弟仕”。 

  (49)守:谢抄、谢本、雅本、结本有“台”字。 

  (50)之剡出陆:瑞本作“之嵊在陆”;钮抄此句下有空格若干,盖此处亦有脱文,旧抄本殊可贵也。  

  (51)奔行朝:瑞本作“奔赴行在”。 

  (52)海:瑞本作“岸”。 

  (53)道道:谢抄、谢本、雅本、结本、瑞本“道”字不叠。 

  (54)又:顾校抹去,注:“钱本衍”,结本无此字。 

  (55)颁:癸巳类稿引作“颂”,未知所据。 

  (56)语:瑞本作“诏”(钮抄仍作“语”) 

  (57)遂:雅本、结本作“亦不敢遂己”。 

  (58)走:雅本、结本作“赴”;瑞本作“去”。 

  (59)剡:瑞本作“嵊县”。 

  (60)簏:瑞本作“盝(lu)”。 

  (61)不已:雅本、结本作“不得活”。 

  (62)钟复皓:瑞本作“钟浩”;钮抄作“钟皓”。 

  (63)其:瑞本作“真”(钮抄作“其”) 

  (64)吴:顾校旁注:“吾”。 

  (65)帙:谢抄、谢本、雅本、结本、瑞本作“帖”。 

  (66)阅:雅本、结本作“开”。 

  (67)卷:瑞本作“幖(biāo)”;钮抄作“标(标)”。 

  (68)更:雅本、结本、瑞本做“吏”。 

  (69)著:瑞本作“嗜”(钮抄作“著”) 

  (70)过蘧瑗:瑞本作“蘧伯玉”;钮抄作“过蘧伯玉”。 

  (71)二:瑞本作“四”,与《容斋四笔》所载合。 

  (72)室:瑞本作“堂”;三长物斋丛书本《金石录后序》此下有“李清照”三字署名。  

  祭赵湖州文 

  白日正中,叹庞翁①之机捷②。坚城自③堕,怜杞妇之悲深。 

  ①翁:历城县志、癸巳类稿作“公”。 

  ②捷:癸巳类稿作“敏”。 

  ③自:尧山堂外纪、古今情史纂作“既”。  

  汉巴官铁量铭跋尾注 

  此盆色类丹砂。鲁直石刻云:“其一曰秦刀,巴官三百五十戊①,永平七年第二十七酉。”余绍兴庚午岁亲见之。今在巫山县治。韩晖②仲云。 

  按:《金石录》乃赵明诚所撰,李清照亦笔削其间(见《贵耳集》卷上)。清·王士禛《池北偶谈》卷十四且云:“赵明诚与其妇李易安撰《金石录》,其书最传。”赵明诚死于建炎三年(1129年),而此注则叙及绍兴二十年(1150年)事,近人颇以为此注乃清照所作。唯清照未尝至蜀,无由亲见是器。明·曹学佺《蜀中广记》卷六十八引作韩晖仲跋。如为韩晖仲跋语,则颇似后人所附。“余绍兴庚午亲视见之”,极似绍兴以后之语,或非李清照所加注。 

  ①戊:雅雨堂丛书本《金石录》校语云:“鲁直误以‘斤’为‘戊’”。 

  ②晖:四部丛刊本《金石录》过录顾千里校语云:“‘晖’旁注:注”。  

  词论 

  乐府声诗并著,最盛于唐。开元天宝间,有李八郎者,能歌擅天下。时新及第进士开宴曲江,榜中一名士先召李,使易服隐姓名,衣冠故敝,精神惨沮(jǚ),与同之宴所,曰:“表弟愿与坐末。”众皆不顾。既酒行,乐作,歌者进,时曹元谦、念奴①为冠。歌罢,众皆咨嗟称赏。名士忽指李曰:“请表弟歌。”众皆哂(shěn),或有怒者。及转喉发声,歌一曲,众皆泣下,罗拜曰:“此李八郎也。”自后郑、卫之声日炽(chì),流靡之变日烦,已有菩萨蛮、春光好、莎鸡子、更漏子、浣溪沙、梦江南、渔父等词,不可遍举。五代干戈,四海瓜分豆剖,斯文道熄。独江南李氏君臣尚文雅,故有“小楼吹彻玉笙寒”、“吹皱一池春水”之词。语虽奇甚,所谓亡国之音哀以思者也。逮至本朝,礼乐文武大备。又涵养百余年,始有柳屯田永者,变旧声作新声,出乐章集,大得声称于世。虽协音律,而词语尘下。又有张子野、宋子京兄弟、沈唐、元绛、晁次膺(yīng)②辈继出,虽时时有妙语,而破碎何足名家。至晏元献、欧阳永叔、苏子瞻,学际天人,作为小歌词,直如酌蠡(lǐ)水於大海,然皆句读不葺之诗尔。又往往不协音律者何耶?盖诗文分平侧,而歌词分五音,又分五声,又分六律,又分清浊轻重。且如近世所谓声声慢、雨中花、喜迁莺,既押平声韵,又押入声韵。玉楼春本押平声韵,又押上去声,又押入声。本押仄声韵,如押上声则协,如押入声,则不可歌③矣。王介甫、曾子固文章似西汉,若作一小歌词,则人必绝倒,不可读也。乃知别是一家,知之者少。后晏叔原、贺方回、秦少游、黄鲁直出,始能知之。又晏苦无铺叙;贺苦少典重;秦即专主情致,而少故实,譬如贫家美女,虽极妍丽丰逸,而终乏富贵态;黄即尚故实,而多疵病,譬如良玉有瑕,价自减半矣。 

  ①曹元谦、念奴:癸巳类稿误作“曹元念谦”。 

  ②膺:癸巳类稿误作“鹰”。 

  ③歌:癸巳类稿作“通”,此句下注:谓本可通侧,不拘上去入,若本侧则上去入不可相通。  

  贺人孪生启 

  无午未二时之分,有伯仲两楷之似①。旣系臂而系足,实难弟而难兄。玉刻双璋,锦挑对褓。 

  《诗词杂俎》本《漱玉词》云:“《漱玉集》不载,此启见《文粹拾遗》。” 

  按:《文粹拾遗》世无此书,毛晋亦未必曾见《漱玉集》,所云殆亦本《琅缳(“缳”字换“女”字偏旁)记》。 

  又按:沈雄《古今词话词品》卷下误引“玉刻双璋,锦挑对褓。”二句,以为李易安词。 

  ①似:原作“侣”。古今词统作“异”,从宋稗类抄、宋诗纪事、癸巳类稿改。“似”或作“佀(sì)”,因字形相近而误作“佀”。  

  (二)补遗(2篇) 

  琴铭 

  □山之桐,斫(zhuó)其形兮。冰雪之丝,宣其声兮。□□□□,和性情兮。广寒之秋,万古流兮。 

  此铭据龚一《藏琴与传琴》一文录入,文载《文汇报》一九九二年四月三十日第五版笔会,曰:“(张正吟)传给我的一张无名琴,先生在赠送时及后来发表的文章中,都曾提及‘相传是李清照的遗物’。” 

  (龚一)后又有《正吟琴的鉴赏》一文,载上海今虞琴社编、上海音乐学院音乐研究所协编之《今虞琴刊续》,谓“龙池右侧为‘□□之桐,……万古流兮。’” 

  《文汇报》脱一“流”字。 

  此铭或琴上固有,或为清照自撰,姑存疑。 

  以上据徐培均《李清照集笺注》补。  

  《打马图经》例论 

  1、《李清照全集评注》,徐北文,济南出版社,2005年2月二版 

  《打马图经》例论 

  《〈打马图经〉例论》系李清照为“依马经”所写的打马“命辞”。“取其赏罚互度,每事作数语,随事附见”(上俱引自《打马图经序》),是对打马条例(规则)的阐释和论述,也是对有关经验教训的总结。“论皆骈语,颇工雅。”(清胡玉缙《许庾学林·〈打马图经〉跋》) 

  例论凡十三则,杂于《打马图经》各项条例之中。所论虽为打马,实则表现了李清照主战抗敌、收复失地的爱国主义思想,是研究李清照生平思想的重要材料之一。 

  《打马图经》明代周履靖《夷门广牍》本题作《马戏图谱》。 

  一 、“铺盆例”论 

  既先设席,岂惮攫金。便请着鞭,谨令编埒。罪而必罚,已从约法之三章;赏必有功,勿效绕床之大叫。 

  二、“本采例”论 

  公车射策之初,记其甲乙;神武挂冠之日,定彼去留。汝其有始有终,我则无偏无党。 

  三、“下马例”论 

  夫劳多者,赏必厚;施重者,报必深。或再见而取十官,或一门而列三戟。又昔人君每有赐,臣下必先乘马焉。秦穆公悔赦孟明,解左骖而赠之是也。丰功重锡,尔自取之,予何厚薄焉? 

  四、“行马例”论之一 

  九阳数也,故数九而立窝;窝险涂也,故入窝而必赏。既能据险,以一当千;便可成功,寡能敌众。请回后骑,以避先登。 

  五、“行马例”论之二 

  行百里者半九十,汝其知乎?方兹万勒争先,千羁竞辏。得其中道,止于半涂。如能叠骑先驰,方许后来继进。既施薄效,须稍旌甄。 

  六、“行马例”论之三 

  万马无声,恐是衔枚之后;千蹄不动,疑乎立仗之时。如能翠幕张油,黄扉启印;雁归沙漠,花发武陵。歌筵之小板初齐,天发之流星暂聚。或受彼罚,或旌己劳。或当谢事之时,复过出身之数。语曰:邻之薄,家之厚也。以此始者,以此终乎。皆得成功,俱无后悔。 

  七、“打马例”论之一 

  众寡不敌,其谁可当;成败有时,夫复何恨。若往而旋返,有同虞国之留;或去亦无伤,有类塞翁之失。欲刷孟明五败之耻,好求曹刿一旦之功。其勉后图,我不弃汝。 

  八、“打马例”论之二 

  赵帜皆张,楚歌尽起。取功定霸,一举而成。方西邻责言,岂可蚁封共处;既南风不竞,固难金埒同居。便请回鞭,不须恋厩。 

  九、“打马例”论之三 

  亏于一篑,败此垂成。久伏盐车,方登峻坂;岂期一蹶,遂失长涂。恨群马之皆空,忿前功之尽弃。素蒙剪拂,不弃驽骀;愿守门阑,再从驱策。溯风骧首,已伤今日之障泥:恋主衔恩,更待明年之春草。 

  十、“倒行例”论 

  唯敌是求,唯险是据。后骑欲来,前马反顾。既将有为,退亦何害?语不云乎:日暮途远,故倒行而逆施之也。 

  十一、“入夹例”论 

  昔晋襄公以二陵而胜者,李亚子以夹寨而兴者,祸福依伏,其何可知。汝其勉之,当取大捷。 

  十二、“落堑例”论 

  凛凛临危,正欲腾骧而去;骎骎遇伏,忽惊阱堑之投。项羽之骓,方悲不逝;玄德之骑,已出如飞。既胜以奇,当旌其异,请同凡例,亦倒全盆。 

  十三、“倒盆例”论 

  瑶池宴罢,骐骥皆归。大宛凯旋,龙媒并入。已穷长路,安用挥鞭?未赐弊帷,尤宜报主。骥虽伏枥,万里之志常存;国正求贤,千金之骨不弃。定收老马,欲取奇驹。既以解骖,请拜三年之赐;如图再战,愿成他日之功。  

  李清照集校注
!![[东坡词-苏轼]]

!![[稼轩词-辛弃疾]]


!![[漱玉词-李清照集校注]]
!![[放翁词-陆游]]

!![[龙川词-陈亮]]
!![[欧阳修词集评]]



!![[宋词三百首]]
宋词三百首【清】 朱祖谋

  词是继诗之后新兴的文学体裁,起于隋唐的曲子词,经五代至两宋而臻于极盛。

   《宋词三百首》为词学大家朱祖谋(一八五七~一九三一)所编,选录两宋词人

八十五家,词三百一十阕。对于各种风格流派兼收并蓄,展示了宋词的发展概貌。

宴山亭 赵佶

  

北行见杏花 

  裁剪冰绡,轻叠数重,淡着燕脂匀注。新样靓妆,艳溢香融,羞杀蕊珠宫

女。易得凋零,更多少、无情风雨。愁苦,问院落凄凉,几番春暮?    

  凭寄离恨重重,者双燕何曾,会人言语?天遥地远,万水千山,知他故宫

何处?怎不思量?除梦里有曾去。无据,和梦也新来不做。         

木兰花 钱惟演 

城上风光莺语乱,城下烟波春拍岸。绿杨芳草几时休?泪眼愁肠先已断。

  

情怀渐觉成衰晚,鸾镜朱颜惊暗换。昔年多病厌芳尊,今日芳尊惟恐浅。 

苏幕遮 范仲淹 

  碧云天,黄叶地,秋色连波,波上寒烟翠。山映斜阳天接水,芳草无情,

更在斜阳外。                            

  

   黯乡魂,追旅思。夜夜除非,好梦留人睡。明月楼高休独倚,酒入愁肠,

化作相思泪。                             

御街行 范仲淹 

  纷纷坠叶飘香砌。夜寂静,寒声碎。真珠帘卷玉楼空,天淡银河垂地。年

年今夜,月华如练,长是人千里。                   

  

   愁肠已断无由醉,酒未到,先成泪。残灯明灭枕头攲,谙尽孤眠滋味。都

来此事,眉间心上,无计相回避。                    

千秋岁 张先 

  数声鶗鳺,又报芳菲歇。惜春更选残红折,雨轻风色暴,梅子青时节。永

丰柳,无人尽日花飞雪。                       

   

   莫把幺弦拨,怨极弦能说。天不老,情难绝,心似双丝网,中有千千结。

夜过也,东窗未白孤灯灭。                       

菩萨蛮 张先 

  哀筝一弄湘江曲,声声写尽湘波绿。纤指十三弦,细将幽恨传。当筵秋水

慢,玉柱斜飞雁。弹到断肠时,春山眉黛低。              

  醉垂鞭,张先双蝶绣罗裙,东池宴初相见。朱粉不深匀,闲花淡淡春。细

看诸处好,人人道柳腰身。昨日乱山昏,来时衣上云。           

一丛花 张先 

  伤高怀远几时穷?无物似情浓。离愁正引千丝乱,更东陌,飞絮蒙蒙。嘶

骑渐遥,征尘不断,何处认郎踪?                   

  双鸳池沼水溶溶,南北小桡通。梯横画阁黄昏后,又还是,斜月帘栊。沉

恨细思,不如桃杏,犹解嫁东风。                    

天仙子 张先

时为嘉禾小倅以病眠不赴府会 

  水调数声持酒听,午醉醒来愁未醒。送春春去几时回?临晚镜,伤流景,

往事后期空记省。                          

  

   沙上并禽池上暝,云破月来花弄影。重重帘幕密遮灯,风不定,人初静,

明月落红应满径。                           

青门引 张先 

  乍暖还轻冷,风雨晚来方定。庭轩寂寞近清明,残花中酒,又是去年病。

  

   楼头画角风吹醒,入夜重门静。那堪更被明月,隔墙送过秋千影。    

浣溪沙 晏殊 

一曲新词酒一杯,去年天气旧池台,夕阳西下几时回?

  

无可奈何花落去,似曾相识燕归来,小园香径独徘徊。 

浣溪沙 晏殊 

一向年光有限身,等闲离别易消魂,酒筵歌席莫辞频。

满目山河空念远,落花风雨更伤春,不如怜取眼前人。 

清乐平 晏殊 

    红笺小字,说尽平生意。鸿雁在云鱼在水,惆怅此情难寄。  

  

    斜阳独倚西楼,遥山恰对帘钩。人面不知何处,绿波依旧东流。 

清乐平 晏殊 

    金风细细,叶叶梧桐坠。绿酒初尝人易醉,一枕小窗浓睡。  

  

    紫薇朱槿花残,斜阳却照阑干。双燕欲归时节,银屏昨夜微寒。 

木兰花 晏殊 

燕鸿过后莺归去,细算浮生千万绪。长于春梦几多时,散似秋云无觅处。

  

闻琴解佩神仙侣,挽断罗衣留不住。劝君莫作独醒人,烂醉花间应有数。 

木兰花 晏殊 

池塘水绿风微暖,记得玉真初见面。重头歌韵响琤琮,入破舞腰红乱旋。

玉钩栏下香阶畔,醉后不知斜日晚。当时共我赏花人,点检如今无一半。 

木兰花 晏殊 

绿杨芳草长亭路,年少抛人容易去。楼头残梦五更钟,花底离愁三月雨。

  

无情不似多情苦,一寸还成千万缕。天涯地角有穷时,只有相思无尽处。 

踏莎行 晏殊 

祖席离歌,长亭别宴,香尘已隔犹回面。居人匹马映林嘶,行人去棹依波转。

  

画阁魂消,高楼目断,斜阳只送平波远。无穷无尽是离愁,天涯地角寻思遍。 

踏莎行 晏殊 

小径红稀,芳郊绿遍,高台树色阴阴见。春风不解禁杨花,蒙蒙乱扑行人面。

  

翠叶藏莺,朱帘隔燕,炉香静逐游丝转。一场愁梦酒醒时,斜阳却照深深院。 

蝶恋花 晏殊 

六曲阑干偎碧树,杨柳风轻,展尽黄金缕。谁把钿筝移玉柱,穿帘海燕双飞去。

  

满眼游丝兼落絮,红杏开时,一霎清明雨。浓睡觉来莺乱语,惊残好梦无寻处。 

凤箫吟 韩缜 

  锁离愁连绵无际,来时陌上初熏,绣帏人念远,暗垂珠露,泣送征轮。长

行长在眼,更重重、远水孤云。但望极楼高,尽日目断王孙。       

  

   消魂池塘别后,曾行处、绿妒轻裙。恁时携素手,乱花飞絮里,缓步香茵。

朱颜自改,向年年、芳意长新。遍绿野、嬉游醉眼,莫负青春。       

木兰花 宋祁 

东城渐觉风光好,彀皱波纹迎客棹。绿杨烟外晓云轻,红杏枝头春意闹。

  

浮生长恨欢娱少,肯爱千金轻一笑?为君持酒劝斜阳,且向花间留晚照。 

采桑子 欧阳修 

群芳过后西湖好,狼籍残红,飞絮蒙蒙,垂柳阑干尽日风。

  

笙歌散尽游人去,始觉春空,垂下帘栊,双燕归来细雨中。 

诉衷情 欧阳修 

清晨帘幕卷轻霜,呵手试梅妆。都缘自有离恨,故画作远山长。

  

思往事,惜流芳,易成伤。拟歌先敛,欲笑还颦,最断人肠。 

踏莎行 欧阳修 

候馆梅残,溪桥柳细,草薰风暖摇征辔。离愁渐远渐无穷,迢迢不断如春水。

  

寸寸柔肠,盈盈粉泪,楼高莫近危阑倚。平芜尽处是春山,行人更在春山外。 

蝶恋花 欧阳修 

庭院深深深几许?杨柳堆烟,帘幕无重数。玉勒雕鞍游冶处,楼高不见章台路。

  

雨横风狂三月暮,门掩黄昏,无计留春住。泪眼问花花不语,乱红飞过秋千去。 

蝶恋花 欧阳修 

谁道闲情抛弃久?每到春来,惆怅还依旧。日日花前常病酒,不辞镜里朱颜瘦。

河畔青芜堤上柳,为问新愁,何事年年有?独立小桥风满袖,平林新月人归后。 

蝶恋花 欧阳修 

几日行云何处去?忘了归来,不道春将暮。百草千花寒食路,香车系在谁家树?

  

泪眼倚楼频独语。双燕来时,陌上相逢否?撩乱春愁如柳絮,依依梦里无寻处。 

木兰花 欧阳修 

别后不知君远近,触目凄凉多少闷!渐行渐远渐无书,水阔鱼沉何处问?

  

夜深风竹敲秋韵,万叶千声皆是恨。故攲单枕梦中寻,梦又不成灯双烬。 

浪淘沙 欧阳修 

把酒祝东风,且共从容。垂杨紫陌洛城东,总是当时携手处,游遍芳丝。

  

聚散苦匆匆,此恨无穷。今年花胜去年红,可惜明年花更好,知与谁同? 

青玉案 欧阳修 

  一年春事都来几?早过了、三之二。绿暗红嫣浑可事。绿杨庭院,暖风帘

幕,有个人憔悴。                          

  

   买花载酒长安市,又争似,家山见桃李?不枉东风吹客泪,相思难表,梦

魂无据,惟有归来是。                         

曲玉管 柳永 

  陇首云飞,江边日晚,烟波满目凭阑久。一望关河萧索,千里清秋,忍凝

眸。杳杳神京,盈盈仙子,别来锦字终难偶。断雁无凭,冉冉飞下汀洲、思悠

悠。                                

  

   暗想当初,有多少、幽欢佳会;岂知聚散难期,翻成雨恨云愁。阻追游,

每登山临水,惹起平生心事,一场消黯,永日无言,却下层楼。       

雨霖铃 柳永 

  寒蝉凄切,对长亭晚,骤雨初歇。都门帐饮无绪,留恋处、兰舟催发。执

手相看泪眼,竟无语凝噎。念去去、千里烟波,暮霭沉沉楚天阔。     

  

   多情自古伤离别,更那堪、冷落清秋节!今宵酒醒何处?杨柳岸、晓风残

月。此去经年,应是良辰好景虚设。便纵有千种风情,更与何人说?     

蝶恋花 柳永 

  伫倚危楼风细细,望极春愁,黯黯生天际。草色烟光残照里,无言谁会凭

阑意?                               

  

   拟把疏狂图一醉,对酒当歌,强乐还无味。衣带渐宽终不悔,为伊消得人

憔悴。                                

采莲令 柳永 

  月华收,云淡霜天曙。西征客、此时情苦。翠娥手,送临歧、轧轧开朱户。

千娇面、盈盈伫立,无言有泪,断肠争忍回顾?              

  

   一叶兰舟,便凭急桨凌波去。贪行色、岂知离绪,万般方寸,但饮恨、脉脉

同谁语?更回首、重城不见,寒江天外,隐隐两三烟树。          

浪淘沙慢 柳永 

  梦觉透窗风一线,寒流灯吹息。那堪酒醒,又闻空阶夜雨频滴。嗟因循、久

作天涯客。负佳人、几许盟言,便忍把、从前欢会,陡顿翻成忧戚。    

  

   愁极,再三追思,洞房深处,几度饮散歌阑,香暖鸳鸯被。岂暂时疏散,费

伊心力。殢云尤雨,有万般千种,相怜相惜。               

  恰到如今,天长漏永,无端自家疏隔。知何时、却拥秦云态?愿低帏昵枕,

轻轻细说与,江乡夜夜,数寒更思忆。                  

定风波 柳永 

  自春来、惨绿愁红,芳心是事可可。日上花梢,莺穿柳带,犹压香衾卧。

暖酥消,腻云亸,终日厌厌倦梳裹。无那。恨薄情一去,音书无个。    

  

   早知恁么。悔当初、不把雕鞍锁。向鸡窗、只与蛮笺象管,拘束教吟课。

镇相随,莫抛躲。针线闲拈伴伊坐。和我,免使年少光阴虚过。       

少年游 柳永 

长安古道马迟迟,高柳乱蝉嘶。夕阳岛外,秋风原上,目断四天垂。

  

归云一去无踪迹,何处是前期?狎兴生疏,酒徒萧索,不似去年时。 

戚 氏 柳永 

  晚秋天。一霎微雨洒庭轩。槛菊萧疏,井梧零乱,惹残烟。凄然。望江关,

飞云黯淡夕阳间。当时宋玉悲感,向此临水与登山。远道迢递,行人凄楚,倦听

陇水潺湲。正蝉吟败叶,蛩响衰草,相应喧喧。             

  

   孤馆度日如年。风露渐变,悄悄至更阑。长天净,绛河清浅,皓月婵娟。

思绵绵,夜永对景,那堪屈指,暗想从前。未名未禄,绮陌红楼,往往经岁迁

延。                                

  

   帝里风光好,当年少日,暮宴朝欢。况有狂朋怪侣,遇当歌、对酒竞留连。

别来迅景如梭,旧游似梦,烟水程何限。念利名、憔悴长萦绊。追往事、空惨

愁颜。漏箭移、稍觉轻寒。渐呜咽画角数声残。对闲窗畔,停灯向晓,抱影无

眠。                                 

夜半乐 柳永 

  冻云黯淡天气,扁舟一叶,乘兴离江渚。渡万壑千岩,越溪深处。怒涛渐

息,樵风乍起,更闻商旅相呼,片帆高举。泛画鹢、翩翩过南浦。     

  

   望中洒旆闪闪,一簇烟村,数行霜树。残日下渔人鸣榔归去。败荷零落,

衰杨掩映,岸边两两三三,浣纱游女。避行客,含羞笑相语。       

  

   到此因念,绣阁轻抛,浪萍难驻。叹后约、丁宁竟何据。惨离怀、空恨岁

晚归期阻。凝泪眼、杳杳神京路。断鸿声远长天暮。            

玉胡蝶 柳永 

  望处雨收云断,凭栏悄悄,目送秋光。晚景萧疏,堪动宋玉悲凉。水风轻、

蘋花渐老,月露冷、梧叶飘黄。遗情伤。故人何在?烟水茫茫。      

  

   难忘。文期洒会,几孤风月,屡变星霜。海阔山遥,未知何处是潇湘?念

双燕、难凭远信,指暮天、空识归航。黯相望。断鸿声里,立尽斜阳。    

八声甘州 柳永 

  对潇潇暮雨洒江天,一番洗清秋。渐霜风凄紧,关河冷落,残照当楼。是

处红衰翠减,苒苒物华休。惟有长江水,无语东流。           

  

   不忍登高临远,望故乡渺邈,归思难收。叹年来踪迹,何事苦淹留?想佳

人妆楼凝望,误几回天际识归舟?争知我、倚阑干处,正恁凝愁?      

迷神引 柳永 

  一叶扁舟轻帆卷,暂泊楚江南岸。孤城暮角,引胡笳怨。水茫茫,平沙雁,

旋惊散。烟敛寒林簇,画屏展。天际遥山小,黛眉浅。          

  

   旧赏轻抛,到此成游宦。觉客程劳,年光晚。异乡风物,忍萧索、当愁眼。

帝城赊,秦楼阻,旅魂乱。芳草连空阔,残照满。佳人无消息,断云远。   

竹马子 柳永 

  登孤垒荒凉,危亭旷望,静临烟渚。对雌霓挂雨,雄风拂槛,微收残暮。

渐觉一叶惊秋,残蝉噪晚,素商时序。览景想肖欢,指神京、非零非烟深处。

  

   向此成追感,新愁易积,故人难聚。凭高尽日凝伫,赢得消魂无语。极目

霁霭霏,暝鸦零乱,萧索江城暮。南楼画角,又送残阳去。         

桂枝香 王安石 

  登临送目,正故国晚秋,天气初肃。千里澄江似练,翠峰如簇。归帆去棹

斜阳里,背西风,酒旗斜矗。彩舟云淡,星河鹭起,画图难足。      

  

   念往昔、繁华竞逐,叹门外楼头,悲恨相续。千古凭高,对此漫嗟荣辱。

六朝旧事如流水,但寒烟、衰草凝绿。至今商女,时时犹唱,后庭遗曲。   

千秋岁引 王安石 

  别馆寒砧,孤城画角,一派秋声入寥廓。东归燕从海上去,南来雁向沙头

落。楚台风,庚楼月,宛如昨。                    

  

   缧缧无奈,被些名利缚,无奈被他情担阁,可惜风流总闲却。当初漫留华

表语,而今误我秦楼约。梦阑时,酒醒后,思量着。            

清平乐 王安国 

    留春不住,费尽莺儿语。满地残红宫锦污,昨夜南园风雨。  

     小伶初上琵琶,晓来思绕天涯。不肯画堂朱户,春风自在杨花。

 临江仙 晏几道

梦后楼台高锁,酒醒帘暮低垂。去年春恨却来时,落花人独立,微雨燕双飞。

记得小蘋初见,两重心字罗衣。琵琶弦上说相思,当时明月在,曾照彩云归。

  

蝶恋花 晏几道

醉别西楼醒不记,春梦秋云,聚散真容易。斜月半窗还少睡,画屏闲展吴山翠。

衣上酒痕诗里字,点点行行,总是凄凉意。红烛自怜无好计,夜寒空替人垂泪。

  

蝶恋花 晏几道

醉别西楼醒不记,春梦秋云,聚散真容易。斜月半窗还少睡,画屏闲展吴山翠。

衣上酒痕诗里字,点点行行,总是凄凉意。红烛自怜无好计,夜寒空替人垂泪。

  

鹧鸪天 晏几道

彩袖殷勤捧玉钟,当年拚却醉颜红。舞低杨柳楼心月,歌尽桃花扇底风。

从别后,忆相逢,几回魂梦与君同。今宵剩把银釭照,犹恐相逢是梦中。

  

  

生查子 晏几道 

关山魂梦长,塞雁音书少。两鬓可怜青,只为相思老。

归傍碧纱窗,说与人人道:真个别离难,不似相逢好。

木兰花 晏几道

东风又作无情计,艳粉娇红吹满地。碧楼帘影不遮愁,还似去年今日意。

谁知错管春残事,到处登临曾费泪。此时金盏直须深,看尽落花能几醉。

  

木兰花 晏几道

秋千院落重帘暮,彩笔闲来题绣户。墙头丹杏雨馀花,门外绿杨风后絮。

朝云信断知何处?应作襄王春梦去。紫骝认得旧游踪,嘶过画桥东畔路。

  

清平乐 晏几道 

    留人不住,醉解兰舟去。一棹碧涛春水路,过尽晓莺啼处。  

  

     渡头杨柳青青,枝枝叶叶离情。此后锦书休寄,画楼云雨无凭。 

阮郎归 晏几道

旧香残粉似当初,人情恨不如。一春犹有数行书,秋来书更疏。

衾凤冷,枕鸳孤,愁肠待酒舒。梦魂纵有也成虚,那堪和梦无。

  

阮郎归 晏几道

天边金掌露成霜,云随雁字长。 绿杯红袖趁重阳,人情似故乡。

兰佩紫,菊簪黄,殷勤理旧狂。 欲将沉醉换悲凉,清歌莫断肠。

六么令 晏几道 

  绿阴春尽,飞絮绕香阁。晚来翠眉宫样,巧把远山学。一寸狂心未说,已

向横波觉。                             

   画帘遮匝,新翻曲妙,暗许闲人带偷掐。前度书多隐语,意浅愁难答。不

消红蜡,闲云归后,月在庭花旧阑角。                  

御街行 晏几道 

  街南绿树春饶絮,雪满游春路。树头花艳杂娇云,树底人家朱户。北楼闲

上,疏帘高卷,直见街南树。                     

  

   阑干倚尽犹慵去,几度黄昏雨。晚春盘马踏青苔,曾傍绿阴深驻。落花犹

在,香屏空掩,人面知何处?                      

虞美人 晏几道

曲阑干外天如水,昨夜还曾倚。初将明月比佳期,长向月圆时候、望人归。

罗衣著破前香在,旧意谁教攻。一春离恨懒调弦,犹有两行闲泪、宝筝前。

  

留春令 晏几道

画屏天畔,梦回依约,十洲云水。手捻红笺寄人书,写无限、伤春事。

别浦高楼曾漫倚,对江南千里。楼下分流水声中,有当日、凭高泪。 

思远人 晏几道 

红叶黄花秋意晚,千里念行客。飞云过尽,归鸿无信,何处寄书得? 

泪弹不尽临窗滴,就砚旋研墨。渐写到别来,此情深处,红笺为无色。 

水调歌头苏轼

丙辰中秋,欢饮达旦,作此篇兼怀子由 

  明月几时有,把酒问青天。不知天上宫阙,今夕是何年。我欲乘风归去。

惟恐琼楼玉宇,高处不胜寒,起舞弄清影,何似在人间。         

  转朱阁,低绮户,照无眠。不应有恨,何事长向别时圆?人有悲欢离合,

月有阴睛圆缺,此事古难全。但愿人长久,千里共婵娟。 

水龙吟 苏轼

次韵章质夫《杨花词》 

  似花还似非花,也无人惜从教坠。抛家傍路,思量却是,无情有思。萦损

柔肠,困酣娇眼,欲开还闭。梦随风万里,寻郎去处,又还被莺呼起。

  不恨此花飞尽,恨西园、落红难缀。晓还雨过,遗踪何在?一池萍碎。春

色三分,二分尘土,一分流水。细看来不是杨花,点点是离人泪。 

永遇乐 苏轼

彭城夜宿燕子楼,梦盼盼,因作此词 

  明月如霜,好风如水,清景无限。曲港跳鱼,圆荷泻璐,寂寞无人见。紞

如三鼓,铿然一叶,黯黯梦云惊断。夜茫茫、重寻无处,觉来小园行遍。

  天涯倦客,山中归路,望断故园心眼。燕子楼空,佳人何在?空锁楼中燕。

古今如梦,何曾梦觉,但有旧欢新怨。异时对、黄楼夜景,为余浩叹。 

洞仙歌 苏轼 

  冰肌玉骨,自清凉无汗。水殿风来暗香满。绣帘开,一点明月窥人,人未

寝,倚枕钗横鬓乱。                         

   

   起来携素手,庭户无声,时见疏星渡河汉。试问夜如何?夜已三更。金波

淡,玉绳低转。但屈指西风几时来?又不道流年暗中偷换。         

卜算子 苏轼

黄州定惠院寓居作 

缺月挂疏桐,漏断人初静。 谁见幽人独住来,飘渺孤鸿影。

惊起却回头,有恨无人省。 拣尽寒枝不肯栖,寂寞沙洲冷。 

青玉案 苏轼

送伯固归吴中 

  三年枕上吴中路,遣黄犬,随君去。若到松江呼小渡,莫惊鸳鹭,四桥尽

是、老子经行处。

   辋川图上看春暮,常记高人右丞句。作个归期天定许,春衫犹是,小蛮针

线,曾湿西湖雨。 

临江仙 苏轼 

夜饮东坡醒复醉,归来仿佛三更。家童鼻息已雷鸣,敲门都不应,倚杖听江声。

长恨此身非我有,何时忘却营营。夜阑风静彀纹平,小舟从此逝,江海寄余生。 

定风波 苏轼 

  莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马,谁怕!一蓑烟雨任

平生。                               

  料峭春风吹酒醒,微冷,山头斜照却相迎。回首向来萧瑟处,归去,也无

风雨也无晴。                             

贺新郎 苏轼 

  乳燕飞华屋。悄无人、桐阴转午,晚凉新浴。手弄生绡白团扇,扇手一时

似玉。渐困倚、孤眠清熟。帘外谁来推绣户?枉教人梦断瑶台曲。又却是,风

敲竹。                               

  石榴半吐红巾蹙。待浮花浪蕊都尽,伴君幽独。秾艳一枝细看取,芳心千

重似束。又恐被、秋风惊绿。若待得君来向此,花前对酒不忍触。共粉泪,两

簌簌。                                

望海潮 秦观 

洛阳怀古 

  梅英疏淡,冰澌溶泄,东风暗换年华。金谷俊游,铜驼巷陌,新晴细履平

沙。长忆误随车,正絮翻蝶舞,芳思交加。柳下桃蹊,乱分春色到人家。  

  

   西园夜饮鸣笳。有华灯碍月,飞盖妨花。兰苑未空,行人渐老,重来是事

堪喈。烟暝酒旗斜,但倚楼极目,时见栖鸦。无奈归心,暗随流水到天涯。  

八六子 秦观 

  倚危亭,恨如芳草,萋萋剗尽还生。念柳外青骢别后,水边红袂分时,怆

然暗惊。无端天与娉婷。夜月一帘幽梦,春风十里柔情。         

  

   怎奈何欢娱渐随流水,素弦声断,翠绡香减;那堪片片,飞花弄晚。蒙蒙

残雨笼晴。正销凝,黄鹂又啼数声。                   

满庭芳 秦观 

  山抹微云,天粘衰草,画角声断谯门。暂停征棹,聊共引离尊。多少蓬莱

旧事,空回首,烟霭纷纷。斜阳外,寒鸦万点,流水绕孤村。       

  

   销魂、当此际,香囊暗解,罗带轻分。谩赢得青楼、薄倖名存。此去何时

见也?襟袖上、空惹啼痕。伤情处,高楼望断,灯火已黄昏。        

满庭芳 秦观 

  晓色云开,春随人意,骤雨才过还晴。古台芳榭,飞燕蹴红英。舞困榆钱

自落,秋千外、绿水桥平。东风里,朱门映柳,低按小秦筝。       

  

   多情。行乐处,珠钿翠盖,玉辔红樱。渐酒空金榼,花困蓬瀛。豆蔻梢头

旧恨,十年梦、屈指堪惊。凭阑久,疏烟淡日,寂寞下芜城。        

减安木兰花 秦观 

天涯旧恨,独自凄凉人不问。 欲见回肠,断尽金炉小篆香。

黛蛾长敛,任是春风吹不展。 困倚危楼,过尽飞鸿字字愁。

浣溪沙 秦观

漠漠轻寒上小楼,晓阴无赖似穷秋,淡烟流水画屏幽。

自在飞花轻似梦,无边丝雨细如愁,宝帘闲挂小银钩。

  

阮郎归 秦观

湘天风雨破寒初,深沉庭院虚。 丽谯吹罢小单于,迢迢清夜徂。

乡梦断,旅魂孤,峥嵘岁又除。 衡阳犹有雁传书,郴阳和雁无。

  

绿头鸭 晁元礼 

  晚云收,淡天一片琉璃。烂银盘、来从海底,皓色千里澄辉。莹无尘、素

娥淡伫,静可数、丹桂参差。玉露初零,金风未澶,一年无似此佳时。露坐久、

疏萤时度,乌鹊正南飞。瑶台玲,阑干凭暖,欲下迟迟。         

  念佳人、音尘别后,对此应解相思。最关情漏声正永,暗断肠、花阴偷移。

料得来宵,清光未减,阴睛天气又争知。共凝恋、如今别后,还是隔年期。人

强健,清尊素影,长愿相随。                      

蝶恋花 赵令畤 

欲减罗衣寒未去,不卷珠帘,人在深深处。红杏枝头花几许?啼痕止恨清明雨。

尽日沉烟香一缕,宿酒醒迟,恼破春情绪。飞燕又将归信误,小屏风上西江路。

蝶恋花 赵令畤

卷絮风头寒欲尽,坠粉飘香,日日红成阵。新酒又添残酒困,今春不减前春恨。

蝶去莺飞无处问,隔水高楼,望断双鱼信。恼乱横波秋一寸,斜阳只与黄昏近。

清平乐 赵令畤

    春风依旧,着意隋堤柳。搓得鹅几黄欲就,天气清明时候。 

    去年紫陌青门,今宵雨云魂。断送一生憔悴,只消几个黄昏。

水龙吟 晁补之

次韵林圣予《惜春》  

问春何苦勿勿,带风伴雨如驰骤。幽葩细萼,小园低槛,壅培未就。吹尽繁

红,占春长久,不如垂柳。算春长不老,人愁春老,愁只是、人间有。

春恨十常八九,忍轻孤、芳醪经口。那知自是、桃花结子,不因春瘦。世

上功名,老来风味,春归时候。最多情犹有,尊前青眼,相逢依旧。

?首页 >> 古人诗词 >>宋词三百首卷二 

宋词三百首

(共八卷)

【清】 朱祖谋 编

1 2 3 4 5 6 7 8

---

情愁忧患都说尽,烟柳浮云始作闲。

卷二

  词是继诗之后新兴的文学体裁,起于隋唐的曲子词,经五代至两宋而臻于极盛。

   《宋词三百首》为词学大家朱祖谋(一八五七~一九三一)所编,选录两宋词人

八十五家,词三百一十阕。对于各种风格流派兼收并蓄,展示了宋词的发展概貌。

  

  

临江仙 晏几道

梦后楼台高锁,酒醒帘暮低垂。去年春恨却来时,落花人独立,微雨燕双飞。

记得小蘋初见,两重心字罗衣。琵琶弦上说相思,当时明月在,曾照彩云归。

  

蝶恋花 晏几道

醉别西楼醒不记,春梦秋云,聚散真容易。斜月半窗还少睡,画屏闲展吴山翠。

衣上酒痕诗里字,点点行行,总是凄凉意。红烛自怜无好计,夜寒空替人垂泪。

  

蝶恋花 晏几道

醉别西楼醒不记,春梦秋云,聚散真容易。斜月半窗还少睡,画屏闲展吴山翠。

衣上酒痕诗里字,点点行行,总是凄凉意。红烛自怜无好计,夜寒空替人垂泪。

  

鹧鸪天 晏几道

彩袖殷勤捧玉钟,当年拚却醉颜红。舞低杨柳楼心月,歌尽桃花扇底风。

从别后,忆相逢,几回魂梦与君同。今宵剩把银釭照,犹恐相逢是梦中。

  

  

生查子 晏几道 

关山魂梦长,塞雁音书少。两鬓可怜青,只为相思老。

归傍碧纱窗,说与人人道:真个别离难,不似相逢好。

木兰花 晏几道

东风又作无情计,艳粉娇红吹满地。碧楼帘影不遮愁,还似去年今日意。

谁知错管春残事,到处登临曾费泪。此时金盏直须深,看尽落花能几醉。

  

木兰花 晏几道

秋千院落重帘暮,彩笔闲来题绣户。墙头丹杏雨馀花,门外绿杨风后絮。

朝云信断知何处?应作襄王春梦去。紫骝认得旧游踪,嘶过画桥东畔路。

  

清平乐 晏几道 

    留人不住,醉解兰舟去。一棹碧涛春水路,过尽晓莺啼处。  

  

     渡头杨柳青青,枝枝叶叶离情。此后锦书休寄,画楼云雨无凭。 

阮郎归 晏几道

旧香残粉似当初,人情恨不如。一春犹有数行书,秋来书更疏。

衾凤冷,枕鸳孤,愁肠待酒舒。梦魂纵有也成虚,那堪和梦无。

  

阮郎归 晏几道

天边金掌露成霜,云随雁字长。 绿杯红袖趁重阳,人情似故乡。

兰佩紫,菊簪黄,殷勤理旧狂。 欲将沉醉换悲凉,清歌莫断肠。

六么令 晏几道 

  绿阴春尽,飞絮绕香阁。晚来翠眉宫样,巧把远山学。一寸狂心未说,已

向横波觉。                             

   画帘遮匝,新翻曲妙,暗许闲人带偷掐。前度书多隐语,意浅愁难答。不

消红蜡,闲云归后,月在庭花旧阑角。                  

御街行 晏几道 

  街南绿树春饶絮,雪满游春路。树头花艳杂娇云,树底人家朱户。北楼闲

上,疏帘高卷,直见街南树。                     

  

   阑干倚尽犹慵去,几度黄昏雨。晚春盘马踏青苔,曾傍绿阴深驻。落花犹

在,香屏空掩,人面知何处?                      

虞美人 晏几道

曲阑干外天如水,昨夜还曾倚。初将明月比佳期,长向月圆时候、望人归。

罗衣著破前香在,旧意谁教攻。一春离恨懒调弦,犹有两行闲泪、宝筝前。

  

留春令 晏几道

画屏天畔,梦回依约,十洲云水。手捻红笺寄人书,写无限、伤春事。

别浦高楼曾漫倚,对江南千里。楼下分流水声中,有当日、凭高泪。 

思远人 晏几道 

红叶黄花秋意晚,千里念行客。飞云过尽,归鸿无信,何处寄书得? 

泪弹不尽临窗滴,就砚旋研墨。渐写到别来,此情深处,红笺为无色。 

水调歌头苏轼

丙辰中秋,欢饮达旦,作此篇兼怀子由 

  明月几时有,把酒问青天。不知天上宫阙,今夕是何年。我欲乘风归去。

惟恐琼楼玉宇,高处不胜寒,起舞弄清影,何似在人间。         

  转朱阁,低绮户,照无眠。不应有恨,何事长向别时圆?人有悲欢离合,

月有阴睛圆缺,此事古难全。但愿人长久,千里共婵娟。 

水龙吟 苏轼

次韵章质夫《杨花词》 

  似花还似非花,也无人惜从教坠。抛家傍路,思量却是,无情有思。萦损

柔肠,困酣娇眼,欲开还闭。梦随风万里,寻郎去处,又还被莺呼起。

  不恨此花飞尽,恨西园、落红难缀。晓还雨过,遗踪何在?一池萍碎。春

色三分,二分尘土,一分流水。细看来不是杨花,点点是离人泪。 

永遇乐 苏轼

彭城夜宿燕子楼,梦盼盼,因作此词 

  明月如霜,好风如水,清景无限。曲港跳鱼,圆荷泻璐,寂寞无人见。紞

如三鼓,铿然一叶,黯黯梦云惊断。夜茫茫、重寻无处,觉来小园行遍。

  天涯倦客,山中归路,望断故园心眼。燕子楼空,佳人何在?空锁楼中燕。

古今如梦,何曾梦觉,但有旧欢新怨。异时对、黄楼夜景,为余浩叹。 

洞仙歌 苏轼 

  冰肌玉骨,自清凉无汗。水殿风来暗香满。绣帘开,一点明月窥人,人未

寝,倚枕钗横鬓乱。                         

   

   起来携素手,庭户无声,时见疏星渡河汉。试问夜如何?夜已三更。金波

淡,玉绳低转。但屈指西风几时来?又不道流年暗中偷换。         

卜算子 苏轼

黄州定惠院寓居作 

缺月挂疏桐,漏断人初静。 谁见幽人独住来,飘渺孤鸿影。

惊起却回头,有恨无人省。 拣尽寒枝不肯栖,寂寞沙洲冷。 

青玉案 苏轼

送伯固归吴中 

  三年枕上吴中路,遣黄犬,随君去。若到松江呼小渡,莫惊鸳鹭,四桥尽

是、老子经行处。

   辋川图上看春暮,常记高人右丞句。作个归期天定许,春衫犹是,小蛮针

线,曾湿西湖雨。 

临江仙 苏轼 

夜饮东坡醒复醉,归来仿佛三更。家童鼻息已雷鸣,敲门都不应,倚杖听江声。

长恨此身非我有,何时忘却营营。夜阑风静彀纹平,小舟从此逝,江海寄余生。 

定风波 苏轼 

  莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马,谁怕!一蓑烟雨任

平生。                               

  料峭春风吹酒醒,微冷,山头斜照却相迎。回首向来萧瑟处,归去,也无

风雨也无晴。                             

贺新郎 苏轼 

  乳燕飞华屋。悄无人、桐阴转午,晚凉新浴。手弄生绡白团扇,扇手一时

似玉。渐困倚、孤眠清熟。帘外谁来推绣户?枉教人梦断瑶台曲。又却是,风

敲竹。                               

  石榴半吐红巾蹙。待浮花浪蕊都尽,伴君幽独。秾艳一枝细看取,芳心千

重似束。又恐被、秋风惊绿。若待得君来向此,花前对酒不忍触。共粉泪,两

簌簌。                                

望海潮 秦观 

洛阳怀古 

  梅英疏淡,冰澌溶泄,东风暗换年华。金谷俊游,铜驼巷陌,新晴细履平

沙。长忆误随车,正絮翻蝶舞,芳思交加。柳下桃蹊,乱分春色到人家。  

  

   西园夜饮鸣笳。有华灯碍月,飞盖妨花。兰苑未空,行人渐老,重来是事

堪喈。烟暝酒旗斜,但倚楼极目,时见栖鸦。无奈归心,暗随流水到天涯。  

八六子 秦观 

  倚危亭,恨如芳草,萋萋剗尽还生。念柳外青骢别后,水边红袂分时,怆

然暗惊。无端天与娉婷。夜月一帘幽梦,春风十里柔情。         

  

   怎奈何欢娱渐随流水,素弦声断,翠绡香减;那堪片片,飞花弄晚。蒙蒙

残雨笼晴。正销凝,黄鹂又啼数声。                   

满庭芳 秦观 

  山抹微云,天粘衰草,画角声断谯门。暂停征棹,聊共引离尊。多少蓬莱

旧事,空回首,烟霭纷纷。斜阳外,寒鸦万点,流水绕孤村。       

  

   销魂、当此际,香囊暗解,罗带轻分。谩赢得青楼、薄倖名存。此去何时

见也?襟袖上、空惹啼痕。伤情处,高楼望断,灯火已黄昏。        

满庭芳 秦观 

  晓色云开,春随人意,骤雨才过还晴。古台芳榭,飞燕蹴红英。舞困榆钱

自落,秋千外、绿水桥平。东风里,朱门映柳,低按小秦筝。       

  

   多情。行乐处,珠钿翠盖,玉辔红樱。渐酒空金榼,花困蓬瀛。豆蔻梢头

旧恨,十年梦、屈指堪惊。凭阑久,疏烟淡日,寂寞下芜城。        

减安木兰花 秦观 

天涯旧恨,独自凄凉人不问。 欲见回肠,断尽金炉小篆香。

黛蛾长敛,任是春风吹不展。 困倚危楼,过尽飞鸿字字愁。

浣溪沙 秦观

漠漠轻寒上小楼,晓阴无赖似穷秋,淡烟流水画屏幽。

自在飞花轻似梦,无边丝雨细如愁,宝帘闲挂小银钩。

  

阮郎归 秦观

湘天风雨破寒初,深沉庭院虚。 丽谯吹罢小单于,迢迢清夜徂。

乡梦断,旅魂孤,峥嵘岁又除。 衡阳犹有雁传书,郴阳和雁无。

  

绿头鸭 晁元礼 

  晚云收,淡天一片琉璃。烂银盘、来从海底,皓色千里澄辉。莹无尘、素

娥淡伫,静可数、丹桂参差。玉露初零,金风未澶,一年无似此佳时。露坐久、

疏萤时度,乌鹊正南飞。瑶台玲,阑干凭暖,欲下迟迟。         

  念佳人、音尘别后,对此应解相思。最关情漏声正永,暗断肠、花阴偷移。

料得来宵,清光未减,阴睛天气又争知。共凝恋、如今别后,还是隔年期。人

强健,清尊素影,长愿相随。                      

蝶恋花 赵令畤 

欲减罗衣寒未去,不卷珠帘,人在深深处。红杏枝头花几许?啼痕止恨清明雨。

尽日沉烟香一缕,宿酒醒迟,恼破春情绪。飞燕又将归信误,小屏风上西江路。

蝶恋花 赵令畤

卷絮风头寒欲尽,坠粉飘香,日日红成阵。新酒又添残酒困,今春不减前春恨。

蝶去莺飞无处问,隔水高楼,望断双鱼信。恼乱横波秋一寸,斜阳只与黄昏近。

清平乐 赵令畤

    春风依旧,着意隋堤柳。搓得鹅几黄欲就,天气清明时候。 

    去年紫陌青门,今宵雨云魂。断送一生憔悴,只消几个黄昏。

水龙吟 晁补之

次韵林圣予《惜春》  

  问春何苦勿勿,带风伴雨如驰骤。幽葩细萼,小园低槛,壅培未就。吹尽繁

红,占春长久,不如垂柳。算春长不老,人愁春老,愁只是、人间有。    

  

   春恨十常八九,忍轻孤、芳醪经口。那知自是、桃花结子,不因春瘦。世

上功名,老来风味,春归时候。最多情犹有,尊前青眼,相逢依旧。     

夜游宫 周邦彦 

  叶下斜阳照水,卷轻浪、沉沉千里。桥上酸风射眸子。立多时,看黄昏灯

火市。                               

  

   古屋寒窗底,听几片、井桐飞坠。不恋单衾再三起。有谁知,为萧娘书一

纸?                                 

青玉案 贺铸 

  凌波不过横塘路,但目送、芳尘去。锦瑟华年谁与度?月桥花院,琐窗朱

户,只有春知处。                          

  

   飞云冉冉蘅皋暮,彩笔新题断肠句。试问闲愁都几许?一川烟草,满城风

絮,梅子黄时雨。                           

感皇恩 贺铸 

  兰芷满汀洲,游丝横路。罗袜尘生步迎顾,整鬟颦黛,脉脉两情难语。细

风吹柳絮、人南渡。                         

  

   回首旧游,山无重数。花底深、朱户何处?半黄梅子,向晚一帘疏雨。断

魂分付与、春将去。                          

薄 幸 贺铸 

  淡妆多态,更的的、频回眄睐。便认得琴心先许,欲绾合双带。记画堂、

风月逢迎,轻颦浅笑娇无奈。向睡鸭炉边,翔鸳屏里,羞把香罗暗解。   

  

   自过了烧灯后,都不见踏青挑菜。几回凭双燕,丁宁深意,往来却恨重帘

碍。约何时再,正春浓酒困,人闲昼永无聊赖。厌厌睡起,犹有花梢日在。  

浣溪沙 贺铸 

不信芳春厌老人,老人几度送馀春,惜春行乐莫辞频。

  

巧笑艳歌皆我意,恼花颠酒拼君瞋,物情惟有醉中真。 

浣溪沙 贺铸 

楼角初消一缕霞,淡黄杨柳暗栖鸦,玉人和月摘梅花。

  

笑捻粉香归洞户,更垂帘幕护窗纱,东风寒似夜来些。 

石州慢 贺铸 

  薄雨收寒,斜照弄晴,春意空阔。长亭柳色才黄,远客一枝先折。烟横水

漫,映带几点归鸿,平沙消尽龙沙雪。犹记出关来,恰而今时节。     

  

   将发,画楼芳酒,红泪清歌,便成轻别。回首经年,杳杳音尘都绝。欲知

方寸,共有几许新愁?芭蕉不展丁香结。枉望断天涯,两厌厌风月。     

蝶恋花 贺铸 

几许伤春春复暮,杨柳清阴,偏碍游丝度。天际小山桃叶步,白蘋花满湔裙处。

  

竟日微吟长短句,帘影灯昏,心寄胡琴语。数点雨声风约住,朦胧淡月云来去。 

天门谣 贺铸

  

登采石蛾眉亭 

牛渚天门险,限南北、七雄豪占。清雾敛,与闲人登览。 

  

待月上潮,平波滟滟,塞管轻吹新阿滥。风满槛,历历数、西州更点。 

天 香 贺铸 

  烟络横林,山沉远照,迤逦黄昏钟鼓。烛映帘栊,蛩催机杼,共苦清秋风

露。不眠思妇,齐应和、几声砧杵。惊动天涯倦宦,锓囗囗岁华行暮。   

  

   当年酒狂自负,谓东君、以春相付。流浪征骖北道,客樯南浦,幽恨无人

晤语。赖明月曾知旧游处,好伴云来,还将梦去。             

望湘人 贺铸 

  厌莺声到枕,花气动帘,醉魂愁相半。被惜余熏,带惊剩眼,几许伤春春

晚。泪竹痕鲜,佩兰香老,湘天浓暖。记小江风月佳时,屡约非烟游伴。  

  

   须信鸾弦易断,奈云和再鼓,曲中人远。认罗袜无踪,旧处弄波清浅。青

翰棹舣,白蘋洲畔,尽目临皋飞观。不解寄、一字相思,幸有归来双燕。   

绿头鸭 贺铸 

  玉人家,画楼珠箔临津。托微风彩箫流怨,断肠马上曾闻。宴堂开、艳妆

丝里,调琴思、认歌颦。麝蜡烟浓,玉莲漏短,更衣不待酒初醺。绣屏掩、枕

鸳相就,香气渐暾暾。回廊影、疏钟淡月,几许消魂?          

  

   翠钗分、银笺封泪,舞鞋从此生尘。任兰舟载将离恨,转南浦、北西醺。

记取明年,蔷薇谢后,佳期应未误行云。凤城远、楚梅香嫩,先寄一枝春。青

门外,只凭芳草,寻访郎君。                      

石州慢 张元干 

  寒水依痕,春意渐回,沙际烟阔。溪梅睛照生香,冷蕊数枝争发。天涯旧

恨,试看几许消魂?长亭门外山重叠。不尽眼中青,是愁来时节。     

  

   情切,画楼深闭,想见东风,暗消肌雪。孤负枕前云雨,尊前花月。心期

切处,更有多少凄凉,殷勤留在归时说。到得再相逢,恰经年离别。     

兰陵王 张元干 

  卷珠箔,朝雨轻阴乍阁。阑干外、烟柳弄睛,芳草侵阶映红药。东风妒花

恶,吹落梢头嫩萼。屏山掩、沉水倦熏,中酒心情怯杯勺。        

  

   寻思旧京洛,正年少疏狂,歌笑迷著。障泥油壁催梳掠,曾驰道同载,上

林携手,灯夜初过早共约,又争信飘泊。                

  

   寂寞,念行乐。甚粉淡衣襟,音断弦索,琼枝壁月春如昨。怅别华表,那

回双鹤。相思除是,向醉里、暂忘却。                  

贺新郎 叶梦得 

  睡起流莺语,掩苍苔,房栊向晚,乱红无数。吹尽残花无人见,惟有垂杨

自舞。渐暖霭、初回轻暑,宝扇重寻明月影,暗尘侵、上有乘鸾女。惊旧恨,

遽如许。                              

  

   江南梦断横江渚。浪粘天、葡萄涨绿,半空烟雨。无限楼前沧波意,谁采

频花寄取?但怅望、兰舟容与,万里云帆何时到?送孤鸿、目断千山阻。谁为

我,唱金缕。                             

虞美人 叶梦得 

落花已作风前舞,又送黄昏雨。晓来庭院半残红,惟有游丝,千丈袅晴空。

殷勤花下同携手,更尽杯中酒。美人不用敛蛾眉,我亦多情,无奈酒阑时。 

点绛唇 汪藻 

新月娟娟,夜寒江静山衔斗。起来搔首,梅影横窗瘦。 

好个霜天,闲却传杯手。君知否?乱鸦啼后,归兴浓如酒。 

喜迁莺 刘一生

晓行 

  晓光催角,听宿鸟未惊,邻鸡先觉。 迤逦烟村, 马嘶人起,残月尚穿林

薄。泪痕带霜微凝,酒力冲寒犹弱。叹倦客,悄不禁重染,风尘京洛。   

  

   追念人别后,心事万重,难觅孤鸿托。翠幌娇深,曲屏香暖,争念岁华飘

泊。怨月恨花烦恼,不是不曾经著。者情味、望一成消减,新来还恶。    

高阳台 韩囗

除 夜 

  频听银签,重然绛蜡,年华衮衮惊心。饯旧迎新,能消几刻光阴?老来可

惯通宵饮?待不眠、还怕寒侵。掩清尊、多谢梅花,伴我微吟。      

   

   邻娃已试春妆了,更蜂腰簇翠,燕股横金。句引东风,也知芳思难禁。朱

颜那有年年好,逞艳游、赢取如今。恣登临、残雪楼台,迟日园林。     

汉宫春 李邴 

  潇洒江梅,向竹梢疏处,横两三枝。东君也不爱惜,雪压霜欺。无情燕子,

怕春寒、轻失花期。却是有、年年塞雁,归来曾见开时。         

  

   清浅小溪如练,问玉堂何似,茅舍疏篱?伤心故人去后、冷落新诗。微云

淡月,对江天、分付他谁。空白忆、清香未减,风流不在人知。       

临江仙 陈与义 

高咏楚词酬午日,天涯节序匆匆。榴花不似舞裙红,无人知此意,歌罢满帘风。

  

万事一身伤老矣,戎葵凝笑墙东。酒杯深浅去年同,试浇桥下水,今夕到湘中。 

临江仙 陈与义

  

夜登小阁忆洛中旧游 

忆昔午桥桥上饮,坐中多是豪英。长沟流月去无声,杏花疏影里,吹笛到天明。

  

二十馀年如一梦,此身虽在堪惊,头登小阁看新晴。古今多少事,渔唱起三更。 

苏武慢 蔡伸 

  雁落平沙,烟笼寒冰,古垒鸣笳声断。青山隐隐,败叶萧萧,天际暝鸦零

乱。楼上黄昏,片帆千里归程,年华将晚。望碧云空暮,佳人何处?梦魂俱远。

  

   忆旧游,邃馆朱扉,小园香径,尚想桃花人面。书盈锦轴,恨满金徽,难

写寸心幽怨。两地离愁,一尊芳酒,凄凉危栏倚遍。尽迟留,凭仗西风,吹干

泪眼。 

柳梢青 蔡伸 

数声鶗鳺,可怜又是、春归时节。满面东风,海棠铺绣,梨花飘雪。 

丁香露泣残枝,算未比、愁肠寸结。自是休文,多情多感,不干风月。 

鹧鸪天 周紫芝 

一点残红欲尽时,乍凉秋气满屏帏。梧桐叶上三更雨,叶叶声声是别离。

调宝瑟,拨金猊,那时同唱鹧鸪词。如今风雨西楼夜,不听清歌也垂泪。 

踏沙行 周紫芝 

情似游丝,人如飞絮,泪珠阁定空相觑。一溪烟柳万丝垂,无因系得兰舟住。

烟过斜阳,草迷烟渚,如今已是愁无数。明朝且做莫思量,如何过得今宵去。 

帝台春 李甲 

  芳草碧色,萋萋便南陌。暖絮乱红,也似知人,春愁无力。忆得——盈盈

拾发言翠侣,共携赏、凤城寒食。               

     

   到今来,海角逢春,天涯为客。愁旋释,还似织;泪暗则,而今已拚了,

忘则怎生便忘得。又还问鳞鸿,试重寻消息。               

忆王孙 李重元 

  萋萋芳草忆王孙,柳外楼高空断魂,杜宇声声不忍闻。欲黄昏,雨打梨花

深闭门。 

忆秦娥 万俟咏 

千里草,萋萋尽处遥山小。遥山小,行人远似,此山多少? 

  

天若有情天亦老,此情说便说不了。说不了,一声唤起,又惊春晓。 

三台 万俟咏

  

清明应制 

  见梨花初带夜月,海棠半含朝雨。内苑春、不禁过青门,御沟涨、潜通南

浦。东风静,细柳垂金缕,望凤阙非烟非雾。好时代、朝野多欢,遍九陌、太

平箫鼓。乍莺儿百啭断续,燕子飞来飞去。近绿水、台榭映秋千,斗草聚、双

双游女。                              

  饧香更、酒冷踏青路;会暗识、夭桃朱户。向晚骤、宝马雕鞍,醉襟惹、

乱花飞絮。正轻寒轻暖漏水,半阴半晴云暮。禁火天、已是试新妆,岁华到、

三分佳处。清明看、汉蜡传宫炬,散翠烟、飞入槐府。敛兵卫、阊阖门开,住

传宣、又还休务。                           

二郎神 徐伸 

  闷来弹鹊,又搅碎、一帘花影。漫试著春衫,还思纤手,熏彻金猊烬冷。

动是愁端如何向?但怪得新来多病。嗟旧日沈腰,如今潘鬓,怎堪临镜?重省

别时泪湿,罗衣犹凝。                        

  

   料为我厌厌,日高慵起,账托春醒未醒。雁足不来,马蹄难驻,门掩一庭

芳景。空伫立,尽日阑干,倚遍昼长人静。                

江神子慢 田为 

  玉台挂秋月,铅素浅、梅花傅香雪。冰姿洁,金莲衬、小小凌波罗袜。雨

初歇,楼外孤鸿声渐远,远山外行人音信绝。此恨对语犹难,那堪更寄书说。

  

   教人红消翠减,觉衣宽金缕,都为轻别。太情切,消魂处画角黄昏时节。

声呜咽。落尽庭花草,春去也。银蟾迥,无情圆又缺。恨伊不似馀香,惹鸳鸯

结。                                 

蓦山溪 曹组 

  洗妆真态,不作铅花御。竹外一枝斜,想佳人、天寒日暮。黄昏院落,无

处着清香,风细细,雪垂垂,何况江头路。               

  

   月边疏影,梦到消魂处。结子欲黄时,又须作、廉纤细雨。孤芳一世,供

断有情愁,消瘦损,东阳也,试问花知否?               

  

  

蓦山溪 间子翚 

  浮烟冷雨,今日还重九。秋去又秋来,但黄花、年年如旧。平台戏马,无

处问英雄;茅舍底,竹篱东,伫立时搔首。               

  

   客来何有?草草三杯酒。一醉万缘空,莫贪伊、金印如斗。病翁老矣,谁

共赋归来?芟垅麦,网溪鱼,未落他人后。                

贺新郎 李玉 

  篆缕消金鼎。醉沉沉、庭阴转午,画堂人静。芳草王孙知何处?惟有杨花

糁径。渐玉枕、腾腾春醒,帘外残红春已透,镇无聊、殢酒厌厌病。云鬓乱,

未忺整。                              

  

   江南旧事休重省,遍天涯寻消问息,断鸿难倩。月满西楼凭阑久,依旧归

期未定。又只恐、瓶沉金井。嘶骑不来银烛暗,枉教人立尽梧桐影。谁伴我,

对鸾镜。                               

烛影摇红 廖世美

  

题安陆浮云楼 

  霭霭春空,画楼森耸凌云渚。紫薇登览最关情,绝妙夸能赋。惆怅相思迟

暮,记当日、朱阑共语。塞鸿难问,崖柳何穷,别愁纷絮。        

  

   催促年光,旧来流水知何处?断肠何必更残阳,极目伤平楚。晚霁波声带

雨。悄无人、舟横野渡。数峰江上,芳草天涯,参差烟树。         

薄 幸 吕滨老 

  青楼春晚,昼寂寂、梳匀又懒。乍听得、鸦啼莺哢,惹起新愁无限。记年

时偷掷春心,花前隔雾遥相见。便角枕题诗,宝钗贳酒,共醉青苔深院。  

  

   怎忘得、回廊下,携手处、花明月满。如今但暮雨,蜂愁蝶恨,小窗闲对

芭蕉展。却谁拘管?尽无言、闲品秦筝,泪满参差雁。腰肢渐小,心与杨花共

远。  

南浦 鲁逸仲 

  风悲画角,听单于、三弄落谯门。投宿囗囗征骑,飞雪满孤村。酒市渐阑

灯火,正敲窗、乱叶舞纷纷。送数声惊雁,乍离烟水,嘹唳度寒云。    

  

   好在半胧淡月,到如今、无处不消魂。故国梅花归梦,愁损绿罗裙。为问

暗香闲艳,也相思、万点付啼痕。算翠屏应是,两眉馀恨倚黄昏。      

满江红 岳飞 

  怒发冲寇,凭阑处、潇潇雨歇。抬望眼、仰天长啸,壮怀激烈。三十功名

尘与土,八千里路云和月。莫等闲、白了少年头,空悲切。        

  

   靖康耻,犹未雪;臣子憾,何时灭。驾长车踏破、贺兰山缺。壮志饥餐胡

虏肉,笑谈渴饮匈奴血。待从头、收拾旧山河,朝天阙。          

烛影摇红 张抡

  

上元有怀 

  双阙中天,凤楼十二春寒浅。去年元夜奉宸游,曾侍瑶池宴。玉殿珠帘尽

卷,拥群仙、蓬壶阆苑。五云深处,万烛光中,揭天丝管。        

  

   驰隙流年,恍如一瞬星霜换。今宵谁念泣孤臣,回首长安远。可是尘缘未

断,漫惆怅、华胥梦短。满怀幽恨,数点寒灯,几声归雁。         

水龙吟 程垓 

  夜来风雨匆匆,故园定是花无几。愁多怨极,等闲孤负,一年芳意。柳困

桃慵,杏青梅小,对人容易。算好春长在,好花长见,原只是、人憔悴。  

  

   回首池南旧事,恨星星、不堪重记。如今但有,看花老眼,伤时清泪。不

怕逢花瘦,只愁怕、老来风味。待繁红乱处,留云借月,也须拚醉。     

六州歌头 张孝祥 

 长淮望断,关塞莽然平。征尘暗,霜风劲,悄边声。黯消凝,追想当年事,

殆天数,非人力;洙泗上,弦歌地,亦膻腥。隔水毡乡,落日牛羊下,区脱纵

横。看名王宵猎,骑火一川明,笳鼓悲鸣,遣人惊。           

  

  念腰间箭,匣中剑,空埃蠹,竟何成!时易失,心徒壮,岁将零,渺神京。

干羽方怀远,静烽燧,且休兵。冠盖使,纷驰鹜,若为情?闻道中原遗老,常

南望翠葆霓旌。使行人到此,忠愤气填膺,有泪如倾。           

念奴娇 张孝祥 

  洞庭青草,近中秋、更无一点风色。玉界琼田三万顷,著我扁舟一叶。素

月分辉,银河共影,表里俱澄澈。怡然心会,妙处难与君说。       

  

   应念岭海经年,孤光自照,肝胆皆冰雪。短发萧骚襟袖冷,稳泛沧浪空阔。

尽挹西江,细斟北斗,万象为宾客。扣舷独啸,不知今夕何夕!       

六州歌头 韩元吉 

  东风著意,先上小桃枝。红粉腻,娇如醉,倚朱扉。记年时,隐映新生妆

面,临水岸,春将半,云日暖,斜桥转,夹城西。草软莎平,跋马垂杨渡,玉

勒争嘶。                              

  

   认蛾眉,凝笑脸,薄拂燕脂,绣户曾窥,恨依依。共携手处,香如雾,红

随步,怨春迟。消瘦损,凭谁问?只花知,泪空垂。旧日堂前燕,和烟雨又双

飞。人自老,春长暮霭,目断武陵溪,往事难追。             

好事近 韩元吉 

凝碧旧池头,一听管弦凄切。多少梨园声在,总不堪华发。 

  

杏花无处避春愁,也傍野烟发。惟有御沟声断,似知人呜咽。 

瑞鹤仙 袁去华 

  郊原初过雨,风数叶零乱,风定犹舞。斜阳挂深树,映浓愁浅黛。遥山媚

妩。来时旧路,尚岩花、娇黄半吐。到今日惟有、溪边流水,见人如故。  

  

   无语,邮亭深静,下马还寻,旧曾题处。无聊倦旅,伤离恨,最愁苦。纵

收香藏镜,他年重到,人面桃花在否?念沉沉小阁幽窗,有时梦去。     

剑器近 袁去华 

  夜来雨,赖倩得东风吹住。海棠正妖绕处,且留取。悄庭户,试细听莺啼

燕语,分明共人愁绪,怕春去。佳树翠阴初转午。            

  

   重帘未卷,乍睡起,寂寞看风絮。偷弹清泪寄烟波,见江头故人,为言憔

悴如许。彩笺无数,去却寒暄,到了浑无定据。断肠落日千山暮。      

安公子 袁去华 

  弱柳千丝缕,嫩黄匀遍鸦啼处。寒入罗衣春尚浅,过一番风雨。问燕子来

时,绿水桥边路,曾画楼、见个人人否?料静掩云窗,尘满哀弦危柱。   

  

   庚信愁如许,为谁都著眉端聚。独立东风弹泪眼,寄烟波东去。念永昼春

闲,人倦如何度?闲傍枕、百转黄鹂语。唤觉来厌厌,残照依然花坞。    

瑞鹤仙 陆淞 

  脸霞红印枕,睡觉来、冠儿还是不整。屏闲麝煤冷,但眉峰压翠,泪珠弹

粉。堂深昼永,燕交飞、风帘露井。恨无人说与,相思近日,带围宽尽。  

  

   重省,残灯朱幌,淡月纱窗,那时风景。阳台路迥,云雨梦,便无准。待

归来,先指花梢教看,欲把心期细问。问因循过了青春,怎生意稳?     

卜算子 陆游 

驿外断桥边,寂寞开无主。已是黄昏独自愁,更著风和雨。

  

无意苦争春,一任群芳妒。零落成泥碾作尘,只有香如故。 

水龙吟 陈亮 

  闹花深处楼台,画帘半卷东风软。春归翠陌,平莎茸嫩,垂杨金浅。迟日

催花,淡云阁雨,轻寒轻暖。恨芳菲世界,游人未赏,都付与莺和燕。   

  

   寂寞凭高念远,向南楼、一声归雁。金钗斗草,青丝勒马,风流云散。罗

绶分香,翠绡封泪,几多幽怨?正消魂又是,疏烟淡月,子规声断。     

忆秦娥 范成大 

楼阴缺,阑于影卧东厢月。东厢月,一天风露,杏花如雪。 

  

隔烟催漏金叫咽,罗帏黯淡灯花结。灯花结,片时春梦,江南天阔。 

眼儿媚 范成大

  

萍乡道中乍晴,卧舆中困甚,小憩柳塘。 

酣酣日脚紫烟浮,妍暖破轻裘。困人天色,醉人花气,午梦扶头。

  

春慵恰似春塘水,一片彀纹愁。溶溶曳曳,东风无力,欲避还休。 

霜天晓角 范成大 

晚晴风歇,一夜春威折。脉脉花疏天淡,云来去,数枝雪。 

  

胜绝,愁亦绝。此情谁共说。惟有两行低雁,知人倚、画楼月。 

贺新郎辛弃疾

  

别茂嘉十二弟 

  绿树听鹈鴂,更那堪、鹧鸪声住,杜鹃声切!啼到春归无寻处,苦恨芳菲

都歇。算未抵人间离别:马上琵琶关塞黑,更长门、翠辇辞金阙。看燕燕,送

归妾。                               

   将军百战声名裂,向河梁、回头万里,故人长绝。易水萧萧西风冷,满座

衣冠似雪,正壮士悲歌未徹。啼鸟还知如许恨,料不啼清泪长啼血。谁共我,

醉明月!                               

念奴娇 辛弃疾

  

书东流村壁 

  野棠花落,又匆匆、过了清明时节。剗地东风期客梦,一枕云屏寒怯。曲

岸持觞,垂杨系马,此地曾轻别。楼空人去,旧游飞燕能说。       

  

   闻道绮陌东头,行人长见,帘底纤纤月。旧恨春江流不尽,新恨云山千叠。

料得明朝,尊前重见,镜花难折。也应惊问,近来多少华发?        

汉宫春 辛弃疾

  

立 春 

  春已归来,看美人头上,袅袅春幡。无端风雨,未肯收尽馀寒。年时燕子,

料今宵梦到西园。浑未辨、黄柑荐酒,更传青韭堆盘。          

  

   却笑东风,从此便熏梅染柳,更传些闲。闲时又来镜里,转变朱颜。清愁不

断,问何人会解连环。生怕见、花开花落,朝来塞雁先还。         

贺新郎 辛弃疾 

  凤尾龙香拔。自开元、霓裳曲罢,几番风月。最苦浔阳江头客,画舸亭亭

待发。记出塞、黄云堆雪。马上离愁三万里,望昭阳、宫殿孤鸿没,弦解语,

恨难说。                              

  

   辽阳驿使音尘绝,琐窗寒、轻拢慢捻,泪珠盈睫。推手含情还却手,一抹

梁州哀彻。千古事云飞烟灭。贺老定场无消息,想沉香亭北繁华歇,弹到此,

为呜咽。                               

水龙吟 辛弃疾

  

登建康赏心亭 

  楚天千里清秋,水随天去秋无际。遥岑远目,献愁供恨,玉簪螺髻。落日

楼头,断鸿声里,江南游子。把吴钩看了,阑干拍遍,无人会、登临意。  

  

   休说鲈鱼堪脍,尽西风,季鹰归未?求田问舍,怕应羞见,刘郎才气。可

惜流年,忧愁风雨,树犹如此。倩何人唤取,红巾翠袖,揾英雄泪!     

摸鱼儿 辛弃疾 

  更能消、几番风雨,匆匆春又归去。惜春长怕花开早,何况落红无数。春

且住!见说道天涯芳草无归路。怨春不语,算只有殷勤,画檐蛛网,终日惹飞

絮。

  

   长门事,准拟佳期又误,蛾眉曾有人妒。千金纵买相如赋,脉脉此情谁诉?

君莫舞!君不见、玉环飞燕皆尘土。闲愁最苦,休去倚危阑,斜阳正在,烟柳

断肠处。                               

永遇乐 辛弃疾

  

京口北固亭怀古 

  千古江山,英雄无觅、孙仲谋处。舞榭歌台,风流总被、雨打风吹去。斜

阳草树,寻常巷陌,人道寄奴曾住。想当年,金戈铁马,气吞万里如虎。  

  

   元嘉草草,封狼居胥,赢得仓皇北顾。四十三年,望中犹记、灯火扬州路。

可堪回首、佛狸祠下,一片神鸦社鼓。凭谁问,廉颇老矣,尚能饭否?    

木兰花慢 辛弃疾

  

滁州送范倅 

  老来情味减,对别酒,怯流年。况屈指中秋,十分好月,不照人圆。无情

水,都不管,共西风、只管送归船。秋晚莼鲈江上,夜深儿女灯前。    

  

   征衫,便好去朝天。玉殿正思贤。想夜半承明,留教视草,却遣筹边。长

安故人问我,道愁肠殢酒只依然。目断秋霄落雁,醉来时响空弦。      

祝英台近 辛弃疾

  

晚 春 

  宝钗分,桃叶渡,烟柳暗南浦。怕上层楼,十日九风雨。断肠片片飞红,

都无人管,更谁劝、啼莺声住?                    

  

   髻边觑,应把花卜归期,才簪又重数。罗帐灯昏,哽咽梦中语。是他春带

愁来,春归何处?却不解、带将愁去。                  

青玉案 辛弃疾

  

元 夕 

  东风夜放花千树,更吹落,星如雨。宝马雕车香满路,凤箫声动,玉壶光

转,一夜鱼龙舞。                          

  

   蛾儿雪柳黄金缕,笑语盈盈暗香去。众里寻他千百度,蓦然回首,那人却

在,灯火阑珊处。                           

鹧鸪天 辛弃疾

  

鹅湖归病起作 

枕箪溪堂冷欲秋,断云依水晚来收。红莲相倚浑如醉,白鸟无言定自愁。

  

书咄咄,且休休,一丘一壑也风流。不知筋力衰多少,但觉新来懒上楼。 

菩萨蛮 辛弃疾

  

书江西造口壁 

郁孤台下清江水,中间多少行人泪。西北是长安,可怜无数山。

  

青山遮不住,毕竟东流去。江晚正愁余,山深闻鹧鸪。 

点绛唇 姜夔

  

丁未冬,过吴松作 

燕雁无心,太湖西畔随云去。数峰清苦,商略黄昏雨。 

  

第四桥边,拟共天随住。今何许?凭栏怀古,残柳参差舞。 

鹧鸪天 姜夔

  

元夕有所梦 

肥水东流无尽期,当初不合种相思。梦中未比丹青见,暗里忽惊山鸟啼。

  

春未绿,鬓先丝,人间别久不成悲。准教岁岁红莲夜,两处沉吟各自知。 

踏莎行 姜夔 

燕燕轻盈,莺莺娇软,分明又向华胥见。夜长争得薄情知?春初早被相识染。

  

别后书辞,别时针线,离魂暗逐郎行远。淮南皓月冷千山,冥冥归去无人管。 

庆宫春 姜夔 

  双桨莼波,一蓑松雨,暮愁渐满空阔。呼我盟鸥,翩翩欲下,背人还过木

末。那回归去,荡云雪、孤舟夜发。伤心重见,依约眉山,黛痕低压。   

  

   采香径里春寒,老子婆娑,自歌谁答?垂虹西望,飘然引去,此兴平生难

遏。酒醒波远,正凝想、明珰素袜。如今安在?惟有阑干,伴人一霎。    

齐天乐 姜夔 

  庚郎先自吟愁赋,凄凄更闻私语。露湿铜铺,苔侵石井,都是曾听伊处。

正思妇无眠,起寻机杼。曲曲屏山,夜凉独自甚情绪?          

  

   西窗又吹暗雨,为谁频断续,相和砧杵?候馆迎秋,离宫吊月,别有伤心

无数。豳诗漫与,笑篱落呼灯,世间儿女。写入琴丝,一声声更苦。

琵琶仙 姜夔 

  双桨来时,有人似、旧曲桃叶。歌扇轻约飞花,蛾眉正奇绝。春渐远,汀

洲自绿,更添了、几声啼鴂。十里扬州,三生杜牧,前事休说。      

  

   又还是、宫烛分烟,奈愁里匆匆换时节。都把一襟芳思,与空阶榆荚。千

万缕、藏鸦细柳,为玉尊、起舞回雪。想见西出阳关,故人初别。      

八 归 姜夔

  

湘中送胡德华 

  芳莲坠粉,疏桐吹绿,庭院暗雨乍歇。无端抱影销魂处,还见篠墙萤暗,

藓阶蛩切。送客重寻西去路,问水面、琵琶谁拔?最可惜一片江山,总付与啼

鴂。

  

   长恨相逢未款,而今何事,又对西风离别?渚寒烟淡,棹移人远,漂渺行

舟如叶。想文君望久,倚竹愁生步罗袜。归来后翠尊双饮,下了珠帘,玲珑闲看

月。 

念奴娇 姜夔 

  闹红一舸,记来时尝与鸳鸯为侣。三十六陂人未到,水佩风裳无数。翠叶

吹凉,玉容销酒,更洒菰蒲雨。嫣然摇动,冷香飞上诗句。        

  

   日暮青盖亭亭,情人不见,争忍凌波去?只恐舞衣寒易落,愁入西凤南浦。

高柳垂阴,老鱼吹浪,留我花间住。田田多少,几回沙际归路。       

扬州慢 姜夔 

  淮左名都,竹西佳处,解鞍少驻初程。过春风十里,尽荠麦青青。自胡马

窥江去后,废池乔木,犹厌言兵。渐黄昏、清角吹寒,都在空城。     

  

   杜郎俊赏,算而今、重到须惊。纵豆蔻词工,青楼梦好,难赋深情。二十

四桥仍在,波心荡、冷月无声。念桥边红药,年年知为谁生?        

长亭怨慢 姜夔

  

中吕宫 

  予颇喜自制曲,初率意为长短句,然后协以律,故前後阕多不同。桓大司

马云「昔年种柳,依依汉南,今看摇落,凄怆江潭,树犹如此,人何以堪」。

此语予深爱之。                           

  

   渐吹尽,枝头香絮,是处人家,绿深门户。远浦萦回,暮帆零乱向何许?

阅人多矣,谁得似长亭树?树若有情时,不会得青青如此!        

  

   日暮,望高城不见,只见乱山无数。韦郎去也,怎忘得玉箫分付。第一是

早早归来,怕红萼无人为主。算空有并刀,难剪离愁千缕。 

淡黄柳 姜夔 

  客居合肥南城赤阑桥之西,巷陌凄凉与江左异,唯柳色夹道,依依可怜。

因度此阕,以纾客怀。                        

  

  空城晓角,吹入垂杨陌。马上单衣寒恻恻。看尽鹅黄嫩绿,都是江南旧相识。

  

  正岑寂,明朝又寒食。强携酒、小桥宅,怕梨花落尽成秋色。燕燕飞来,问

春何在?惟有池塘自碧。 

暗 香 姜夔 

  旧时月色,算几番照我,梅边吹笛?唤起玉人,不管清寒与攀摘。何逊而

今渐老,都忘却春风词笔。但怪得竹外疏花,香冷入瑶席。        

  

   江国,正寂寂,叹寄与路遥,夜雪初积。翠尊易泣,红萼无言耿相忆。长

记曾携手处,千树压、西湖寒碧。又片片吹尽也,几时见得?        

疏 影 姜夔 

  苔枝缀玉,有翠禽小小,枝上同宿。客里相逢,篱角黄昏,无言自倚修竹。

昭君不惯胡沙远,但暗忆、江南江北。想佩环、月夜归来,化作此花幽独。 

  

   犹记深宫旧事,那人正睡里,飞近蛾绿。莫似春风,不管盈盈,早与安排

金屋。还教一片随波去,又却怨、玉龙哀曲。等恁时、重觅幽香,已入小窗横

幅。 

翠楼吟 姜夔 

  月冷龙沙,尘清虎落,今年汉酺初赐。新翻胡部曲,听毡幕元戎歌吹。层

楼高峙,看槛曲萦红,檐牙飞翠。人姝丽,粉香吹下,夜寒风细。     

  

   此地宜有词仙,拥素云黄鹤,与君游戏。玉梯凝望久,但芳草萋萋千里。

天涯情味,仗酒祓清愁,花消英气。西山外,晚来还卷,一帘秋霁。     

杏花天 姜夔 

绿丝低拂鸳鸯浦,想桃叶,当时唤渡。又将愁眼与春风,待去,倚兰桡更少驻。

  

金陵路,莺吟燕舞。算潮水知人最苦。满汀芳草不成归,日暮,更移舟向甚处? 

一萼红 姜夔 

  古城阴,有官梅几许,红萼未宜簪。池面冰胶,墙腰雪老,云意还又沉沉。

翠藤共闲穿径竹,渐笑语、惊起卧沙禽。野老林泉,故王台榭,呼唤登临。 

  

   南去北来何事,荡湘云楚水,目极伤心。朱户黏鸡,金盘簇燕,空叹时序

侵寻。记曾共西楼雅集,想垂柳、还袅万丝金。待得归鞍到时,只怕春深。  

霓裳中序第一 姜夔 

  亭皋正望极,乱落江莲归未得。多病却无气力,况纨扇渐疏,罗衣初索。

流光过隙,叹杏梁双燕如客。 人何在?一帘淡月,仿佛照颜色。     

  

   幽寂,乱蛩吟壁,动庚信清愁似织。沉思年少浪迹,笛里关山,柳下坊陌。

坠红无信息,漫暗水、涓涓溜碧。飘零久,而今何意,醉卧酒垆侧! 

小重山 章良能 

柳暗花明春事深,小阑红芍药,已抽簪。雨馀风软碎鸣禽,迟迟日,犹带一分阴。

  

往事莫沉吟,身闲时序好、且凳临。旧游无处不堪寻,无寻处、惟有少年心。 

唐多令 刘过 

  芦叶满汀洲,寒沙带浅流。二十年重过南楼。柳下系船犹未稳,能几日,

又中秋。

  

   黄鹤断矶头,故人曾到否?旧江山浑是新愁。欲买桂花同载酒,终不似,

少年游。 

木兰花 严仁 

春风只在园西畔,荠菜花繁胡蝶乱。冰池晴绿照还空,香径落红吹已断。

  

意长翻恨游丝短,尽日相思罗带缓。宝奁如月不欺人,明日归来君试看。 

风入松 俞国宝 

  一春长费买花钱,日日醉湖边。玉骢惯识西湖路,骄嘶过、沽酒楼前。红

杏香中箫鼓,绿杨影里秋千。

  

   暖风十里丽人天,花压鬓云偏。画船载取春归去,余情付、湖水湖烟。明

日重扶残醉,来寻陌上花钿。 

满庭芳 张镃

  

促织儿 

  月洗高梧,露溥幽草,宝钗楼外秋深。土花沿翠,萤火坠墙阴。静听寒声

断续,微韵转,凄咽悲沉。争求侣、殷勤劝织,促破晓机心。       

  

   儿时曾记得,呼灯灌穴,敛步随音。任满身花影,独自追寻。携向华堂戏

斗。亭台小笼巧妆金。今休说,从渠床下,凉夜伴孤吟。          

宴山亭 张镃 

  幽梦初回,重阴未开,晓色催成疏雨。竹槛气寒,蕙畹声摇,新绿暗通南

浦。未有人行,才半启回廊朱户。无绪,空望极霓旌,锦书难据。     

  

   苔径追忆曾游,念谁伴秋千,彩绳芳柱。犀帘黛卷,凤枕云孤,应也几番

凝伫。怎得伊来,花雾绕、小堂深处。留住,直到老不教归去。       

绮罗香 史达祖

咏春雨 

  做冷欺花,将烟困柳,千里偷催春暮。尽日冥迷,愁里欲飞还住。惊粉重

蝶宿西园,喜泥润、燕归南浦。最妨她佳约风流,钿车不到杜陵路。    

  

   沉沉江上望极,还被春潮晚急,难寻官渡。隐约遥峰,和泪谢娘眉妩。临

断岸、新绿生时,是落红、带愁流处。记当日门掩梨花,剪灯深夜语。    

双双燕 史达祖

  

咏 燕 

  过春社了,度帘幕中间,去年尘冷。差池欲住,试入旧巢相并。还相雕梁

藻井,又软语商量不定。飘然快拂花梢。翠尾分开红影。         

  

   芳径,芹泥雨润。爱贴地争飞,竞夸轻俊。红楼归晚,看足柳昏花暝。应

自栖香正稳,便忘了天涯芳信。愁损翠黛双蛾,日日画阑独凭。       

东风第一枝 史达祖

  

春雪 

  巧沁兰心,偷粘草甲,东风欲障新暖。漫疑碧瓦难留,信知暮寒犹浅。行

天入境,做弄出、轻松纤软。料故园、不卷重帘,误了乍来双燕。     

  

   青未了、柳回白眼,红欲断、杏开素面。旧游忆著山阴,后盟遂妨上苑。

寒炉重熨,便放漫春衫针线。怕凤靴挑菜归来,万一灞桥相见。       

喜迁莺 史达祖 

  月波疑滴,望玉壶天近,了无尘隔。翠眼圈花,冰丝织练,黄道宝光相直。

自怜诗酒瘦,难应接许多春色。最无赖,是随香趁烛,曾伴狂客。     

  

   踪迹,漫记忆,老了杜郎,忍听东风笛。柳院灯疏,梅厅雪在,谁与细倾

克碧?旧情拘未定,犹自学当年游历,怕万一,误玉人夜寒帘隙。      

三姝媚 史达祖 

  烟光摇缥瓦,望晴檐多风,柳花如洒。锦瑟横床,想泪痕尘影,凤弦常下。

倦出犀帷,频梦见、王孙骄马。讳道相思,偷理绡衩。          

  

   惆怅南楼遥夜,记翠箔张灯,枕肩歌罢。又入铜驼,遍旧家门巷,首询声

价。可惜东风,将恨与闲花俱谢。记取崔徵模样。归来暗写。        

秋霁 史达祖 

  江水苍苍,望倦柳愁荷,共感秋色。废阁先凉,古帘空暮,雁程最嫌风力。

故园信息,爱渠入眼南山碧。念上国,谁是、脍鲈江汉未归客。

  

   还又岁晚、瘦骨临风,夜闻秋声,吹动岑寂。露蛩悲、青灯冷屋,翻书愁

上鬓毛白。年少俊游浑断得,但可怜处,无奈苒苒魂惊,采香南浦,剪梅烟驿。 

夜合花 史达祖 

  柳锁莺魂,花翻蝶梦,自知愁染潘郎。轻衫未揽,犹将泪点偷藏。忘前事,

怯流光,早春窥、酥雨池塘。向消凝里,梅开半面,情满徐妆。      

  

   风丝一寸柔肠,曾在歌边惹恨,烛底萦香。芳机瑞锦,如何未织鸳鸯。人

扶醉,月依墙,是当初、谁敢疏狂!把闲言语,花房夜久,各自思量。    

玉胡蝶 史达祖 

  晚雨未摧宫树,可怜闲叶,犹抱凉蝉。短景归秋,吟思又接愁边。漏初长、

梦魂难禁,人渐老、风月俱寒。想幽欢土花庭甃,虫网阑干。       

  

   无端啼蛄搅夜,恨随团扇,苦近秋莲。一笛当楼,谢娘悬泪立风前。故园

晚强留诗酒,新雁远、不致寒暄。隔苍烟、楚香罗袖,谁伴婵娟。      

八 归 史达祖 

  秋江带雨,寒沙萦水,人瞰画阁愁独。烟蓑散响惊诗思,还被乱鸥飞去,

秀句难续。冷眼尽归图画上,认隔岸微茫云屋;想半属渔市樵村,欲暮竞然竹。

  

   须信风流未老,凭持尊酒,慰此凄凉心目。一鞭南陌,几篙官渡,赖有歌

眉舒绿。只匆匆残照,早觉闲愁挂乔木。应难奈故人天际,望彻淮山,相思无

雁足。 

生查子 刘克庄

  

元夕戏陈敬叟 

繁灯夺霁华,戏鼓侵明发。物色旧时同,情味中年别。

  

浅画镜中眉,深拜楼中月。人散市声收,渐入愁时节。 

贺新郎 刘克庄

  

端 午 

  深院榴花吐,画帘开、綀衣纨扇,午风清暑。儿女纷纷夸结束,新样钗符

艾虎。早已有游人观渡。老大逢场慵作戏,任陌头年少争旗鼓,溪雨急,浪花

舞。

  

   灵均标致高如许,忆生平、既纫兰佩,更怀椒醑。谁信骚魂千载后,波底

垂涎角黍。又说是、蛟馋龙怒。把似而今醒到了,料当年,醉死差无苦,聊一

笑。 

贺新郎 刘克庄

九 日 

  湛湛长空黑,更那堪、斜风细雨,乱愁如织。老眼平生空四海,赖有高楼

百尺。看浩荡千崖秋色。白发书生神州泪,尽凄凉不向牛山滴。追往事,去无

迹。

  

   少年自负凌云笔,到而今春华落尽,满怀萧瑟。常恨世人新意少,爱说南

朝狂客。把破帽年年拈出。若对黄花孤负酒,怕黄花也笑人岑寂。鸿去北,日西

匿。 

木兰花 刘克庄

戏林推 

年年跃马长安市,客舍似家家似寄。青钱换酒日无何,红烛呼卢宵不寐。

易挑锦妇机中字,难得玉人心下事。男儿西北有神州,莫滴水西桥畔泪。 

江城子 卢祖皋 

  画楼帘暮卷新晴,掩银屏,晓寒轻。坠粉飘香,日日唤愁生。暗数十年湖

上路,能几度,着娉婷。                       

   年华空自感漂零,拥春醒?天阔云闲,无处觅萧声。载酒买花年少事,浑

不似、旧心情。                            

宴清都 卢祖皋 

  春讯飞琼管,风日薄,度墙啼鸟声乱。江城次第,笙歌翠合,绮罗香暖。

溶溶涧渌冰泮,醉梦里,年华暗换。料黛眉,重锁隋堤,芳心还动梁苑。  

  

   新来雁阔云音,鸾分鉴影,无计重见。春啼细雨,笼愁淡月,恁时庭院。

离肠未语先断,算犹有凭高望眼。更那堪衰草边天,飞梅弄晚。       

南乡子 潘牥

  

题南剑州妓馆 

生怕倚阑干,阁下溪声阁外山。惟有旧时山共水,依然,暮雨朝云去不还。

  

应是蹑飞鸾,月下时时整佩环。月又渐低霜又下,更阑,折得梅花独自看。 

瑞鹤仙 陆壑 

  湿云粘雁影,望征唱片,愁迷离绪难整。千金买光景,但疏钟催晓,乱鸦

啼螟。花悰暗省,许多情,相逢梦境。便行云都不归来,也合寄将音信。  

  

   孤迥。盟鸾心在,跨鹤程高,后期无准。情丝等剪,翻若得旧时恨。怕天

教何处,参差双燕,还染残朱剩粉。对菱花与说相思,看谁瘦损?

渡江云 吴文英

西湖清明 

  羞经颦浅恨,晚风未落,片绣点重茵。旧堤分燕尾,桂棹轻鸥,宝勒倚残

云。千丝怨碧,渐路入、仙坞迷津。肠漫回,隔花时见、背面楚腰身。

  

   逡巡,题门惆怅,堕履牵萦。数幽期难准,还始觉留情缘眼,宽带因春。

明朝事与孤冷,做满湖风雨愁人。山黛暝,尘波澹绿无痕。 

夜合花 吴文英

白鹤江入京,泊葑门,有感。 

  柳暝河桥,莺清台苑,短策频惹春香。当时夜泊,温柔便入深乡。词韵窄,

酒杯长,剪蜡花、壶箭催忙。共追游处,凌波翠陌,连棹横塘。

  

   十年一梦凄凉,似西湖燕去,吴馆巢荒。重来万感,依前唤酒银罂。溪雨

急,岸花狂,趁残鸦飞过苍茫。故人楼上,凭谁指与芳草斜阳? 

霜叶飞 吴文英

重 九 

  断烟离绪,关心事,斜阳红隐霜树。半壶秋水荐黄花,香噀西风雨。纵玉

勒、轻飞迅羽,凄凉谁吊荒台古。记醉踏南屏,彩扇咽寒蝉,倦梦不知蛮素。

  

   聊对旧节传杯,尘管,断阕经岁慵赋。小蟾斜影转东篱,夜冷残蛩语。早

白发、缘愁万缕,惊从卷乌纱去,漫细将、茱萸看,但约明年,翠微高处。 

  

宴清都 吴文英

连理海棠 

  绣幄鸳鸯柱,红情密、腻云低护秦树。芳草兼倚,花梢钿合,锦屏人妒。

东风睡足交枝,正梦枕瑶钗燕股。障滟蜡、满照欢丛,蟾冷落羞度。

  

   人间万感幽单,华清惯浴,春盎风露。连鬟并暖,同心共结,向承恩处。

凭谁为歌长恨?暗殿锁、秋灯夜语。叙旧期、不负春盟,红朝翠暮。 

齐天乐 吴文英 

  烟波桃叶西陵路,十年断魂潮尾。古柳重攀,轻鸥聚别,陈迹危亭独倚。

凉飔乍起,渺烟碛飞帆,暮山横翠。但有江花,共临秋镜照憔悴。

  

   华堂烛暗送客,眼波回盼处,芳艳流水。素骨凝冰,柔葱蘸雪,犹忆分瓜

深意。清尊未洗,梦不湿行云,漫沾残泪。可惜秋宵,乱蛩疏雨里。 

花 犯 吴文英

  

郭希道送水仙索赋 

  小娉婷清铅素靥,蜂黄暗偷晕,翠翘攲鬓。昨夜冷中庭,月下相认,睡浓

更苦凄风紧。惊回心未稳,送晓色、一壶葱茜,才知花梦准。

  

   湘娥化作此幽芳,凌波路,古岸云沙遗恨。临砌影,寒香乱、冻梅藏韵。

熏炉畔、旋移傍枕,还又见、玉人垂绀鬓。料唤赏、清华池馆,台杯须满引。 

浣溪沙 吴文英 

门隔花深旧梦游,夕阳无语燕归愁,玉纤香动小帘钩。

  

落絮无声春堕泪,行云有影月含羞,东风临夜冷于秋。 

浣溪沙 吴文英 

波面铜花冷不收,玉人垂钓理纤钩,月明池阁夜来秋。

  

江燕话归成晓别,水花红减似春休,西风梧井叶先愁。 

点绛唇 吴文英

  

试灯夜初晴 

卷尽愁云,素娥临夜新梳洗。暗尘不起,酥润凌波地。 

  

辇路重来,仿佛灯前事。情如水,小楼熏被,春梦笙歌里。 

祝英台 吴文英

  

春日客龟溪游废园 

  采幽香,巡古苑,竹冷翠微路。斗草溪根,沙印小莲步。自怜两鬓清霜,

一年寒食,又身在云山深处。

  

   昼闲度,因甚天也悭春,轻阴便成雨?绿暗长亭,归梦趁风絮。有情花影

阑干,莺声门径,解留我霎时凝伫。 

祝英台 吴文英

除夜立春 

  剪红情,裁绿意,花信上钗股。残日东风,不放岁华去。有人添烛西窗,

不眠侵晓,笑声转新年莺语。

  

   旧尊俎,玉纤曾擘黄柑,柔香系幽素。归梦湖边,还迷镜中路。可怜千点

吴霜,寒消不尽,又相对落梅如雨。 

澡兰香 吴文英

  

淮安重午 

  盘丝系腕,巧篆垂簪,玉隐绀纱睡觉。银瓶露井,彩囗云窗,往事少年依

约。为当时曾写榴裙,伤心红绡褪萼。黍梦光阴,渐老汀洲烟箬。

  

   莫唱江南古调,怨抑难招,楚江沉魄。薰风燕乳,暗雨槐黄,午镜澡兰帘

幕。念秦楼、也拟人归,应剪菖蒲自酌。但怅望一缕新蟾,随人天角。 

风入松 吴文英 

  听风听雨过清明,愁草瘗花铭。楼前绿暗分携路,一丝柳、一寸柔情。料

峭春寒中酒,交加晓梦啼莺。

  

   西园日日扫林亭,依旧赏新晴。黄蜂频扑秋千索,有当时、纤手香凝。惆

怅双鸳不到,幽阶一夜苔生。 

莺啼序 吴文英

  

春晚感怀 

  残寒正欺病酒,掩沉香绣户。燕来晚、飞入西城,似说春事迟暮。画船载、

清明过却,晴烟冉冉吴宫树。念羁情、游荡随风,化为轻絮。

  

   十载西湖,傍柳系马,趁娇尘软雾。溯红渐、招入仙溪,锦儿偷寄幽素。倚

银屏春宽梦窄,断红湿、歌纨金缕。螟堤空,轻把斜阳,总还鸥鹭。

  

   幽兰旋老,杜若还生,水乡尚寄旅。别后访、六桥无信,事往花委,瘗玉埋

香,几番风雨。长波妒盼,遥山羞黛,渔灯分影克江宿。记当时、短楫桃根渡,

青楼仿佛。临分败壁题诗,泪墨惨淡尘土。

  

   危亭望极,草色天涯,叹鬓侵半苧。暗点检、离痕欢唾,尚染鲛绡,嚲凤

迷归,破鸾慵舞。殷勤待写,书中长恨,蓝霞辽海沉过雁。漫相思、弹入哀筝

柱。伤心千里江南,怨曲重招,断魂在否? 

惜黄花慢 吴文英 

  送客吴皋,正试霜夜冷,枫落长桥。望天不尽,背城渐杳,离亭黯黯,恨

水迢迢。翠香零落红衣老,暮愁锁,残柳眉梢。念瘦腰,沈郎旧日,曾系兰桡。

  

   仙人凤咽琼箫,怅断魂送远,九辩难招。醉鬟留盼,小窗剪烛,歌云载恨,

飞上银霄。素秋不解随船去,败红趁一叶寒涛。梦翠翘,怨鸿料过南谯。 

高阳台 吴文英 

  宫粉雕痕,仙云堕影,无人野水荒湾。西石埋香,金沙锁骨连环。南楼不

恨吹横笛,恨晓风千里关山。半飘零、庭上黄昏,月冷阑干。

  

   寿阳空理愁鸾,问谁调玉髓,暗补香瘢?细雨归鸿,孤山无限春寒。离魂

难倩招清些,梦缟衣解溪边。最愁人、啼鸟晴明,叶底清圆。 

高阳台 吴文英

丰乐楼分韵得“如”字 

  修竹凝妆,垂杨驻马,凭阑浅画成图。山色谁题?楼前有雁斜书。东风紧

送斜阳下,弄旧寒、晚酒醒馀。自消凝,能几花前,顿老相如?

  

   伤春有在高楼上,在灯前攲枕,雨外熏炉。怕舣船,临流可奈清臞?飞红

若到西湖底,搅翠澜、总是愁鱼。莫重来、吹尽香绵,泪满平芜。 

三姝媚 吴文英

过都城旧居有感 

  湖山经醉惯,渍春衫,啼痕酒痕无限。又客长安,叹断襟零袂,涴尘谁浣。

紫曲门荒,沿败井、风摇青蔓。对语东邻,犹是曾巢,谢堂双燕。

  

   春梦人间须断,但怪得当年,梦缘能短。绣屋秦筝,傍海棠偏爱,夜深开

宴。舞歇歌沉,花未减、红颜先变。伫久河桥欲去,斜阳泪满。 

八声甘州 吴文英

灵岩陪庾幕诸公游 

  渺空烟四远,是何年、青天坠长星。幻苍崖云树,名娃金屋,残霸宫城。

箭径酸风射眼,腻水染花腥。时靸双鸳响,廊叶秋声。

  

   宫里吴王沉醉,倩五湖倦客,独钓醒醒。问苍波无语,华发奈山青。水涵

空、阑干高处,送乱鸦、斜日落渔汀。连呼酒、上琴台去,秋与云平。 

踏莎行 吴文英 

润玉笼绡,檀樱倚扇,绣圈犹带脂香浅。榴心空叠舞裙红,艾枝应愁鬟乱。 

  

午梦千山,窗阴一箭,香凝瘢新褪红丝腕。隔江人在雨声中,晚风菰叶生秋怨。 

瑞鹤仙 吴文英 

  晴丝牵绪乱,对沧江斜日,花飞人远。垂杨暗吴苑,正旗亭烟冷,河桥风

暖。兰情蕙盼,惹相思、春根酒畔。又争知、吟骨萦消,渐把旧衫重剪。

  

   凄断流红千浪,缺月孤楼,总难留燕。歌尘凝扇,待凭信,拚分钿。试挑

灯欲写,还依不忍,笺幅偷和泪卷。寄残云剩雨蓬莱,也应梦见。 

鹧鸪天 吴文英

化度寺作 

池上红衣伴倚阑,栖鸦常带夕阳还。殷云度雨疏桐落,明月生凉宝扇闲。

  

乡梦窄,水天宽,小窗愁黛淡秋山。吴鸿好为传归信,杨柳阊门屋数间。 

夜游宫 吴文英 

  人去西楼雁杳,叙别梦、扬州一觉。云淡星疏楚山晓。听啼乌,立河桥,

话未了。

  

   雨外蛩声早,细织就霜丝多少?说与萧娘未知道。向长安,对秋灯,几

人老? 

贺新郎 吴文英

  

陪履斋先生沧浪看梅 

  乔木生云气。访中兴、英雄陈迹,暗追前事。战舰东风悭借便,梦断神州

故里。旋小筑、吴宫闲地,华表月明归夜鹤,叹当时、花竹今如此,枝上露,

溅清泪。

  

   遨头小簇行春队,步苍苔、寻幽别墅,问梅开未?重唱梅边新度曲,催发

寒梢冻蕊。此心与东君同意,后不如今今非昔,两无言相对沧浪水,怀此恨,

寄残醉。 

唐多令 吴文英 

  何处合成愁?离人心上秋,纵芭蕉、不雨也飕飕。都道晚凉天气好,有明

月,怕登楼。

  

   年事梦中休,花空烟水流,燕辞归、客尚淹留。垂柳不萦裙带住,漫长是

系行舟。 

湘春夜月 黄孝迈 

  近清明,翠禽枝上消魂。可惜一片清歌,都付与黄昏。欲共柳花低诉。怕

柳花轻薄,不解伤春。衾楚乡旅宿,柔情别绪,谁与温存?

  

   空尊夜泣,青山不语,残照当门。翠玉楼前,惟是有、一陂湘水,摇荡湘

云。天长梦短,问甚时重见桃根?这次第、算人间没个并刀,剪断心上愁痕。 

大 有 潘希白

  

九 日 

  戏马台前,采花篱下,问岁华、还是重九。恰归来、南山翠色依旧。帘栊

昨夜听风雨,都不似登临时候。一片宋玉情怀,十分卫郎清瘦。红萸佩,空对

酒。

  

   砧杵动微寒,暗欺罗袖。秋已无多,早是败荷衰柳。强整帽檐攲侧,曾经

向天涯搔首。几回忆、故国莼鲈,霜前雁后。 

青玉案 黄公绍 

  年年社日停针线,怎忍见、双飞燕?今日江城春已半,一身犹在,乱山深

处,寂寞溪桥畔。

  

   春衫著破谁针线?点点行行泪痕满。落日解鞍芳草岸,花无人戴,酒无人

劝,醉也无人管。 

摸鱼儿 朱嗣发 

  对西风、鬓摇烟碧,参差事流水。紫丝罗带鸳鸯结,的的镜盟钗誓。浑不

记,漫手织回文,几度欲心碎。安花著叶,奈雨覆云翻,情宽分窄,石上玉簪

脆。

  

   朱楼外,愁压空云欲坠,月痕犹照无寐。阴晴也只随天意,枉了玉消香碎。

君且醉,君不见、长门青草春风泪。一时左计,悔不早荆钗,暮天修竹,头白

倚寒翠。 

兰陵王 刘辰翁

丙子送春 

  送春去,春去人间无路。秋千外,芳草连天,谁谴风沙暗南浦。依依甚意

绪?漫忆海门飞絮。乱鸦过、斗转城荒,不见来时试灯处。

  

   春去谁最苦?但箭雁沉边,梁燕无主,杜鹃声里长门暮。想玉树凋土,泪

盘如露。咸阳送客屡回顾,斜日未能度。

  

   春去,尚来否?正江令恨别,庚信愁赋,苏堤尽日风和雨。叹神游故国,

花记前度。人生流落,顾孺子,共夜语。 

宝鼎现 刘辰翁 

  红妆春骑,踏月影竿旗穿市。望不尽、楼台歌舞,习习香尘莲步底。箫声

断、约彩鸾归去,未怕金吾呵醉。甚辇路、喧阗且止,听得念奴歌起。父老犹

记宣和事,抱铜仙、清泪如水。还转盼、沙河多丽。

  

   滉漾明光连邸第,帘影冻、散红光成绮。月浸葡萄十里,看往来,神仙才

子,肯把菱花扑碎。肠断竹马儿童,空见说、三千乐指。等多时春不归来,到

春时欲睡。又说向灯前拥髻,暗滴鲛珠坠。便当日亲见霓裳,天上人间梦里。 

永遇乐 刘辰翁 

  壁月初晴,黛云远淡,春事谁主?禁苑娇寒,湖堤倦暖,前度遽如许。香

尘暗陌,华灯明昼,长是懒携去。谁知道、断烟禁夜,满城似愁风雨。

  

   宣和旧日,临安南渡,芳景犹自如故。细帙离离,风鬟三五,能赋词最苦。

江南无路,鄜州今夜,此苦又谁知否?空相对公、残釭无寐,满村社鼓。 

摸鱼儿 刘辰翁

  

酒边留同年徐云屋 

  怎知他、春归何处?相逢且尽尊酒。少年袅袅天涯恨,长结西湖烟柳。休

回首,但细雨断桥,憔悴人归后。东风似旧,向前度桃花,刘郎能记,花复认

郎否?

  

   君且住,草草留君剪韭,前宵正恁时候。深杯欲共歌声滑,翻湿春衫半袖。

空眉皱,看白发尊前,已似人人有。临分把手,叹一笑论文,清狂顾曲,此会

几时又?

高阳台 周密

  

送陈君衡被召 

  照野旌旗,朝天车马,平沙万里天低。宝带金章,尊前茸风欺。秦关汴水

经行地,想登临都付新诗。纵英游、叠鼓清笳,骏马名姬。        

  

   酒酣应对燕山雪,正冰河月冻,晓陇云飞。投老残年,江南谁念方回?东

风渐绿西湖岸,雁已还人未南归。归关情、折尽梅花,难寄相思。      

瑶华 周密 

  朱钿宝囗,天上飞琼,比人间春别。江南北上,终未见、漫拟梨云梅雪。

淮山春晚,问谁识、芳心高洁?消几番、花落花开,老了玉关豪杰。    

  

   金壶剪送琼枝,看一骑红尘,香度瑶阙。韶华正好,应自喜、初乱长安蜂

蝶。杜郎老矣,想旧事花须能说。记少年一梦扬州,二十四桥明月。     

玉京秋 周密 

  烟水阔,高林弄残照,晚蜩凄切。碧砧度韵,银床飘叶。衣湿桐阴露冷,

采凉花时赋秋雪。叹轻别,一襟幽事,砌虫能说。            

  

   客思吟商还怯,怨歌长、琼壶暗缺。翠扇恩疏,红衣香褪,翻成消歇。玉

骨西风,恨最恨、闲却新凉时节。楚箫咽,谁寄西楼淡月。         

曲游春 周密 

  禁苑东风外,囗暖丝晴絮,春思如织。燕约莺期,恼芳情偏在,翠深红隙。

漠漠香尘隔,沸十里、乱丝丛笛。                   

  

   看画船尽入西冷,闲却半湖春色。柳陌,新烟凝碧。映帘底宫眉,堤上游

勒。轻蝶怨良宵岑寂。正满湖碎月摇花,怎生去得?            

花 犯 周密 

水仙花 

  楚江湄,湘娥再见,无言洒清泪,淡然春意。空独倚东风,芳思谁寄?凌

波路冷秋无际。                           

  

   香云随步起,漫记得、汉宫仙掌,亭亭明月底。冰丝写怨更多情,骚人恨

枉赋芳兰幽芷。春思远,谁叹赏国香风味?相露,一枝灯影里。       

瑞鹤仙 蒋捷

  

乡城见月 

  绀烟迷雁迹,渐碎鼓零钟,街喧初息。风檠背寒壁,放冰蟾,飞到蛛丝帘

隙。琼瑰暗泣,念乡关、霜华似织。漫将身、化鹤归来,忘却旧游端的。  

  

   欢极蓬壶蕖浸,花院梨溶,醉连春夕。柯云罢弈,樱桃在,梦难觅。劝清

光、乍可幽窗相照,休照红楼夜笛。怕人间、换谱伊凉,素娥未识。     

贺新郎 蒋捷 

  梦冷黄金屋。叹秦筝、斜鸿阵里,素弦尘扑。化作娇莺飞归去,犹认纱窗

旧绿。正过雨、荆桃如菽。此恨难平君知否?似琼台、涌起弹棋局。消瘦影,

嫌明烛。

  

   鸳楼碎泻东西玉。问芳踪、何时再展?翠钗难卜。待把宫眉横云样,描上

生绡画幅。怕不是新来妆束。彩扇红牙今都在,恨无人解听开元曲。空掩袖,

倚寒竹。 

女冠子 蒋捷

元 夕 

  蕙花香也,雪晴池馆如画。春风飞到,宝钗楼上,一片笙箫,琉璃光射。

而今灯漫挂,不是暗尘明月,那时元夜。况年来、心懒意怯,羞与蛾儿争耍。

  

   江城人悄初更打,问繁华谁解,再向天公借?剔残红灺,但梦里隐隐,钿

车罗帕。吴笺银粉砑,待把旧家风景,写成闲话。笑绿鬟邻女,倚窗犹唱,夕

阳西下。                               

高阳台 张炎

  

西湖春感 

  接叶巢莺,平波卷絮,断桥斜日归船。能几番游?看花又是明年。东风且

伴蔷薇住,到蔷薇、春已堪怜。更凄然,万绿西冷,一抹荒烟。      

  

   当年燕子知何处?但苔深韦曲,草暗斜川。见说新愁,如今也到鸥边。无

心再续笙歌梦,掩重门、浅醉闲眠。莫开帘,怕见飞花,怕听啼鹃。     

渡江云 张炎 

  山空天入海,倚楼望极,风急暮潮初。一帘鸠外雨,几处闲田,隔水动春

锄。新烟禁柳,想如今、绿到西湖。犹记得、当年深隐,门掩两三株。   

  

   愁余,荒洲古溆,断梗疏萍,更漂流何?空自觉围羞带减,影怯烟孤。长

疑即见桃花面,甚近来翻无书。书纵远,如何梦也都无。          

八声甘州 张炎 

  记玉关、踏雪事清游,寒气脆貂裘。傍枯林古道,长河饮马,此意悠悠。

短梦依然江表,老泪洒西州。一字列题处,落叶都愁。          

  

   载取白云归去,问谁留楚佩,弄影中洲?折芦花赠远,零落一身秋。向寻

常、野桥流水,待招来、不是旧沙鸥。空怀感,有斜阳处,却怕登楼。    

解连环 张炎

孤 雁 

  楚江空晚,恨离群万里,恍然惊散。自顾影、却下寒塘,正沙净草枯,水

平天远。写不成书,只寄得相思一点。料因循误了,残毡拥雪,故人心眼。 

  

   谁怜旅愁荏苒,漫长门夜悄,锦筝弹怨,想伴侣、犹宿芦花,也曾念春前,

去程应转。暮雨相呼,怕蓦地、玉关重见。未羞他、双燕归来,画帘半卷。  

疏影 张炎

  

咏荷叶 

  碧圆自洁,向浅洲远浦,亭亭清绝。犹有遗簪,不展秋心,能卷几多炎热?

鸳鸯密语同倾盖,且莫与、浣纱人说。恐怨歌、忽断花风,碎却翠云千叠。 

  

   回首当年汉舞,怕飞去漫皱,留仙裙折。恋恋青衫,犹染枯香,还叹鬓丝

飘雪。盘心清露如铅水,又一夜西风吹折。喜净看、匹练飞光,倒泻半湖明月。 

月下笛 张炎 

  万里孤云,清游渐远,故人何处?寒窗梦里,犹记经行旧时路。连昌约略

无多柳,第一是难听夜雨。漫惊回凄悄,相看烛影,拥衾无语。      

  

   张绪归何暮?半零落依依,断桥鸥鹭。天涯倦旅,此时心事良苦。只愁重

洒西州泪,问杜曲人家在否?恐翠袖天寒,犹倚梅花那树。         

天香 王沂孙

  

龙涎香 

  孤峤蟠烟,层涛蜕月,骊宫夜采铅水。汛远槎风,梦深薇露,化作断魂心

字。红磁候火,还乍识、冰环玉指。一缕萦帘翠影,依稀海天云气。    

  

   几回殢娇半醉,剪春灯、夜寒花碎。更好故溪飞雪,小窗深闭。荀令如今

顿老,总忘却、尊前旧风味。漫惜馀薰,空篝素被。            

眉 妩 王沂孙

  

新 月 

  渐新痕悬柳,淡彩穿花,依约破初暝。便有团圆意,深深拜,相逢谁在香

径?画眉未稳,料素娥、犹带离恨。最堪爱、一曲银钩小,宝奁挂秋冷。  

  

   千古盈亏休问,叹慢磨玉斧,难补金镜。太液池犹在,凄凉处、何人重赋

清景?故山夜水,试待他、窥户端正。看云外山河,还老桂花旧影。     

齐天乐 王沂孙

  

蝉 

  一襟馀恨宫魂断,年年翠阴庭树。乍咽凉柯,还移暗叶,重把离愁深诉。

西窗过雨,怪瑶佩流空,玉筝调柱。                  

  

   镜暗妆残,为谁娇鬓尚如许?铜仙铅泪,似斜阳几度?馀音更苦,甚独抱

清商,顿成凄楚。漫想熏风,柳丝千万缕。                

长亭怨慢 王沂孙

  

重过中庵故园 

  泛孤艇东皋过遍,尚记当日,绿阴门掩。屐齿莓苔,酒痕罗袖事何限?欲

寻前迹,空惆怅成秋苑。自约赏花人,别后总风流云散。         

  

   水远,怎知流水外,却是乱山尤远。天涯梦短,想忘了绮疏雕槛。望不尽

冉冉斜阳,抚乔木年华将晚。但数点红英,犹识西园凄婉。         

高阳台 王沂孙

  

和周草窗寄越中诸友韵 

  残雪庭阴,轻寒帘影,霏霏玉管春葭。小帖金泥,不知春是谁家?相思一

夜窗前梦,奈个人、水隔天遮。但凄然,满树幽香,满地横斜。      

  

   江南自是离愁苦,况游骢古道,归雁平沙。怎得银笺,殷勤说与年华。如

今处处生芳草,纵凭高、不见天涯。更消他,几度东风,几度飞花。     

法曲献仙音 王沂孙

  

聚景亭梅次草窗韵 

  层绿峨峨,纤琼皎皎,倒压波痕清浅。过眼年华,动人幽意,相逢几番春

换。记唤酒寻芳处,盈盈褪妆晚。                   

  

   已消黯,况凄凉近来离思,应忘却明月,夜深归辇。荏苒一枝春,恨东风

人似天远。纵有残花,洒征衣、铅泪都满。但殷鄞折取,自遗一襟幽怨。   

疏 影 彭元逊

  

寻梅不见 

  江空不渡,恨蘼芜杜若,零落无数。远道荒寒,婉娩流年,望望美人迟暮。

风烟雨雪阴晴晚,更何须春风千树。尽孤城、落木萧萧,日夜江声流去。  

  

   日晏山深闻笛,恐他年流落,与子同赋。事阔心违,交淡媒劳,蔓草沾衣多

露。汀洲窈窕馀醒寐,遗佩环、浮沉澧浦。有白鸥淡月微波,寄语逍遥容与。 

六丑 彭元逊

  

杨 花 

  似东风老大,那复有当时风气。有情不收,江山身是寄,浩荡何世?但忆

临官道,暂来不住,便出门千里。痴心指望回风坠,扇底相逢,钗头微缀。他

家万条千缕,解遮亭障驿,不隔江水。瓜洲曾檥,等行人岁岁。日下长秋,城

乌夜起。                              

   

   帐庐好在春睡,共飞归湖上,草青无地。愔愔雨、春心如腻、欲待化、丰

乐楼前帐饮,青门都废。何人念、流落无几。点点抟作雪绵松润,为君囗泪。

紫萸香慢姚云文 近重阳、偏多风雨,绝怜此日暄明。问秋香浓未,待携客、

出西城。                              

   

   正自羁怀多感,怕荒台高处,更不胜情。向尊前又忆、漉酒插花人,只座

上已无老兵。凄清,浅醉还醒。愁不肯、与诗平。记长楸走马,雕弓笮柳,前

事休评。紫萸一枝传赐,梦谁到、汉家陵。尽乌纱、便随风去,要天知道,华

发如此星星,歌罢涕零。                        

金明池 僧挥 

  天阔云高,溪横水远,晚日寒生轻晕。闲阶静、杨花渐少,朱门掩、莺声

犹嫩。悔匆匆、过却清明,旋占得、馀芳已成幽恨。却几日阴沉,连宵慵困,

起来韶华都尽。                           

  

   怨入双眉闲斗损,乍品得情怀,看承全近。深深态、无非自许,厌厌意、

终羞人问。争知道、梦里蓬莱,待忘了馀香,时传音信。纵留得莺花,东风不

住,也则眼前愁闷。                          

凤凰台上忆吹箫 李清照 

  香冷金猊,被翻红浪,起来慵自梳头。任宝奁尘满,日上帘钩。生怕离怀

别苦,多少事、欲说还休。新来瘦,非干病酒,不是悲秋。        

  

   休休,这回去也,千万遍阳关,也则难留。念武陵人远,烟锁秦楼。惟有

楼前流水,应念我、终日凝眸。凝眸处,从今又添,一段新愁。       

醉花阴 李清照 

薄雾浓云愁水昼,瑞脑消金兽。佳节又重阳,玉枕纱厨,半夜凉初透。 

  

东篱把酒黄昏后,有暗香盈袖。莫道不消魂?薄雾浓云愁水昼,瑞脑消金。 

声声慢 李清照 

  寻寻觅觅,冷冷清清,凄凄惨惨戚戚。乍暖还寒时侯,最难将息。三杯两

盏淡酒,怎敌他、晚来风急。雁过也,最伤心,却是旧时相识。      

  

   满地黄花堆积,惟悴损、如今有谁堪摘。守着窗儿,独自怎生得黑?梧桐

更兼细雨,到黄昏、点点滴滴。这次第,怎一个愁字了得。         

念奴娇 李清照 

  萧条庭院,有斜风细雨,重门须闭。宠柳娇花寒食近,种种恼人天气。险

韵诗成,扶头酒醒,别是闲滋味。征鸿过尽,万千心事难寄。       

  

   楼上几日春寒,帘垂四面,玉阑干慵倚。被冷香消新梦觉,不许愁人不起。

清露晨流,新桐初引,多少游春意。日高烟敛,更看今日晴未。       

永遇乐 李清照 

  落日溶金,暮云合璧,人在何处?染柳烟浓,吹梅笛怨,春意知几许?元

宵佳期节,融和天气,次第岂无风雨。来相召、香车宝马,谢他酒朋诗侣。 

  

   中州盛日,闺门多暇,记得偏重三五。铺翟冠儿,捻金雪柳,簇带争济楚。

如今憔悴,风鬟雾鬓,怕见夜间出去。不如向帘儿底下,听人笑语。     
!![[周颂]]

!![[鲁颂]]

!![[商颂]]
第三挖井人:[[YuGongde|yugongde]]

第二挖井人:Tiddlyspot团队

第一挖井人:Tiddlywiki团队


''什么是挖井人计划''

吃水不忘挖井人

信息爆炸的时代,经过收集整理的信息便于大家查询和梳理知识体系。

挖井人计划就是记录收集整理这些信息的贡献者们。

注意,每一位使用本文件梳理知识体系的人,也都是挖井人,不管你是将梳理后的文件供自己使用还是分享出来让更多人参考。
!关于本文档

!!本文档用途:

梳理知识体系,分享知识成果,构建''属于自己的个人图书馆''

!!本文档使用方法:

一、点击右上角这个图标,可以将本文档保存在你的电脑中。
保存后的文档可以随时点开访问(只要你的电脑中有浏览器,IE,Chrome,火狐,或者360浏览器都可以)。


[img[guide1.png]]

二、点击每个条目的这个图标,可以编辑,然后点√符号,可以保存

[img[guide2.png]]

三、保存在你电脑中的文档可以任意编辑,不会改变本网站中的内容

四、欢迎将你整理过的个人图书馆发给我们,向更多人分享你的知识成果

''分享方式:''

如果你的个人图书馆是在目前文档上的局部修改或者添加,我们会将改动内容添加到本文档,并备注贡献者

如果你的个人图书馆有较大改动,或者自成体系,我们将会为你单独建立页面和链接,供大家分享。

联系我们:

[img[yudade.jpg]]

致谢:本文档采用Tiddlywiki技术
!文赋(并序)

[晋] 陆机 

!!序
余每观才士之所作,窃有以得其用心。

夫放言遣辞,良多变矣,妍蚩好恶,可得而言。

每自属文,尤见其情,恒患意不称物,文不逮意,盖非知之难,能之难也。

故作文赋,以述先士之盛藻,因论作文之利害所由,佗日殆可谓曲尽其妙。

至於操斧伐柯,虽取则不远,若夫随手之变,良难以辞逮,盖所能言者,具於此云。


!!赋

伫中区以玄览,颐情志於典坟。遵四时以叹逝,瞻万物而思纷。悲落叶於劲秋,喜柔条於芳春,心懔懔以怀霜,志眇眇而临云。咏世德之骏烈,诵先人之清芬。游文章之林府,嘉丽藻之彬彬。慨投篇而援笔,聊宣之乎斯文。

其始也,皆收视反听,耽思傍讯,精骛八极,心游万仞。其致也,情曈昽而弥鲜,物昭晣而互进。倾群言之沥液,漱六艺之芳润。浮天渊以安流,濯下泉而潜浸。於是沈辞怫悦,若游鱼衔钩,而出重渊之深;浮藻联翩,若翰鸟缨缴,而坠曾云之峻。收百世之阙文,采千载之遗韵。谢朝华於已披,启夕秀於未振。观古今於须臾,抚四海於一瞬。

然後选义按部,考辞就班。抱暑者咸叩,怀响者毕弹。或因枝以振叶,或沿波而讨源。或本隐以之显,或求易而得难。或虎变而兽扰,或龙见而鸟澜。或妥帖而易施,或岨峿而不安。罄澄心以凝思,眇众虑而为言。笼天地於形内,挫万物於笔端。始踯躅於燥吻,终流离於濡翰。理扶质以立幹,文垂条而结繁。信情貌之不差,故每变而在颜。思涉乐其必笑,方言哀而已叹。或操觚以率尔,或含毫而邈然。

伊兹事之可乐,固圣贤之所钦。课虚无以责有,叩寂寞而求音。函绵邈於尺素,吐滂沛乎寸心。言恢之而弥广,思按之而逾深。播芳蕤之馥馥,发青条之森森。粲风飞而猋竖,郁云起乎翰林。

体有万殊,物无一量。纷纭挥霍,形难为状。辞程才以效伎,意司契而为匠。在有无而黾勉,当浅深而不让。虽离方而遯员,期穷形而尽相。故夫夸目者尚奢,惬心者贵当。言穷者无隘,论达者唯旷。

诗缘情而绮靡,赋体物而浏亮。碑披文以相质,诔缠绵而凄怆。铭博约而温润,箴顿挫而清壮。颂优游以彬蔚,论精微而朗畅。奏平彻以闲雅,说炜晔而谲诳。虽区分之在兹,亦禁邪而制放。要辞达而理举,故无取乎冗长。

其为物也多姿,其为体也屡迁。其会意也尚巧,其遣言也贵妍。暨音声之迭代,若五色之相宣。虽逝止之无常,固崎锜而难便。苟达变而识次,犹开流以纳泉。如失机而後会,恒操末以续颠。谬玄黄之袟叙,故淟涊而不鲜。

或仰逼於先条,或俯侵於後章。或辞害而理比,或言顺而义妨。离之则双美,合之则两伤。考殿最於锱铢,定去留於毫芒。苟铨衡之所裁,固应绳其必当。或文繁理富,而意不指適。极无两致,尽不可益。立片言而居要,乃一篇之警策。虽众辞之有条,必待兹而效绩。亮功多而累寡,故取足而不易。

或藻思绮合,清丽千眠。炳若缛绣,凄若繁弦。必所拟之不殊,乃闇合乎曩篇。虽杼轴於予怀,怵佗人之我先。苟伤廉而愆义,亦虽爱而必捐。

或苕发颖竖,离众绝致。形不可逐,响难为系。块孤立而特峙,非常音之所纬。心牢落而无偶,意徘徊而不能揥。石韫玉而山辉,水怀珠而川媚。彼榛楛之勿翦,亦蒙荣於集翠。缀下里於白雪,吾亦济夫所伟。

或讬言於短韵,对穷迹而孤兴。俯寂寞而无友,仰寥廓而莫承。譬偏弦之独张,含清唱而靡应。或寄辞於瘁音,徒靡言而弗华。混妍蚩而成体,累良质而为瑕。象下管之偏疾,故虽应而不和。或遗理以存异,徒寻虚以逐微。言寡情而鲜爱,辞浮漂而不归。犹弦么而徽急,故虽和而不悲。或奔放以谐合,务嘈囋而妖冶。徒悦目而偶俗,固高声而曲下。寤防露与桑间,又虽悲而不雅。或清虚以婉约,每除烦而去滥。阙大羹之遗味,同朱弦之清汜。虽一唱而三叹,固既雅而不艳。

若夫丰约之裁,俯仰之形。因宜適变,曲有微情。或言拙而喻巧,或理朴而辞轻。或袭故而弥新,或沿浊而更清。或览之而必察,或研之而後精。譬犹舞者赴节以投袂,歌者应弦而遣声。是盖轮扁所不得言,故亦非华说之所能精。

普辞条与文律,良余膺之所服。练世情之常尤,识前脩之所淑。虽濬发於巧心,或受欠於拙目。彼琼敷与玉藻,若中原之有菽。同橐籥之罔穷,与天地乎并育。虽纷蔼於此世,嗟不盈於予掬。患挈瓶之屡空,病昌言之难属。故踸踔於短垣,放庸音以足曲。恒遗恨以终篇,岂怀盈而自足。惧蒙尘於叩缶,顾取笑乎鸣玉。

若夫应感之会,通塞之纪。来不可遏,去不可止。藏若景灭,行犹响起。方天机之骏利,夫何纷而不理。思风发於胸臆,言泉流於唇齿。纷威蕤以馺鹓,唯毫素之所拟。文徽徽以溢目,音泠泠而盈耳。及其六情底滞,志往神留。兀若枯木,豁若涸流。揽营魂以探赜,顿精爽於自求。理翳翳而愈伏,思乙乙其若抽。是以或竭情而多悔,或率意而寡尤。虽兹物之在我,非余力之所戮。故时抚空怀而自惋,吾未识夫开塞之所由。

伊兹文之为用,固众理之所因。恢万里而无阂,通亿载而为津。俯贻则於来叶,仰观象乎古人。济文武於将坠,宣风声於不泯。涂无远而不弥,理无微而弗纶。配霑润於云雨,象变化乎鬼神。被金石而德广,流管弦而日新。
!!小雅 鹿鸣之什 鹿鸣

呦呦鹿鸣,食野之苹。我有嘉宾,鼓瑟吹笙。吹笙鼓簧,承筐是将。人之好我,示我周行。

呦呦鹿鸣,食野之蒿。我有嘉宾,德音孔昭。视民不恌,君子是则是效。我有旨酒,嘉宾式燕以敖。

呦呦鹿鸣,食野之芩。我有嘉宾,鼓瑟鼓琴。鼓瑟鼓琴,和乐且湛。我有旨酒,以燕乐嘉宾之心。

!!小雅 鹿鸣之什 四牡

四牡騑騑,周道倭迟。岂不怀归?王事靡盬,我心伤悲。

四牡騑騑,啴々骆马。岂不怀归?王事靡盬,不遑启处。

翩翩者鵻,载飞载下,集于苞栩。王事靡盬,不遑将父。

翩翩者鵻,载飞载止,集于苞杞。王事靡盬,不遑将母。

驾彼四骆,载骤骎骎。岂不怀归?是用作歌,将母来谂。

!!小雅 鹿鸣之什 皇皇者华

皇皇者华,于彼原隰。駪々征夫,每怀靡及。

我马维驹,六辔如濡。载驰载驱,周爰咨诹。

我马维骐,六辔如丝。载驰载驱,周爰咨谋。

我马维骆,六辔沃若。载驰载驱,周爰咨度。

我马维骃,六辔既均。载驰载驱,周爰咨询。

!!小雅 鹿鸣之什 常棣

常棣之华,鄂不韡韡。凡今之人,莫如兄弟。

死丧之威,兄弟孔怀。原隰裒矣,兄弟求矣。

脊令在原,兄弟急难。每有良朋,况也永叹。

兄弟阋于墙,外御其务。每有良朋,烝也无戎。

丧乱既平,既安且宁。虽有兄弟,不如友生?

傧尔笾豆,饮酒之饫。兄弟既具,和乐且孺。

妻子好合,如鼓瑟琴。兄弟既翕,和乐且湛。

宜尔室家,乐尔妻帑。是究是图,亶其然乎?

!!小雅 鹿鸣之什 伐木

伐木丁丁,鸟鸣嘤嘤。出自幽谷,迁于乔木。嘤其鸣矣,求其友声。相彼鸟

矣,犹求友声。矧伊人矣,不求友生?神之听之,终和且平。

伐木许许,酾酒有藇!既有肥羜,以速诸父。宁适不来,微我弗顾。

於粲洒扫,陈馈八簋。既有肥牡,以速诸舅。宁适不来,微我有咎。

伐木于阪,酾酒有衍。笾豆有践,兄弟无远。民之失德,乾餱以愆。有酒

湑我,无酒酤我。坎坎鼓我,蹲蹲舞我。迨我暇矣,饮此湑矣。

!!小雅 鹿鸣之什 天保

天保定尔,亦孔之固。俾尔单厚,何福不除?俾尔多益,以莫不庶。

天保定尔,俾尔戩穀。罄无不宜,受天百禄。降尔遐福,维日不足。

天保定尔,以莫不兴。如山如阜,如冈如陵,如川之方至,以莫不增。

吉蠲为饎,是用孝享。禴祠烝尝,于公先王。君曰:卜尔,万寿无疆。

神之吊矣,诒尔多福。民之质矣,日用饮食。群黎百姓,遍为尔德。

如月之恒,如日之升。如南山之寿,不骞不崩。如松柏之茂,无不尔或承。

!!小雅 鹿鸣之什 采薇

采薇采薇,薇亦作止。曰归曰归,岁亦莫止。靡室靡家,玁狁之故。不遑启居,玁狁之故。

采薇采薇,薇亦柔止。曰归曰归,心亦忧止。忧心烈烈,载饥载渴。我戍未定,靡使归聘。

采薇采薇,薇亦刚止。曰归曰归,岁亦阳止。王事靡盬,不遑启处。忧心孔疚,我行不来!

彼尔维何?维常之华。彼路斯何?君子之车。戎车既驾,四牡业业。岂敢定居?一月三捷。

驾彼四牡,四牡骙々。君子所依,小人所腓。四牡翼翼,象弭鱼服。岂不日戒?玁狁孔棘!

昔我往矣,杨柳依依。今我来思,雨雪霏霏。行道迟迟,载渴载饥。我心伤悲,莫知我哀!

!!小雅 鹿鸣之什 出车

我出我车,于彼牧矣。自天子所,谓我来矣。召彼仆夫,谓之载矣。王事多难,维其棘矣。

我出我车,于彼郊矣。设此旐矣,建彼旄矣。彼旟旐斯,胡不旆旆?忧心悄悄,仆夫况瘁。

王命南仲,往城于方。出车彭彭,旂旐央央。天子命我,城彼朔方。赫赫南仲,玁狁于襄。

昔我往矣,黍稷方华。今我来思,雨雪载途。王事多难,不遑启居。岂不怀归?畏此简书。

喓々草虫,趯趯阜螽。未见君子,忧心忡忡。既见君子,我心则降。赫赫南仲,薄伐西戎。

春日迟迟,卉木萋萋。仓庚喈喈,采蘩祁祁。执讯获丑,薄言还归。赫赫南仲,玁狁于夷。

!!小雅 鹿鸣之什 杕杜

有杕之杜,有睆其实。王事靡盬,继嗣我日。日月阳止,女心伤止,征夫遑止。

有杕之杜,其叶萋萋。王事靡盬,我心伤悲。卉木萋止,女心悲止,征夫归止!

陟彼北山,言采其杞。王事靡盬,忧我父母。檀车幝々,四牡痯々,征夫不远!

匪载匪来,忧心孔疚。斯逝不至,而多为恤。卜筮偕止,会言近止,征夫迩止!

!!小雅 鹿鸣之什 鱼丽

鱼丽于罶,鲿鲨。君子有酒,旨且多。

鱼丽于罶,鲂鳢。君子有酒,多且旨。

鱼丽于罶,鰋鲤。君子有酒,旨且有。物其多矣,

维其嘉矣!物其旨矣,维其偕矣!物其有矣,维其时矣!

!!小雅 鹿鸣之什 南陔(今佚)

!!小雅 鹿鸣之什 白华(今佚)

!!小雅 鹿鸣之什 华黍(今佚)

!!小雅 南有嘉鱼之什 南有嘉鱼

南有嘉鱼,烝然罩罩。君子有酒,嘉宾式燕以乐。

南有嘉鱼,烝然汕汕。君子有酒,嘉宾式燕以衎。

南有樛木,甘瓠累之。君子有酒,嘉宾式燕绥之。

翩翩者鵻,烝然来思。君子有酒,嘉宾式燕又思。

!!小雅 南有嘉鱼之什 南山有台

南山有台,北山有莱。乐只君子,邦家之基。乐只君子,万寿无期。

南山有桑,北山有杨。乐只君子,邦家之光。乐只君子,万寿无疆。

南山有杞,北山有李。乐只君子,民之父母。乐只君子,德音不已。

南山有栲,北山有杻。乐只君子,遐不眉寿。乐只君子,德音是茂。

南山有枸,北山有楰。乐只君子,遐不黄耇。乐只君子,保艾尔后。

!!小雅 南有嘉鱼之什 由庚(今佚)

!!小雅 南有嘉鱼之什 崇丘(今佚)

!!小雅 南有嘉鱼之什 由仪(今佚)

!!小雅 南有嘉鱼之什 蓼萧

蓼彼萧斯,零露湑兮。既见君子,我心写兮。燕笑语兮,是以有誉处兮。

蓼彼萧斯,零露瀼瀼。既见君子,为龙为光。其德不爽,寿考不忘。

蓼彼萧斯,零露泥泥。既见君子,孔燕岂弟。宜兄宜弟,令德寿岂。

蓼彼萧斯,零露浓浓。既见君子,鞗革忡忡。和鸾雍雍,万福攸同。

!!小雅 南有嘉鱼之什 湛露

湛湛露斯,匪阳不晞。厌厌夜饮,不醉无归。

湛湛露斯,在彼丰草。厌厌夜饮,在宗载考。

湛湛露斯,在彼杞棘。显允君子,莫不令德。

其桐其椅,其实离离。岂弟君子,莫不令仪。

!!小雅 南有嘉鱼之什 彤弓

彤弓弨兮,受言藏之。我有嘉宾,中心贶之。钟鼓既设,一朝飨之。

彤弓弨兮,受言载之。我有嘉宾,中心喜之。钟鼓既设,一朝右之。

彤弓弨兮,受言櫜之。我有嘉宾,中心好之。钟鼓既设,一朝酬之。

!!小雅 南有嘉鱼之什 菁菁者莪

菁菁者莪,在彼中阿。既见君子,乐且有仪。

菁菁者莪,在彼中沚。既见君子,我心则喜。

菁菁者莪,在彼中陵。既见君子,锡我百朋。

泛泛杨舟,载沉载浮。既见君子,我心则休。

!!小雅 南有嘉鱼之什 六月

六月栖栖,戎车既饬。四牡骙々,载是常服。玁狁孔炽,我是用急。王于出征,以匡王国。

比物四骊,闲之维则。维此六月,既成我服。我服既成,于三十里。王于出征,以佐天子。

四牡修广,其大有颙。薄伐玁狁,以奏肤公。有严有翼,共武之服。共武之服,以定王国。

玁狁匪茹,整居焦获。侵镐及方,至于泾阳。织文鸟章,白旆央央。元戎十乘,以先启行。

戎车既安,如轾如轩。四牡既佶,既佶且闲。薄伐玁狁,至于大原。文武吉甫,万邦为宪。

吉甫燕喜,既多受祉。来归自镐,我行永久。饮御诸友,炰鳖脍鲤。侯谁在矣?张仲孝友。

!!小雅 南有嘉鱼之什 采芑

薄言采芑,于彼新田,呈此菑亩。方叔涖止,其车三千。师干之试,方叔率止。乘其四骐,四骐翼翼。路车有奭,簟茀鱼服,钩膺鞗革。

薄言采芑,于彼新田,于此中乡。方叔涖止,其车三千。旂旐央央,方叔率止。约軧错衡,八鸾玱玱。服其命服,朱芾斯皇,有玱葱珩。

鴥彼飞隼,其飞戾天,亦集爰止。方叔涖止,其车三千。师干之试,方叔率止。钲人伐鼓,陈师鞠旅。显允方叔,伐鼓渊渊,振旅阗阗。

蠢尔蛮荆,大邦为仇。方叔元老,克壮其犹。方叔率止,执讯获丑。戎车啴々,啴々焞々,如霆如雷。显允方叔,征伐玁狁,蛮荆来威。

!!小雅 南有嘉鱼之什 车攻

我车既攻,我马既同。四牡庞庞,驾言徂东。

田车既好,田牡孔阜。东有甫草,驾言行狩。

之子于苗,选徒嚣嚣。建旐设旄,搏兽于敖。

驾彼四牡,四牡奕奕。赤芾金舄,会同有绎。

决拾既佽,弓矢既调。射夫既同,助我举柴。

四黄既驾,两骖不猗。不失其驰,舍矢如破。

萧萧马鸣,悠悠旆旌。徒御不惊,大庖不盈。

之子于征,有闻无声。允矣君子,展也大成。

!!小雅 南有嘉鱼之什 吉日

吉日维戊,既伯既祷。田车既好,四牡孔阜。升彼大阜,从其群丑。

吉日庚午,既差我马。兽之所同,麀鹿麌々。漆沮之从,天子之所。

瞻彼中原,其祁孔有。儦々俟俟,或群或友。悉率左右,以燕天子。

既张我弓,既挟我矢。发彼小豝,殪此大兕。以御宾客,且以酌醴。

!!小雅 鸿雁之什 鸿雁

鸿雁于飞,肃肃其羽。之子于征,劬劳于野。爰及矜人,哀此鳏寡。

鸿雁于飞,集于中泽。之子于垣,百堵皆作。虽则劬劳,其究安宅?

鸿雁于飞,哀鸣嗷嗷。维此哲人,谓我劬劳。维彼愚人,谓我宣骄。

!!小雅 鸿雁之什 庭燎

夜如何其?夜未央,庭燎之光。君子至止,鸾声将将。

夜如何其?夜未艾,庭燎晣々。君子至止,鸾声哕哕。

夜如何其?夜乡晨,庭燎有辉。君子至止,言观其旂。

!!小雅 鸿雁之什 沔水

沔彼流水,朝宗于海。鴥彼飞隼,载飞载止。嗟我兄弟,邦人诸友。莫肯念乱,谁无父母?

沔彼流水,其流汤汤。鴥彼飞隼,载飞载扬。念彼不迹,载起载行。心之忧矣,不可弭忘。

鴥彼飞隼,率彼中陵。民之讹言,宁莫之惩?我友敬矣,谗言其兴。

!!小雅 鸿雁之什 鹤鸣

鹤鸣于九皋,声闻于野。鱼潜在渊,或在于渚。乐彼之园,爰有树檀,其下维萚。他山之石,可以为错。

鹤鸣于九皋,声闻于天。鱼在于渚,或潜在渊。乐彼之园,爰有树檀,其下维谷。他山之石,可以攻玉。

!!小雅 鸿雁之什 鹤鸣

鹤鸣于九皋,声闻于野。鱼潜在渊,或在于渚。乐彼之园,爰有树檀,其下

维萚。他山之石,可以为错。

鹤鸣于九皋,声闻于天。鱼在于渚,或潜在渊。乐彼之园,爰有树檀,其下

维谷。他山之石,可以攻玉。

!!小雅 鸿雁之什 祈父

祈父,予王之爪牙。胡转予于恤,靡所止居?

祈父,予王之爪士。胡转予于恤,靡所厎止?

祈父,亶不聪。胡转予于恤?有母之尸饔。

!!小雅 鸿雁之什 白驹

皎皎白驹,食我场苗。絷之维之,以永今朝。所谓伊人,于焉逍遥?

皎皎白驹,食我场藿。絷之维之,以永今夕。所谓伊人,于焉嘉客?

皎皎白驹,贲然来思。尔公尔侯,逸豫无期?慎尔优游,勉尔遁思。

皎皎白驹,在彼空谷。生刍一束,其人如玉。毋金玉尔音,而有遐心。

!!小雅 鸿雁之什 黄鸟

黄鸟黄鸟,无集于穀,无啄我粟。此邦之人,不我肯穀。言旋言归,复我邦族。

黄鸟黄鸟,无集于桑,无啄我粱。此邦之人,不可与明。言旋言归,复我诸兄。

黄鸟黄鸟,无集于栩,无啄我黍。此邦之人,不可与处。言旋言归,复我诸父。

!!小雅 鸿雁之什 我行其野

我行其野,蔽芾其樗。婚姻之故,言就尔居。尔不我畜,复我邦家。

我行其野,言采其蓫。婚姻之故,言就尔宿。尔不我畜,言归斯复。

我行其野,言采其葍。不思旧姻,求尔新特。成不以富,亦祗以异。

!!小雅 鸿雁之什 斯干

秩秩斯干,幽幽南山。如竹苞矣,如松茂矣。兄及弟矣,式相好矣,无相犹矣。

似续妣祖,筑室百堵,西南其户。爰居爰处,爰笑爰语。

约之阁阁,椓之橐橐。风雨攸除,鸟鼠攸去,君子攸芋。

如跂斯翼,如矢斯棘,如鸟斯革,如翚斯飞,君子攸跻。

殖殖其庭,有觉其楹。哙哙其正,哕哕其冥。君子攸宁。

下莞上簟,乃安斯寝。乃寝乃兴,乃占我梦。吉梦维何?维熊维罴,维虺维蛇。

大人占之:维熊维罴,男子之祥;维虺维蛇,女子之祥。

乃生男子,载寝之床。载衣之裳,载弄之璋。其泣喤々,朱芾斯皇,室家君王。

乃生女子,载寝之地。载衣之裼,载弄之瓦。无非无仪,唯酒食是议,无父母诒罹。

!!小雅 鸿雁之什 无羊

谁谓尔无羊?三百维群。谁谓尔无牛?九十其犉。尔羊来思,其角濈々。尔牛来思,其耳湿湿。

或降于阿,或饮于池,或寝或讹。尔牧来思,何蓑何笠,或负其餱。三十维物,尔牲则具。

尔牧来思,以薪以蒸,以雌以雄。尔羊来思,矜矜兢兢,不骞不崩。麾之以肱,毕来既升。

牧人乃梦,众维鱼矣,旐维旟矣,大人占之;众维鱼矣,实维丰年;旐维旟矣,室家溱溱。

!!小雅 节南山之什 节南山

节彼南山,维石岩岩。赫赫师尹,民具尔瞻。忧心如惔,不敢戏谈。国既卒斩,何用不监!

节彼南山,有实其猗。赫赫师尹,不平谓何。天方荐瘥,丧乱弘多。民言无嘉,憯莫惩嗟。

尹氏大师,维周之氐;秉国之钧,四方是维。天子是毗,俾民不迷。不吊昊天,不宜空我师。

弗躬弗亲,庶民弗信。弗问弗仕,勿罔君子。式夷式已,无小人殆。琐琐姻亚,则无膴仕。

昊天不佣,降此鞠訩。昊天不惠,降此大戾。君子如届,俾民心阕。君子如夷,恶怒是违。

不吊昊天,乱靡有定。式月斯生,俾民不宁。忧心如酲,谁秉国成?不自为政,卒劳百姓。

驾彼四牡,四牡项领。我瞻四方,蹙蹙靡所骋。

方茂尔恶,相尔矛矣。既夷既怿,如相酬矣。

昊天不平,我王不宁。不惩其心,覆怨其正。

家父作诵,以究王訩。式讹尔心,以畜万邦。

!!小雅 节南山之什 正月

正月繁霜,我心忧伤。民之讹言,亦孔之将。念我独兮,忧心京京。哀我小心,癙忧以痒。

父母生我,胡俾我瘉?不自我先,不自我后。好言自口,莠言自口。忧心愈愈,是以有侮。

忧心惸惸,念我无禄。民之无辜,并其臣仆。哀我人斯,于何从禄?瞻乌爰止?于谁之屋?

瞻彼中林,侯薪侯蒸。民今方殆,视天梦梦。既克有定,靡人弗胜。有皇上帝,伊谁云憎?

谓山盖卑,为冈为陵。民之讹言,宁莫之惩。召彼故老,讯之占梦。具曰予圣,谁知乌之雌雄!

谓天盖高,不敢不局。谓地盖厚,不敢不蹐。维号斯言,有伦有脊。哀今之人,胡为虺蜴?

瞻彼阪田,有菀其特。天之杌我,如不我克。彼求我则,如不我得。执我仇仇,亦不我力。

心之忧矣,如或结之。今兹之正,胡然厉矣?燎之方扬,宁或灭之?赫赫宗周,褒姒灭之!

终其永怀,又窘阴雨。其车既载,乃弃尔辅。载输尔载,将伯助予!

无弃尔辅,员于尔辐。屡顾尔仆,不输尔载。终逾绝险,曾是不意。

鱼在于沼,亦匪克乐。潜虽伏矣,亦孔之炤。忧心惨惨,念国之为虐!

彼有旨酒,又有嘉肴。洽比其邻,婚姻孔云。念我独兮,忧心殷殷。

佌々彼有屋,蔌蔌方有谷。民今之无禄,天夭是椓。哿矣富人,哀此惸独。

!!小雅 节南山之什 十月之交

十月之交,朔月辛卯。日有食之,亦孔之丑。彼月而微,此日而微;今此下民,亦孔之哀。

日月告凶,不用其行。四国无政,不用其良。彼月而食,则维其常;此日而食,于何不臧。

爗々震电,不宁不令。百川沸腾,山冢崒崩。高岸为谷,深谷为陵。哀今之人,胡憯莫惩?

皇父卿士,番维司徒,家伯维宰,仲允膳夫,棸子内史,蹶维趣马,楀维师氏。醘妻煽方处。

抑此皇父,岂曰不时?胡为我作,不即我谋?彻我墙屋,田卒氵于莱。曰予不戕,礼则然矣。

皇父孔圣,作都于向。择三有事,亶侯多藏。不慭遗一老,俾守我王。择有车马,以居徂向。

黾勉从事,不敢告劳。无罪无辜,谗口嚣嚣。下民之孽,匪降自天。噂沓背憎,职竞由人。

悠悠我里,亦孔之痗。四方有羡,我独居忧。民莫不逸,我独不敢休。天命不彻,我不敢效我友自逸。

!!小雅 节南山之什 雨无正

浩浩昊天,不骏其德。降丧饥馑,斩伐四国。旻天疾威,弗虑弗图。舍彼有罪,既伏其辜。若此无罪,沦胥以铺。

周宗既灭,靡所止戾。正大夫离居,莫知我勚。三事大夫,莫肯夙夜。邦君诸侯,莫肯朝夕。庶曰式臧,覆出为恶。

如何昊天,辟言不信。如彼行迈,则靡所臻。凡百君子,各敬尔身。胡不相畏,不畏于天?

戎成不退,饥成不遂。曾我暬御,惨惨日瘁。凡百君子,莫肯用讯。听言则答,谮言则退。

哀哉不能言,匪舌是出,维躬是瘁。哿矣能言,巧言如流,俾躬处休!

维曰予仕,孔棘且殆。云不可使,得罪于天子;亦云可使,怨及朋友。

谓尔迁于王都。曰予未有室家。鼠思泣血,无言不疾。昔尔出居,谁从作尔室?

!!小雅 节南山之什 小旻

旻天疾威,敷于下土。谋犹回遹,何日斯沮?谋臧不从,不臧覆用。我视谋犹,亦孔之邛。

潝々訿々,亦孔之哀。谋之其臧,则具是违。谋之不臧,则具是依。我视谋犹,伊于胡厎。

我龟既厌,不我告犹。谋夫孔多,是用不集。发言盈庭,谁敢执其咎?如匪行迈谋,是用不得于道。

哀哉为犹,匪先民是程,匪大犹是经。维迩言是听,维迩言是争。如彼筑室于道谋,是用不溃于成。

国虽靡止,或圣或否。民虽靡膴,或哲或谋,或肃或艾。如彼泉流,无沦胥以败。

不敢暴虎,不敢冯河。人知其一,莫知其他。战战兢兢,如临深渊,如履薄冰。

!!小雅 节南山之什 小宛

宛彼鸣鸠,翰飞戾天。我心忧伤,念昔先人。明发不寐,有怀二人。

人之齐圣,饮酒温克。彼昏不知,壹醉日富。各敬尔仪,天命不又。

中原有菽,庶民采之。螟蛉有子,蜾蠃负之。教诲尔子,式穀似之。

题彼脊令,载飞载鸣。我日斯迈,而月斯征。夙兴夜寐,毋忝尔所生。

交交桑扈,率场啄粟。哀我填寡,宜岸宜狱。握粟出卜,自何能穀?

温温恭人,如集于木。惴惴小心,如临于谷。战战兢兢,如履薄冰。

!!小雅 节南山之什 小弁

弁彼鸒斯,归飞提提。民莫不穀,我独于罹。何辜于天?我罪伊何?心之忧矣,云如之何?

踧踧周道,鞫为茂草。我心忧伤,惄焉如捣。假寐永叹,维忧用老。心之忧矣,疢如疾首。

维桑与梓,必恭敬止。靡瞻匪父,靡依匪母。不属于毛?不罹于里?天之生我,我辰安在?

菀彼柳斯,鸣蜩嘒嘒,有漼者渊,萑苇淠淠。譬彼舟流,不知所届,心之忧矣,不遑假寐。

鹿斯之奔,维足伎伎。雉之朝雊,尚求其雌。譬彼坏木,疾用无枝。心之忧矣,宁莫之知?

相彼投兔,尚或先之。行有死人,尚或墐之。君子秉心,维其忍之。心之忧矣,涕既陨之。

君子信谗,如或酬之。君子不惠,不舒究之。伐木掎矣,析薪扡矣。舍彼有罪,予之佗矣。

莫高匪山,莫浚匪泉。君子无易由言,耳属于垣。无逝我梁,无发我笱。我躬不阅,遑恤我后。

!!小雅 节南山之什 巧言

悠悠昊天,曰父母且。无罪无辜,乱如此幠。昊天已威,予慎无罪。昊天大幠,予慎无辜。

乱之初生,僣始既涵。乱之又生,君子信谗。君子如怒,乱庶遄沮。君子如祉,乱庶遄已。

君子屡盟,乱是用长。君子信盗,乱是用暴。盗言孔甘,乱是用餤。匪其止共,维王之邛。

奕奕寝庙,君子作之。秩秩大猷,圣人莫之。他人有心,予忖度之。跃跃毚兔,遇犬获之。

荏染柔木,君子树之。往来行言,心焉数之。蛇蛇硕言,出自口矣。巧言如簧,颜之厚矣。

彼何人斯?居河之麋。无拳无勇,职为乱阶。既微且尰,尔勇伊何?为犹将多,尔居徒几何?

!!小雅 节南山之什 何人斯

彼何人斯?其心孔艰。胡逝我梁,不入我门?伊谁云从?谁暴之云。

二人从行,谁为此祸?胡逝我梁,不入唁我?始者不如,今云不我可。

彼何人斯?胡逝我陈?我闻其声,不见其身。不愧于人?不畏于天?

彼何人斯?其为飘风。胡不自北?胡不自南?胡逝我梁?祇搅我心。

尔之安行,亦不遑舍。尔之亟行,遑脂尔车。壹者之来,云何其盱。

尔还而入,我心易也。还而不入,否难知也。壹者之来,俾我祇也。

伯氏吹埙,仲氏吹篪。及尔如贯,谅不我知。出此三物,以诅尔斯。

为鬼为蜮,则不可得。有靦面目,视人罔极。作此好歌,以极反侧。

!!小雅 节南山之什 巷伯

萋兮斐兮,成是贝锦。彼谮人者,亦已大甚!

哆兮侈兮,成是南箕。彼谮人者,谁适与谋。

缉缉翩翩,谋欲谮人。慎尔言也,谓尔不信。

捷捷幡幡,谋欲谮言。岂不尔受?既其女迁。

骄人好好,劳人草草。苍天苍天,视彼骄人,矜此劳人。

彼谮人者,谁适与谋?取彼谮人,投畀豺虎。豺虎不食,投畀有北。有北不受,投畀有昊!

杨园之道,猗于亩丘。寺人孟子,作为此诗。凡百君子,敬而听之。

!!小雅 谷风之什 谷风

习习谷风,维风及雨。将恐将惧,维予与女。将安将乐,女转弃予。

习习谷风,维风及颓。将恐将惧,置予于怀。将安将乐,弃予如遗。

习习谷风,维山崔嵬。无草不死,无木不萎。忘我大德,思我小怨。

!!小雅 谷风之什 蓼莪

蓼蓼者莪,匪莪伊蒿。哀哀父母,生我劬劳。

蓼蓼者莪,匪莪伊蔚。哀哀父母,生我劳瘁。

瓶之罄矣,维罍之耻。鲜民之生,不如死之久矣。无父何怙?无母何恃?出则衔恤,入则靡至。

父兮生我,母兮鞠我。抚我畜我,长我育我,顾我复我,出入腹我。欲报之德。昊天罔极!

南山烈烈,飘风发发。民莫不穀,我独何害!南山律律,飘风弗弗。民莫不穀,我独不卒!

!!小雅 谷风之什 大东

有饛簋飧,有捄棘匕。周道如砥,其直如矢。君子所履,小人所视。眷言顾之,潸焉出涕。

小东大东,杼柚其空。纠纠葛屦,可以履霜。佻佻公子,行彼周行。既往既来,使我心疚。

有冽氿泉,无浸获薪。契契寤叹,哀我惮人。薪是获薪,尚可载也。哀我惮人,亦可息也。

东人之子,职劳不来。西人之子,粲粲衣服。舟人之子,熊罴是裘。私人之子,百僚是试。

或以其酒,不以其浆。鞙々佩璲,不以其长。维天有汉,监亦有光。跂彼织女,终日七襄。

虽则七襄,不成报章。睆彼牵牛,不以服箱。东有启明,西有长庚。有捄天毕,载施之行。

维南有箕,不可以簸扬。维北有斗,不可以挹酒浆。维南有箕,载翕其舌。维北有斗,西柄之揭。

!!小雅 谷风之什 四月

四月维夏,六月徂暑。先祖匪人,胡宁忍予?

秋日凄凄,百卉具腓。乱离瘼矣,爰其适归?

冬日烈烈,飘风发发。民莫不穀,我独何害?

山有嘉卉,侯栗侯梅。废为残贼,莫知其尤!

相彼泉水,载清载浊。我日构祸,曷云能穀?

滔滔江汉,南国之纪。尽瘁以仕,宁莫我有?

匪鹑匪鸢,翰飞戾天。匪鳣匪鲔,潜逃于渊。

山有蕨薇,隰有杞桋。君子作歌,维以告哀。

!!小雅 谷风之什 北山

陟彼北山,言采其杞。偕偕士子,朝夕从事。王事靡盬,忧我父母。

溥天之下,莫非王土;率土之滨,莫非王臣。大夫不均,我从事独贤。

四牡彭彭,王事傍傍。嘉我未老,鲜我方将。旅力方刚,经营四方。

或燕燕居息,或尽瘁事国;或息偃在床,或不已于行。

或不知叫号,或惨惨劬劳;或栖迟偃仰,或王事鞅掌。

或湛乐饮酒,或惨惨畏咎;或出入风议,或靡事不为。

!!小雅 谷风之什 无将大车

无将大车,祇自尘兮。无思百忧,祇自疷兮。

无将大车,维尘冥冥。无思百忧,不出于颎。

无将大车,维尘雍兮。无思百忧,祇自重兮。

!!小雅 谷风之什 小明

明明上天,照临下土。我征徂西,至于艽野。二月初吉,载离寒暑。心之忧矣,其毒大苦。念彼共人,涕零如雨。岂不怀归?畏此罪罟!

昔我往矣,日月方除。曷云其还?岁聿云莫。念我独兮,我事孔庶。心之忧矣,惮我不暇。念彼共人,眷眷怀顾!岂不怀归?畏此谴怒。

昔我往矣,日月方奥。曷云其还?政事愈蹙。岁聿云莫,采萧获菽。心之忧矣,自诒伊戚。念彼共人,兴言出宿。岂不怀归?畏此反覆。

嗟尔君子,无恒安处。靖共尔位,正直是与。神之听之,式穀以女。

嗟尔君子,无恒安息。靖共尔位,好是正直。神之听之,介尔景福。

!!小雅 谷风之什 鼓钟

鼓钟将将,淮水汤汤,忧心且伤。淑人君子,怀允不忘。

鼓钟喈喈,淮水湝々,忧心且悲。淑人君子,其德不回。

鼓钟伐鼛,淮有三洲,忧心且妯。淑人君子,其德不犹。

鼓钟钦钦,鼓瑟鼓琴,笙磬同音。以雅以南,以龠不僣。

!!小雅 谷风之什 楚茨

楚楚者茨,言抽其棘,自昔何为?我蓺黍稷。我黍与与,我稷翼翼。我仓既盈,我庾维亿。以为酒食,以享以祀,以妥以侑,以介景福。

济济跄跄,絜尔牛羊,以往烝尝。或剥或亨,或肆或将。祝祭于祊,祀事孔明。先祖是皇,神保是飨。孝孙有庆,报以介福,万寿无疆!

执爨,为俎孔硕,或燔或炙。君妇莫莫,为豆孔庶。为宾为客,献酬交错。礼仪卒度,笑语卒获。神保是格,报以介福,万寿攸酢!

我孔矣,式礼莫愆。工祝致告,徂赉孝孙。苾芬孝祀,神嗜饮食。卜尔百福,如几如式。既齐既稷,既匡既敕。永锡尔极,时万时亿!

礼仪既备,钟鼓既戒,孝孙徂位,工祝致告,神具醉止,皇尸载起。鼓钟送尸,神保聿归。诸宰君妇,废彻不迟。诸父兄弟,备言燕私。

乐具入奏,以绥后禄。尔肴既将,莫怨具庆。既醉既饱,小大稽首。神嗜饮食,使君寿考。孔惠孔时,维其尽之。子子孙孙,勿替引之!

!!小雅 谷风之什 信南山

信彼南山,维禹甸之。畇々原隰,曾孙田之。我疆我理,南东其亩。

上天同云。雨雪雰雰,益之以霡霂。既优既渥,既沾既足。生我百谷。

疆埸翼翼,黍稷彧彧。曾孙之穑,以为酒食。畀我尸宾,寿考万年。

中田有庐,疆埸有瓜。是剥是菹,献之皇祖。曾孙寿考,受天之祜。

祭以清酒,从以骍牡,享于祖考。执其鸾刀,以启其毛,取其血膋。

是烝是享,苾苾芬芬。祀事孔明,先祖是皇。报以介福。万寿无疆。

!!小雅 甫田之什 甫田

倬彼甫田,岁取十千。我取其陈,食我农人。自古有年。今适南亩,或耘或耔。黍稷薿薿,攸介攸止,烝我髦士。

以我齐明,与我犠羊,以社以方。我田既臧,农夫之庆。琴瑟击鼓,以御田祖。以祈甘雨,以介我稷黍,以穀我士女。

曾孙来止,以其妇子。馌彼南亩,田畯至喜。攘其左右,尝其旨否。禾易长亩,终善且有。曾孙不怒,农夫克敏。

曾孙之稼,如茨如梁。曾孙之庾,如坻如京。乃求千斯仓,乃求万斯箱。黍稷稻粱,农夫之庆。报以介福,万寿无疆。

!!小雅 甫田之什 大田

大田多稼,既种既戒,既备乃事。以我覃耜,俶载南亩。播厥百谷,既庭且硕,曾孙是若。

既方既皂,既坚既好,不稂不莠。去其螟螣,及其蟊贼,无害我田稚。田祖有神,秉畀炎火。

有渰萋萋,兴雨祈々。雨我公田,遂及我私。彼有不获稚,此有不敛穧,彼有遗秉,此有滞穗,伊寡妇之利。

曾孙来止,以其妇子。馌彼南亩,田畯至喜。来方禋祀,以其骍黑,与其黍稷。以享以祀,以介景福。

!!小雅 甫田之什 瞻彼洛矣

瞻彼洛矣,维水泱泱。君子至止,福禄如茨。韎韐有奭,以作六师。

瞻彼洛矣,维水泱泱。君子至止,鞸琫有珌。君子万年,保其家室。

瞻彼洛矣,维水泱泱。君子至止,福禄既同。君子万年,保其家邦。

!!小雅 甫田之什 裳裳者华

裳裳者华,其叶湑兮。我覯之子,我心写兮。我心写兮,是以有誉处兮。

裳裳者华,芸其黄矣。我覯之子,维其有章矣。维其有章矣,是以有庆矣。

裳裳者华,或黄或白。我覯之子,乘其四骆。乘其四骆,六辔沃若。

左之左之,君子宜之。右之右之,君子有之。维其有之,是以似之。

!!小雅 甫田之什 桑扈

交交桑扈,有莺其羽。君子乐胥,受天之祜。

交交桑扈,有莺其领。君子乐胥,万邦之屏。

之屏之翰,百辟为宪。不戢不难,受福不那。

兕觥其觩,旨酒思柔。彼交匪敖,万福来求。

!!小雅 甫田之什 鸳鸯

鸳鸯于飞,毕之罗之。君子万年,福禄宜之。

鸳鸯在梁,戢其左翼。君子万年,宜其遐福。

乘马在厩,摧之秣之。君子万年,福禄艾之。

乘马在厩,秣之摧之。君子万年,福禄绥之。

!!小雅 甫田之什 頍弁

有頍者弁,实维伊何?尔酒既旨,尔肴既嘉。岂伊异人?兄弟匪他。茑与女萝,施于松柏。未见君子,忧心奕奕;既见君子,庶几说怿。

有頍者弁,实维何期?尔酒既旨,尔肴既时。岂伊异人?兄弟具来。茑与女萝,施于松上。未见君子,忧心怲々;既见君子,庶几有臧。

有頍者弁,实维在首。尔酒既旨,尔肴既阜。岂伊异人?兄弟甥舅。如彼雨雪,先集维霰。死丧无日,无几相见。乐酒今夕,君子维宴。

!!小雅 甫田之什 车舝

间关车之舝兮,思娈季女逝兮。匪饥匪渴,德音来括。虽无好友?式燕且喜。

依彼平林,有集维鷮。辰彼硕女,令德来教。式燕且誉,好尔无射。

虽无旨酒?式饮庶几。虽无嘉肴?式食庶几。虽无德与女?式歌且舞?

陟彼高冈,析其柞薪。析其柞薪,其叶湑兮。鲜我覯尔,我心写兮。

高山仰止,景行行止。四牡騑騑,六辔如琴。覯尔新婚,以慰我心。

!!小雅 甫田之什 青蝇

营营青蝇,止于樊。岂弟君子,无信谗言。

营营青蝇,止于棘。谗人罔极,交乱四国。

营营青蝇,止于榛。谗人罔极,构我二人。

!!小雅 甫田之什 宾之初筵

宾之初筵,左右秩秩。笾豆有楚,殽核维旅。酒既和旨,饮酒孔偕。钟鼓既设,举酬逸逸。大侯既抗,弓矢斯张。射夫既同,献尔发功。发彼有的,以祈尔爵。

籥舞笙鼓,乐既和奏。烝衎烈祖,以洽百礼。百礼既至,有壬有林。锡尔纯嘏,子孙其湛。其湛曰乐,各奏尔能。宾载手仇,室人入又。酌彼康爵,以奏尔时。

宾之初筵,温温其恭。其未醉止,威仪反反。曰既醉止,威仪幡幡。舍其坐迁,屡舞仙仙。其未醉止,威仪抑抑。曰既醉止,威仪怭々。是曰既醉,不知其秩。

宾既醉止,载号载呶。乱我笾豆,屡舞僛々。是曰既醉,不知其邮。侧弁之俄,屡舞傞傞。既醉而出,并受其福。醉而不出,是谓伐德。饮酒孔嘉,维其令仪。

凡此饮酒,或醉或否。既立之监,或佐之史。彼醉不臧,不醉反耻。式勿从谓,无俾大怠。匪言勿言,匪由勿语。由醉之言,俾出童羖。三爵不识,矧敢多又。

!!小雅 鱼藻之什 鱼藻

鱼在在藻,有颁其首。王在在镐,岂乐饮酒。

鱼在在藻,有莘其尾。王在在镐,饮酒乐岂。

鱼在在藻,依于其蒲。王在在镐,有那其居。

!!小雅 鱼藻之什 角弓

骍骍角弓,翩其反矣。兄弟婚姻,无胥远矣。

尔之远矣,民胥然矣。尔之教矣,民胥效矣。

此令兄弟,绰绰有裕。不令兄弟,交相为愈。

民之无良,相怨一方。受爵不让,至于已斯亡。

老马反为驹,不顾其后。如食宜饇,如酌孔取。

毋教猱升木,如涂涂附。君子有徽猷,小人与属。

雨雪瀌々,见晛曰消。莫肯下遗,式居娄骄。

雨雪浮浮,见晛曰流。如蛮如髦,我是用忧。

!!小雅 鱼藻之什 采菽

采菽采菽,筐之筥之。君子来朝,何锡予之?虽无予之?路车乘马。又何予之?玄衮及黼。

觱沸槛泉,言采其芹。君子来朝,言观其旂。其旂淠淠,鸾声嘒嘒。载骖载驷,君子所届。

赤芾在股,邪幅在下。彼交匪纾,天子所予。乐只君子,天子命之。乐只君子,福禄申之。

维柞之枝,其叶蓬蓬。乐只君子,殿天子之邦。乐只君子,万福攸同。平平左右,亦是率从。

汎汎杨舟,绋纚维之。乐只君子,天子葵之。乐只君子,福禄膍之。优哉游哉,亦是戾矣。

!!小雅 鱼藻之什 菀柳

有菀者柳,不尚息焉。上帝甚蹈,无自暱焉。俾予靖之,后予极焉。

有菀者柳,不尚愒焉。上帝甚蹈,无自瘵焉。俾予靖之,后予迈焉。

有鸟高飞,亦傅于天。彼人之心,于何其臻。曷予靖之,居以凶矜。

!!小雅 鱼藻之什 都人士

彼都人士,狐裘黄黄。其容不改,出言有章。行归于周,万民所望。

彼都人士,台笠缁撮。彼君子女,绸直如发。我不见兮,我心不说。

彼都人士,充耳琇实。彼君子女,谓之尹吉。我不见兮,我心苑结。

彼都人士,垂带而厉。彼君子女,卷发如虿。我不见兮,言从之迈。

匪伊垂之,带则有馀。匪伊卷之,发则有旟。我不见兮,云何盱矣。

!!小雅 鱼藻之什 采绿

终朝采绿,不盈一匊。予发曲局,薄言归沐。

终朝采蓝,不盈一襜。五日为期,六日不詹。

之子于狩,言韔其弓。之子于钓,言纶之绳。

其钓维何?维鲂及鱮。维鲂及鱮,薄言观者。

!!小雅 鱼藻之什 黍苗

芃芃黍苗,阴雨膏之。悠悠南行,召伯劳之。

我任我辇,我车我牛。我行既集,盖云归哉。

我徒我御,我师我旅。我行既集,盖云归处。

肃肃谢功,召伯营之。烈烈征师,召伯成之。

原隰既平,泉流既清。召伯有成,王心则宁。

!!小雅 鱼藻之什 隰桑

隰桑有阿,其叶有难。既见君子,其乐如何。

隰桑有阿,其叶有沃。既见君子,云何不乐。

隰桑有阿,其叶有幽。既见君子,德音孔胶。

心乎爱矣,遐不谓矣?中心藏之,何日忘之!

!!小雅 鱼藻之什 白华

白华菅兮,白茅束兮。之子之远,俾我独兮。

英英白云,露彼菅茅。天步艰难,之子不犹。

滮池北流,浸彼稻田。啸歌伤怀,念彼硕人。

樵彼桑薪,卬烘于煁。维彼硕人,实劳我心。

鼓钟于宫,声闻于外。念子懆々,视我迈迈。

有鹙在梁,有鹤在林。维彼硕人,实劳我心。

鸳鸯在梁,戢其左翼。之子无良,二三其德。

有扁斯石,履之卑兮。之子之远,俾我疷兮。

!!小雅 鱼藻之什 绵蛮

绵蛮黄鸟,止于丘阿。道之云远,我劳如何。饮之食之,教之诲之。命彼后车,谓之载之。

绵蛮黄鸟,止于丘隅。岂敢惮行,畏不能趋。饮之食之。教之诲之。命彼后车,谓之载之。

绵蛮黄鸟,止于丘侧。岂敢惮行,畏不能极。饮之食之,教之诲之。命彼后车,谓之载之。

!!小雅 鱼藻之什 瓠叶

幡幡瓠叶,采之亨之。君子有酒,酌言尝之。

有兔斯首,炮之燔之。君子有酒,酌言献之。

有兔斯首,燔之炙之。君子有酒,酌言酢之。

有兔斯首,燔之炮之。君子有酒,酌言酬之。

!!小雅 鱼藻之什 渐渐之石

渐渐之石,维其高矣。山川悠远,维其劳矣。武人东征,不皇朝矣。

渐渐之石,维其卒矣。山川悠远,曷其没矣?武人东征,不皇出矣。

有豕白蹢,烝涉波矣。月离于毕,俾滂沱矣。武人东征,不皇他矣。

!!小雅 鱼藻之什 苕之华

苕之华,芸其黄矣。心之忧矣,维其伤矣!

苕之华,其叶青青。知我如此,不如无生!

牂羊坟首,三星在罶。人可以食,鲜可以饱!

!!小雅 鱼藻之什 何草不黄

何草不黄?何日不行?何人不将?经营四方。

何草不玄?何人不矜?哀我征夫,独为匪民。

匪兕匪虎,率彼旷野。哀我征夫,朝夕不暇。

有芃者狐,率彼幽草。有栈之车,行彼周道。
!!! 机会

* [[实习 - 微软亚洲研究院“明日之星”开放岗位|http://mp.weixin.qq.com/s?__biz=MzA4NzIyMDY0OA==&mid=2655391644&idx=1&sn=e3c63a2838439ab990fb0372fe665d69&chksm=8b8e675bbcf9ee4ddcd6e51cdca6c0c07298c3632cf388bb2932ecc1ae15273714a178e2f7ee&mpshare=1&scene=23&srcid=1102ZHSwSRuzjzvybqVqvjNG#rd]]

!!! 实验室信息

* Shu Wu 吴书 
** http://shuwu.name
** 中科院自动化研究所 智能感知与计算研究中心
* Wang Cong 王枞
** http://school.freekaoyan.com/bj/bupt/daoshi/20130811/1376182278164094.shtml
** 智能信息处理、信息安全、网络安全
* 北大可视化研究中心
** http://vis.pku.edu.cn
* 吴国仕
** http://school.freekaoyan.com/bj/bupt/daoshi/20130811/1376188859164239.shtml
** 大数据与智能信息处理

!!! 购书

* Android 系 https://sale.jd.com/act/RBGaVDt3qnjd58.html
* 人工智能与深度学习系 https://sale.jd.com/act/FUTLwVHIil71C.html

!!! 考研

* 王道论坛 - 计算机考研论坛 http://www.cskaoyan.com/forum.php

!!! 出国

* 最全CMU计算机各项目录取要求与就业统计解析—总有一款适合你 https://mp.weixin.qq.com/s/eeAHhmvA7Eyib7mfhD891Q

!!! 鸡汤

* 来不及,你就不学了吗? http://wenda.tianya.cn/jinghua/1a9bqsn7l5n80asl3r9pis84e856p152imgdt

!!! 脑洞

* 代码的深渊:2022年,一个试图用AI取代程序员的故事  https://mp.weixin.qq.com/s/M_2mygXpdRVe6Sk_bsNRPg
中华人民共和国学科分类与代码国家标准(GB/T13745-2009)


  《中华人民共和国国家标准GB/T13745-2009》,由中华人民共和国国家质量监督检验检疫总局、中国国家标准化管理委员会于2009年5月6日发布,2009年11月1日实施。以下为摘录该标准的《学科分类代码表》内容:

!一级学科目录

!!自然科学类
 110 数学

 130 力学

 140 物理学

 150 化学

 160 天文学

 170 地球科学

 180 生物学

!!农业科学类

 210 农学

 220 林学

 230 畜牧、兽医科学

 240 水产学

!!医药科学类
 310 基础医学

 320 临床医学

 330 预防医学与卫生学

 340 军事医学与特种医学

 350 药学

 360 中医学与中药学

!!工程与技术学类
 410 工程与技术科学基础学科

 420 测绘科学技术

 430 材料科学

 440 矿山工程技术

 450 冶金工程技术

 460 机械工程

 470 动力与电气工程

 480 能源科学技术

 490 核科学技术

 510 电子、通信与自动控制技术

 520 计算机科学技术

 530 化学工程

 540 纺织科学技术

 550 食品科学技术

 560 土木建筑工程

 570 水利工程

 580 交通运输工程

 590 航空、航天科学技术

 610 环境科学技术

 620 安全科学技术

 630 管理学

!!人文与社会科学类
 710 马克思主义

 720 哲学

 730 宗教学

 740 语言学

 750 文学
 760 艺术学

 770 历史学

 780 考古学

 790 经济学

 810 政治学

 820 法学

 830 军事学

 840 社会学

 850 民族学

 860 新闻学与传播学

 870 图书馆、情报与文献学

 880 教育学

 890 体育科学

 910 统计学


!具体学科细分:

110 数学
110.11 数学史

110.14 数理逻辑与数学基础   110.1410 演绎逻辑学(亦称符号逻辑学)   110.1420 证明论(亦称元数学)   110.1430 递归论   110.1440 模型论
  110.1450 公理集合论   110.1460 数学基础   110.1499 数理逻辑与数学基础其他学科

110.17 数论   110.1710 初等数论   110.1720 解析数论   110.1730 代数数论   110.1740 超越数论   110.1750 丢番图逼近
  110.1760 数的几何   110.1770 概率数论   110.1780 计算数论   110.1799 数论其他学科

110.21 代数学   110.2110 线性代数   110.2115 群论   110.2120 域论   110.2125 李群   110.2130 李代数   110.2135 Kac-Moody代数
  110.2140 环论   110.2145 模论   110.2150 格论   110.2155 泛代数理论   110.2160 范畴论   110.2165 同调代数   110.2170 代数K理论
  110.2175 微分代数   110.2180 代数编码理论   110.2199 代数学其他学科

110.24 代数几何学

110.27 几何学   110.2710 几何学基础   110.2715 欧氏几何学   110.2720 非欧几何学(包括黎曼几何学等)   110.2725 球面几何学
  110.2730 向量和张量分析   110.2735 仿射几何学   110.2740 射影几何学   110.2745 微分几何学   110.2750 分数维几何   110.2755 计算几何学
  110.2799 几何学其他学科

110.31 拓扑学   110.3110 点集拓扑学   110.3115 代数拓扑学   110.3120 同伦论   110.3125 低维拓扑学   110.3130 同调论   110.3135 维数论
  110.3140 格上拓扑学   110.3145 纤维丛论   110.3150 几何拓扑学   110.3155 奇点理论   110.3160 微分拓扑学   110.3199 拓扑学其他学科

110.34 数学分析   110.3410 微分学   110.3420 积分学   110.3430 级数论   110.3499 数学分析其他学科

110.37 非标准分析

110.41 函数论   110.4110 实变函数论   110.4120 单复变函数论   110.4130 多复变函数论   110.4140 函数逼近论   110.4150 调和分析
  110.4160 复流形   110.4170 特殊函数论   110.4199 函数论其他学科

110.44 常微分方程   110.4410 定性理论   110.4420 稳定性理论   110.4430 解析理论   110.4499 常微分方程其他学科

110.47 偏微分方程   110.4710 椭圆型偏微分方程   110.4720 双曲型偏微分方程   110.4730 抛物型偏微分方程   110.4740 非线性偏微分方程
  110.4799 偏微分方程其他学科

110.51 动力系统   110.5110 微分动力系统   110.5120 拓扑动力系统   110.5130 复动力系统   110.5199 动力系统其他学科

110.54 积分方程

110.57 泛函分析   110.5710 线性算子理论   110.5715 变分法   110.5720 拓扑线性空间   110.5725 希尔伯特空间   110.5730 函数空间
  110.5735 巴拿赫空间   110.5740 算子代数   110.5745 测度与积分   110.5750 广义函数论   110.5755 非线性泛函分析   110.5799 泛函分析其他学科

110.61 计算数学   110.6110 插值法与逼近论   110.6120 常微分方程数值解   110.6130 偏微分方程数值解   110.6140 积分方程数值解
  110.6150 数值代数   110.6160 连续问题离散化方法   110.6170 随机数值实验   110.6180 误差分析   110.6199 计算数学其他学科

110.64 概率论   110.6410 几何概率   110.6420 概率分布   110.6430 极限理论   110.6440 随机过程   110.6450 马尔可夫过程
  110.6460 随机分析   110.6470 鞅论   110.6480 应用概率论   110.6499 概率论其他学科

110.67 数理统计学   110.6710 抽样理论   110.6715 假设检验   110.6720 非参数统计   110.6725 方差分析   110.6730 相关回归分析
  110.6735 统计推断   110.6740 贝叶斯统计   110.6745 试验设计   110.6750 多元分析   110.6755 统计判决理论   110.6760 时间序列分析
  110.6799 数理统计学其他学科

110.71 应用统计数学   110.7110 统计质量控制   110.7120 可靠性数学   110.7130 保险数学   110.7140 统计模拟   110.7199 应用统计数学其他学科

11

120.20 系统学   120.2010 混沌   120.2020 一般系统论   120.2030 耗散结构理论   120.2040 协同学   120.2050 突变论   120.2060 超循环论
  120.2099 系统学其他学科

120.30 控制理论   120.3010 大系统理论   120.3020 系统辩识   120.3030 状态估计   120.3040 鲁棒控制   120.3099 控制理论其他学科

120.40 系统评估与可行性分析

120.50 系统工程方法论   120.5010 系统建模   120.5099 系统工程方法论其他学科

120.60 系统工程

120.99 信息科学与系统科学其他学科

130 力学
130.10 基础力学   130.1010 理论力学   130.1020 理性力学   130.1030 非线性力学   130.1040 连续介质力学   130.1050 摩擦学
  130.1060 柔性多体力学   130.1070 陀螺力学   130.1080 飞行力学   130.1099 基础力学其他学科

130.15 固体力学   130.1510 弹性力学   130.1515 塑性力学(包括弹塑性力学)   130.1520 粘弹性、粘塑性力学   130.1525 蠕变
  130.1530 界面力学与表面力学   130.1535 疲劳   130.1540 损伤力学   130.1545 断裂力学   130.1550 散体力学   130.1555 细观力学
  130.1560 电磁固体力学   130.1565 结构力学   130.1570 计算固体力学   130.1575 实验固体力学   130.1599 固体力学其他学科

130.20 振动与波   130.2010 线性振动力学   130.2020 非线性振动力学   130.2030 弹性体振动力学   130.2040 随机振动力学
  130.2050 振动控制理论   130.2060 固体中的波   130.2070 流体-固体耦合振动   130.2099 振动与波其他学科

130.25 流体力学   130.2511 理论流体力学   130.2514 水动力学   130.2517 气体动力学   130.2521 空气动力学   130.2524 悬浮体力学
  130.2527 湍流理论   130.2531 粘性流体力学   130.2534 多相流体力学   130.2537 渗流力学   130.2541 物理-化学流体力学
  130.2544 等离子体动力学   130.2547 电磁流体力学   130.2551 非牛顿流体力学   130.2554 流体机械流体力学   130.2557 旋转与分层流体力学
  130.2561 辐射流体力学   130.2564 计算流体力学   130.2567 实验流体力学   130.2571 环境流体力学   130.2599 流体力学其他学科

130.30 流变学

130.35 爆炸力学   130.3510 爆轰与爆燃理论   130.3520 爆炸波、冲击波、应力波   130.3530 高速碰撞动力学   130.3599 爆炸力学其他学科

130.40 物理力学   130.4010 高压固体物理力学   130.4020 稠密流体物理力学   130.4030 高温气体物理力学   130.4040 多相介质物理力学
  130.4050 临界现象与相变   130.4060 原子与分子动力学   130.4099 物理力学其他学科

130.45 统计力学

130.50 应用力学

130.99 力学其他学科

140 物理学
140.10 物理学史

140.15 理论物理学

  140.1510 数学物理   140.1520 电磁场理论   140.1530 经典场论   140.1540 相对论与引力场

  140.1550 量子力学   140.1560 统计物理学   140.1599 理论物理学其他学科

140.20 声学

  140.2010 物理声学   140.2020 非线性声学   140.2030 量子声学   140.2040 超声学

  140.2050 水声学   140.2060 应用声学   140.2099 声学其他学科

140.25 热学

  140.2510 热力学   140.2520 热物性学   140.2530 传热学   140.2599 热学其他学科

140.30 光学

  140.3010 几何光学   140.3015 物理光学   140.3020 非线性光学   140.3025 光谱学

  140.3030 量子光学   140.3035 信息光学   140.3040 导波光学   140.3045 发光学

  140.3050 红外物理   140.3055 激光物理   140.3060 应用光学   140.3099 光学其他学科

140.35 电磁学

  140.3510 电学   140.3520 静电学   140.3530 静磁学   140.3540 电动力学

  140.3599 电磁学其他学科

140.40 无线电物理

  140.4010 电磁波物理   140.4020 量子无线电物理   140.4030 微波物理学   140.4040 超高频无线电物理

  140.4050 统计无线电物理   140.4099 无线电物理其他学科

140.45 电子物理学

  140.4510 量子电子学   140.4520 电子离子与真空物理   140.4530 带电粒子光学   140.4599 电子物理学其他学科

140.50 凝聚态物理学

  140.5010 凝聚态理论   140.5015 金属物理学   140.5020 半导体物理学   140.5025 电介质物理学

  140.5030 晶体学(包括晶体生长、晶体化学等)   140.5035 非晶态物理学   140.5040 液晶物理学   140.5045 薄膜物理学

  140.5050 低维物理   140.5055 表面与界面物理学   140.5060 固体发光   140.5065 磁学

  140.5070 超导物理学   140.5075 低温物理学   140.5080 高压物理学   140.5099 凝聚态物理学其他学科

140.55 等离子体物理学

  140.5510 热核聚变等离子体物理学   140.5520 低温等离子体物理学   140.5530 等离子体光谱学   140.5540 凝聚态等离子体物理学

  140.5550 非中性等离子体物理学   140.5599 等离子体物理学其他学科

140.60 原子分子物理学

  140.6010 原子与分子理论   140.6020 原子光谱学   140.6030 分子光谱学   140.6040 波谱学

  140.6050 原子与分子碰撞过程   140.6099 原子分子物理学其他学科

140.65 原子核物理学

  140.6510 核结构   140.6515 核能谱学   140.6520 低能核反应   140.6525 中子物理学

  140.6530 裂变物理学   140.6535 聚变物理学   140.6540 轻粒子核物理学   140.6545 重离子核物理学

  140.6550 中高能核物理学   140.6599 原子核物理学其他学科

140.70 高能物理学

  140.7010 基本粒子物理学   140.7020 宇宙线物理学   140.7030 粒子加速器物理学   140.7040 高能物理实验

  140.7099 高能物理学其他学科

140.75 计算物理学

140.80 应用物理学

140.99 物理学其他学科

150 化学
150.10 化学史

150.15 无机化学

  150.1510 元素化学   150.1520 配位化学   150.1530 同位素化学   150.1540 无机固体化学

  150.1550 无机合成化学   150.1560 无机分离化学   150.1570 物理无机化学   150.1580 生物无机化学

  150.1599 无机化学其他学科

150.20 有机化学

  150.2010 元素有机化学(包括金属有机化学等)   150.2020 天然产物有机化学   150.2030 有机固体化学   150.2040 有机合成化学

  150.2050 有机光化学   150.2060 物理有机化学(包括理论有机化学、立体化学等)   150.2070 生物有机化学   150.2099 有机化学其他学科

150.25 分析化学

  150.2510 化学分析(包括定性分析、定量分析等)   150.2515 电化学分析   150.2520 光谱分析   150.2525 波谱分析

  150.2530 质谱分析   150.2535 热谱分析   150.2540 色谱分析   150.2545 光度分析

  150.2550 放射分析   150.2555 状态分析与物相分析   150.2560 分析化学计量学   150.2599 分析化学其他学科

150.30 物理化学

  150.3010 化学热力学   150.3015 化学动力学(包括分子反应动力学等)   150.3020 结构化学(包括表面化学、结构分析等)

  150.3025 量子化学   150.3030 胶体化学与界面化学   150.3035 催化化学   150.3040 热化学

  150.3045 光化学(包括超分子光化学、光电化学、激光化学、感光化学等)   150.3050 电化学   150.3055 磁化学

  150.3060 高能化学(包括辐射化学,等离体化学)   150.3065 计算化学   150.3099 物理化学其他学科

150.35 化学物理学

150.40 高分子物理

150.45 高分子化学

  150.4510 无机高分子化学   150.4520 天然高分子化学   150.4530 功能高分子(包括液晶高分子化学)

  150.4540 高分子合成化学   150.4550 高分子物理化学   150.4560 高分子光化学   150.4599 高分子化学其他学科

150.50 核化学

  150.5010 放射化学   150.5020 核反应化学   150.5030 裂变化学   150.5040 聚变化学

  150.5050 重离子核化学   150.5060 核转变化学   150.5070 环境放射化学   150.5099 核化学其他学科

150.55 应用化学

150.99 化学其他学科

160 天文学
160.10 天文学史

160.15 天体力学

  160.1510 摄动理论   160.1520 天体力学定性理论   160.1530 天体形状与自转理论   160.1540 天体力学数值方法

  160.1550 天文动力学(包括人造卫星、宇宙飞船动力学等)   160.1560 历书天文学   160.1599 天体力学其他学科

160.20 天体物理学

  160.2010 理论天体物理学   160.2020 相对论天体物理学   160.2030 等离子体天体物理学

  160.2040 高能天体物理学(包括天体核物理学)   160.2050 实测天体物理学   160.2099 天体物理学其他学科

160.25 天体化学

160.30 天体测量学

  160.3010 天文地球动力学   160.3020 基本天体测量学   160.3030 照相天体测量学   160.3040 射电天体测量学

  160.3050 空间天体测量学   160.3060 方位天文学   160.3070 实用天文学   160.3099 天体测量学其他学科

160.35 射电天文学

  160.3510 射电天体物理学   160.3520 射电天文方法   160.3599 射电天文学其他学科

160.40 空间天文学

  160.4010 红外天文学   160.4020 紫外天文学   160.4030 X射线天文学   160.4040 r射线天文学

  160.4050 中微子天文学   160.4099 空间天文学其他学科

160.45 天体演化学(各层次天体形成与演化入各学科)

160.50 星系与宇宙学

  160.5010 星系动力学   160.5020 星系天文学   160.5030 运动宇宙学   160.5040 星系际物质

  160.5050 大爆炸宇宙论   160.5060 星系形成与演化   160.5070 宇宙大尺度结构起源与演化   160.5099 星系与宇宙学其他学科

160.55 恒星与银河系

  160.5510 恒星物理学   160.5520 恒星天文学   160.5530 恒星形成与演化   160.5540 星际物质物理学

  160.5550 银河系结构与运动   160.5599 恒星与银河系其他学科

160.60 太阳与太阳系

  160.6010 太阳物理学   160.6020 太阳系物理学   160.6030 太阳系形成与演化   160.6040 行星物理学

  160.6050 行星际物理学   160.6060 陨星学   160.6099 太阳与太阳系其他学科

160.65 天体生物学

160.99 天文学其他学科

170 地球科学
170.10 地球科学史

170.15 大气科学

  170.1510 大气物理学(包括大气光学、大气声学、大气电学、云雾物理学、边界层物理学、中层物理学等)

  170.1515 大气化学   170.1520 大气探测(包括大气遥感)   170.1525 动力气象学(包括数值天气预报与数值模拟等)   170.1530 天气学

  170.1535 气候学   170.1540 云与降水物理学   170.1545 应用气象学   170.1599 大气科学其他学科

170.20 固体地球物理学

  170.2010 地球动力学   170.2015 地球重力学   170.2020 地球流体力学   170.2025 地壳与地形变

  170.2030 地球内部物理学   170.2035 地声学   170.2040 地热学   170.2045 地电学

  170.2050 地磁学   170.2055 放射性地球物理学   170.2060 地震学   170.2065 勘探地球物理学

  170.2070 计算地球物理学   170.2075 实验地球物理学   170.2099 固体地球物理学其他学科

170.25 空间物理学

  170.2510 电离层物理学   170.2520 高层大气物理学   170.2530 磁层物理学   170.2540 空间物理探测

  170.2550 空间环境学   170.2599 空间物理学其他学科

170.30 地球化学

  170.3010 元素地球化学   170.3015 有机地球化学   170.3020 放射性地球化学   170.3025 同位素地球化学

  170.3030 生物地球化学   170.3035 地球内部化学   170.3040 同位素地质年代学   170.3045 成矿地球化学

  170.3050 勘探地球化学   170.3055 实验地球化学   170.3099 地球化学其他学科

170.35 大地测量学

  170.3510 地球形状学   170.3520 几何大地测量学   170.3530 物理大地测量学   170.3540 动力大地测量学

  170.3550 空间大地测量学   170.3560 行星大地测量学   170.3599 大地测量学其他学科

170.40 地图学

170.45 地理学

  170.4510 自然地理学(包括化学地理学、生态地理学、地貌学、冰川学、冻土学、沙漠学、岩溶学等)

  170.4520 人文地理学(包括区域地理、旅游地理, 其他入有关学科)   170.4599 地理学其他学科

170.50 地质学

  170.5011 数学地质学   170.5014 地质力学   170.5017 动力地质学   170.5021 矿物学(包括放射性矿物学)

  170.5024 矿床学与矿相学(包括放射性矿床学,不包括石油、天然气和煤。)

  170.5027 岩石学   170.5031 岩土力学   170.5034 沉积学   170.5037 古地理学

  170.5041 古生物学   170.5044 地层学与地史学   170.5047 前寒武纪地质学   170.5051 第四纪地质学

  170.5054 构造地质学(包括显微构造学等)   170.5057 大地构造学   170.5061 勘查地质学

  170.5064 水文地质学(包括放射性水文地质学)   170.5067 遥感地质学   170.5071 区域地质学   170.5074 火山学

  170.5077 石油与天然气地质学   170.5081 煤田地质学   170.5084 实验地质学   170.5099 地质学其他学科

170.55 水文学

  170.5510 水文物理学   170.5515 水文化学   170.5520 水文地理学   170.5525 水文气象学

  170.5530 水文测量   170.5535 水文图学   170.5540 湖沼学   170.5545 河流学与河口水文学

  170.5599 水文学其他学科

170.60 海洋科学

  170.6010 海洋物理学   170.6015 海洋化学   170.6020 海洋地球物理学   170.6025 海洋气象学

  170.6030 海洋地质学   170.6035 物理海洋学   170.6040 海洋生物学   170.6045 河口、海岸学

  170.6050 海洋调查与监测   170.6099 海洋科学其他学科

170.99 地球科学其他学科

180 生物学
180.11 生物数学(包括生物统计学等)

180.14 生物物理学

  180.1410 生物信息论与生物控制论   180.1415 生物力学(包括生物流体力学与生物流变学等)   180.1420 理论生物物理学

  180.1425 生物声学与声生物物理学   180.1430 生物光学与光生物物理学   180.1435 生物电磁学   180.1440 生物能量学

  180.1445 低温生物物理学   180.1450 分子生物物理学   180.1455 空间生物物理学   180.1460 仿生学

  180.1465 系统生物物理学   180.1499 生物物理学其他学科

180.17 生物化学

  180.1710 多肽与蛋白质生物化学   180.1715 核酸生物化学   180.1720 多糖生物化学   180.1725 脂类生物化学

  180.1730 酶学   180.1735 膜生物化学   180.1740 激素生物化学   180.1745 生殖生物化学

  180.1750 免疫生物化学   180.1755 毒理生物化学   180.1760 比较生物化学   180.1765 应用生物化学

  180.1799 生物化学其他学科

180.21 细胞生物学

  180.2110 细胞生物物理学   180.2120 细胞结构与形态学   180.2130 细胞生理学   180.2140 细胞进化学

  180.2150 细胞免疫学   180.2160 细胞病理学   180.2199 细胞生物学其他学科

180.24 生理学

  180.2411 形态生理学   180.2414 新陈代谢与营养生理学   180.2417 心血管生理学   180.2421 呼吸生理学

  180.2424 消化生理学   180.2427 血液生理学   180.2431 泌尿生理学   180.2434 内分泌生理学

  180.2437 感官生理学   180.2441 生殖生理学   180.2444 骨骼生理学   180.2447 肌肉生理学

  180.2451 皮肤生理学   180.2454 循环生理学   180.2457 比较生理学   180.2461 年龄生理学

  180.2464 特殊环境生理学   180.2467 语言生理学   180.2499 生理学其他学科

180.27 发育生物学

180.31 遗传学

  180.3110 数量遗传学   180.3115 生化遗传学   180.3120 细胞遗传学   180.3125 体细胞遗传学

  180.3130 发育遗传学(亦称发生遗传学)   180.3135 分子遗传学   180.3140 辐射遗传学   180.3145 进化遗传学

  180.3150 生态遗传学   180.3155 免疫遗传学   180.3160 毒理遗传学   180.3165 行为遗传学

  180.3170 群体遗传学   180.3199 遗传学其他学科

180.34 放射生物学

  180.3410 放射生物物理学   180.3420 细胞放射生物学   180.3430 放射生理学   180.3440 分子放射生物学

  180.3450 放射免疫学   180.3460 放射毒理学   180.3499 放射生物学其他学科

180.37 分子生物学

180.41 生物进化论

180.44 生态学

  180.4410 数学生态学   180.4415 化学生态学   180.4420 生理生态学   180.4425 生态毒理学

  180.4430 区域生态学   180.4435 种群生态学   180.4440 群落生态学   180.4445 生态系统生态学

  180.4450 生态工程学   180.4499 生态学其他学科

180.47 神经生物学

  180.4710 神经生物物理学   180.4715 神经生物化学   180.4720 神经形态学   180.4725 细胞神经生物学

  180.4730 神经生理学   180.4735 发育神经生物学   180.4740 分子神经生物学   180.4745 比较神经生物学

  180.4750 系统神经生物学   180.4799 神经生物学其他学科

180.51 植物学

  180.5110 植物化学   180.5115 植物生物物理学   180.5120 植物生物化学   180.5125 植物形态学

  180.5130 植物解剖学   180.5135 植物细胞学   180.5140 植物生理学   180.5145 植物胚胎学

  180.5150 植物发育学   180.5155 植物遗传学   180.5160 植物生态学   180.5165 植物地理学

  180.5170 植物群落学   180.5175 植物分类学   180.5180 实验植物学   180.5185 植物寄生虫学

  180.5199 植物学其他学科

180.54 昆虫学

  180.5410 昆虫生物化学   180.5415 昆虫形态学   180.5420 昆虫组织学   180.5425 昆虫生理学

  180.5430 昆虫生态学   180.5435 昆虫病理学   180.5440 昆虫毒理学   180.5445 昆虫行为学

  180.5450 昆虫分类学   180.5455 实验昆虫学   180.5460 昆虫病毒学   180.5499 昆虫学其他学科

180.57 动物学

  180.5711 动物生物物理学   180.5714 动物生物化学   180.5717 动物形态学   180.5721 动物解剖学

  180.5724 动物组织学   180.5727 动物细胞学   180.5731 动物生理学   180.5734 动物生殖生物学

  180.5737 动物生长发育学   180.5741 动物遗传学   180.5744 动物生态学   180.5747 动物病理学

  180.5751 动物行为学   180.5754 动物地理学   180.5757 动物分类学   180.5761 实验动物学

  180.5764 动物寄生虫学   180.5767 动物病毒学   180.5799 动物学其他学科

180.61 微生物学

  180.6110 微生物生物化学   180.6115 微生物生理学   180.6120 微生物遗传学   180.6125 微生物生态学

  180.6130 微生物免疫学   180.6135 微生物分类学   180.6140 真菌学   180.6145 细菌学

  180.6150 应用微生物学   180.6199 微生物学其他学科

180.64 病毒学

  180.6410 病毒生物化学   180.6420 分子病毒学   180.6430 病毒生态学   180.6440 病毒分类学

  180.6499 病毒学其他学科

180.67 人类学

  180.6710 人类起源与演化学   180.6715 人类形态学   180.6720 人类遗传学   180.6725 分子人类学

  180.6730 人类生态学   180.6735 心理人类学   180.6740 古人类学   180.6745 人种学

  180.6750 人体测量学   180.6799 人类学其他学科

180.71 生物工程(亦称生物技术)

  180.7110 基因工程(亦称遗传工程)   180.7120 细胞工程   180.7130 蛋白质工程   180.7140 酶工程

  180.7150 发酵工程(亦称微生物工程)   180.7199 生物工程其他学科

180.74 心理学

  180.7410 心理学史   180.7415 普通心理学   180.7420 生理心理学   180.7425 认知心理学

  180.7430 发展心理学   180.7435 个性心理学   180.7440 缺陷心理学   180.7445 比较心理学

  180.7450 实验心理学   180.7455 应用心理学   180.7499 心理学其他学科

180.99 生物学其他学科

210 农学
210.10 农业史

210.20 农业基础学科

  210.2010 农业数学   210.2020 农业气象学与农业气候学   210.2030 农业生物物理学   210.2040 农业生物化学

  210.2050 农业生态学   210.2060 农业植物学   210.2070 农业微生物学   210.2080 植物营养学

  210.2099 农业基础学科其他学科

210.30 农艺学

  210.3010 作物形态学   210.3015 作物生理学   210.3020 作物遗传学   210.3025 作物生态学

  210.3030 种子学   210.3035 作物育种学与良种繁育学   210.3040 作物栽培学   210.3045 作物耕作学

  210.3050 作物种质资源学   210.3055 农产品贮藏与加工   210.3099 农艺学其他学科

210.40 园艺学

  210.4010 果树学   210.4020 瓜果学   210.4030 蔬菜学   210.4040 果蔬贮藏与加工

  210.4050 茶学(包括茶加工等)   210.4060 观赏园艺学   210.4099 园艺学其他学科

210.50 土壤学

  210.5010 土壤物理学   210.5015 土壤化学   210.5020 土壤地理学   210.5025 土壤生物学

  210.5030 土壤生态学   210.5035 土壤耕作学   210.5040 土壤改良学   210.5045 土壤肥料学

  210.5050 土壤分类学   210.5055 土壤调查与评价   210.5099 土壤学其他学科

210.60 植物保护学

  210.6010 植物检疫学   210.6015 植物免疫学   210.6020 植物病理学   210.6025 植物药理学

  210.6030 农业昆虫学   210.6035 植物病毒学   210.6040 农药学   210.6045 植物病虫害测报学

  210.6050 抗病虫害育种   210.6055 有害生物化学防治   210.6060 有害生物生物防治   210.6065 有害生物综合防治

  210.6070 杂草防治   210.6075 鸟兽、鼠害防治   210.6099 植物保护学其他学科

210.70 农业工程

  210.7010 农业机械学(包括农业机械制造等)   210.7015 农业机械化   210.7020 农业电气化与自动化

  210.7025 农田水利(包括灌溉工程、排水工程等)   210.7030 水土保持学   210.7035 农田测量

  210.7040 农业环保工程   210.7045 农业区划   210.7050 农业系统工程   210.7099 农业工程其他学科

210.99 农学其他学科  

220 林学
220.10 林业基础学科

  220.1010 森林气象学   220.1020 森林地理学   220.1030 森林水文学   220.1040 森林土壤学

  220.1050 树木生理学   220.1060 森林生态学   220.1070 森林植物学   220.1099 林业基础学科其他学科

220.15 林木遗传育种学

  220.1510 林木育种学   220.1520 林木遗传学   220.1599 林木遗传育种学其他学科

220.20 森林培育学(亦称造林学)

220.25 森林经理学

  220.2510 森林测计学   220.2520 森林测量学   220.2530 林业遥感   220.2540 林业信息管理

  220.2550 林业系统工程   220.2599 森林经理学其他学科

220.30 森林保护学

  220.3010 森林病理学   220.3020 森林昆虫学   220.3030 森林防火学   220.3099 森林保护学其他学科

220.35 野生动物保护与管理

220.40 防护林学

220.45 经济林学

220.50 园林学

  220.5010 园林植物学   220.5020 风景园林工程   220.5030 风景园林经营与管理   220.5099 园林学其他学科

220.55 林业工程

  220.5510 森林采运学   220.5520 林业机械   220.5530 林业机械化与电气化   220.5540 木材学

  220.5550 木材加工与人造板工艺学(包括家具设计与制造等)   220.5560 木材防腐学   220.5570 林产化学加工学

  220.5599 林业工程其他学科

220.60 森林统计学

220.65 林业经济学

220.99 林学其他学科  

230 畜牧、兽医科学
230.10 畜牧、兽医科学基础学科

  230.1010 家畜生物化学   230.1020 家畜生理学   230.1030 家畜遗传学   230.1040 家畜生态学

  230.1050 家畜微生物学   230.1099 畜牧、兽医科学基础学科其他学科

230.20 畜牧学

  230.2010 家畜育种学   230.2015 家畜繁殖学   230.2020 动物营养学   230.2025 饲料学

  230.2030 家畜饲养管理学   230.2035 特种经济动物饲养学   230.2040 家畜行为学   230.2045 家畜卫生学

  230.2050 草原学(包括牧草学、牧草育种学、牧草栽培学、草地生态学、草地保护学等)

  230.2055 畜产品贮藏与加工   230.2060 畜牧机械化   230.2065 养禽学   230.2070 养蜂学

  230.2075 养蚕学   230.2080 畜牧经济学   230.2099 畜牧学其他学科

230.30 兽医学

  230.3010 家畜解剖学   230.3015 家畜组织胚胎学   230.3020 兽医免疫学

  230.3025 家畜病理学(亦称兽医病理学)   230.3030 兽医药理学   230.3035 兽医临床学

  230.3040 兽医卫生检疫学   230.3045 家畜寄生虫学   230.3050 家畜传染病学   230.3055 家畜病毒学

  230.3060 中兽医学   230.3065 兽医器械学   230.3099 兽医学其他学科

230.99 畜牧、兽医科学其他学科  

240 水产学
240.10 水产学基础学科

  240.1010 水产化学   240.1020 水产地理学   240.1030 水产生物学   240.1040 水域生态学

  240.1099 水产学基础学科其他学科

240.15 水产增殖学

240.20 水产养殖学

240.25 水产饲料学

240.30 水产保护学

240.35 捕捞学

240.40 水产品贮藏与加工

240.45 水产工程学

240.50 水产资源学

240.55 水产经济学

240.99 水产学其他学科  

310 基础医学
310.11 医学生物化学

310.14 人体解剖学

  310.1410 系统解剖学   310.1420 局部解剖学   310.1499 人体解剖学其他学科

310.17 医学细胞生物学

310.21 人体生理学

310.24 人体组织胚胎学

310.27 医学遗传学

310.31 放射医学

310.34 人体免疫学

310.37 医学寄生虫学

  310.3710 医学寄生虫免疫学   310.3720 医学昆虫学   310.3730 医学蠕虫学   310.3740 医学原虫学

  310.3799 医学寄生虫学其他学科

310.41 医学微生物学(包括医学病毒学等)

310.44 病理学

  310.4410 病理生物学   310.4420 病理解剖学   310.4430 病理生理学   310.4440 免疫病理学

  310.4450 实验病理学   310.4460 比较病理学   310.4470 系统病理学   310.4480 环境病理学

  310.4499 病理学其他学科

310.47 药理学

  310.4710 基础药理学   310.4720 临床药理学   310.4730 生化药理学   310.4740 分子药理学

  310.4750 免疫药理学   310.4799 药理学其他学科

310.51 医学实验动物学

310.54 医学心理学

310.57 医学统计学

310.61 生物医学工程学

  310.6110 生物医学电子学   310.6120 临床工程学   310.6130 康复工程学   310.6140 生物医学测量学

  310.6150 人工器官与生物医学材料学   310.6199 生物医学工程学其他学科

310.99 基础医学其他学科  

320 临床医学
320.11 临床诊断学

  320.1110 症状诊断学   320.1120 物理诊断学   320.1130 机能诊断学

  320.1140 医学影象学(包括放射诊断学、同位素诊断学、超声诊断学等)   320.1150 临床放射学   320.1160 实验诊断学

  320.1199 临床诊断学其他学科

320.14 保健医学

  320.1410 康复医学   320.1420 运动医学(包括力学运动医学等)   320.1430 老年医学

  320.1499 保健医学其他学科

320.17 理疗学

320.21 麻醉学

  320.2110 麻醉生理学   320.2120 麻醉药理学   320.2130 麻醉应用解剖学   320.2199 麻醉学其他学科

320.24 内科学

  320.2410 心血管病学   320.2415 呼吸病学   320.2420 结核病学   320.2425 胃肠病学

  320.2430 血液病学   320.2435 肾脏病学   320.2440 内分泌学   320.2445 风湿病学与自体免疫病学

  320.2450 变态反应学   320.2455 感染性疾病学   320.2499 内科学其他学科

320.27 外科学

  320.2710 普通外科学   320.2715 显微外科学   320.2720 神经外科学   320.2725 颅脑外科学

  320.2730 胸外科学   320.2735 心血管外科学   320.2740 泌尿外科学   320.2745 骨外科学

  320.2750 烧伤外科学   320.2755 整形外科学   320.2760 器官移植外科学   320.2765 实验外科学

  320.2799 外科学其他学科

320.31 妇产科学

  320.3110 妇科学   320.3120 产科学   320.3130 围产医学(亦称围生医学)   320.3140 助产学

  320.3150 胎儿学   320.3160 妇科产科手术学   320.3199 妇产科学其他学科

320.34 儿科学

320.37 眼科学

320.41 耳鼻咽喉科学

320.44 口腔医学

  320.4410 口腔解剖生理学   320.4415 口腔组织学与口腔病理学   320.4420 口腔材料学   320.4425 口腔影象诊断学

  320.4430 口腔内科学   320.4435 口腔颌面外科学   320.4440 口腔矫形学   320.4445 口腔正畸学

  320.4450 口腔病预防学   320.4499 口腔医学其他学科

320.47 皮肤病学

320.51 性医学

320.54 神经病学

320.57 精神病学(包括精神卫生及行为医学等)

320.61 急诊医学

320.64 核医学

320.67 肿瘤学

  320.6710 肿瘤免疫学   320.6720 肿瘤病因学   320.6730 肿瘤病理学   320.6740 肿瘤诊断学

  320.6750 肿瘤治疗学   320.6760 肿瘤预防学   320.6770 实验肿瘤学   320.6799 肿瘤学其他学科

320.71 护理学

  320.7110 基础护理学   320.7120 专科护理学   320.7130 特殊护理学   320.7140 护理心理学

  320.7150 护理伦理学   320.7160 护理管理学   320.7199 护理学其他学科

320.99 临床医学其他学科  

330 预防医学与卫生学
330.11 营养学

330.14 毒理学

330.17 消毒学

330.21 流行病学

330.24 传染病学

330.27 媒介生物控制学

330.31 环境医学

330.34 职业病学

330.37 地方病学

330.41 社会医学

330.44 卫生检验学

330.47 食品卫生学

330.51 儿少卫生学

330.54 妇幼卫生学

330.57 环境卫生学

330.61 劳动卫生学

330.64 放射卫生学

330.67 卫生工程学

330.71 卫生经济学

330.74 优生学

330.77 健康教育学

330.81 卫生管理学

330.99 预防医学与卫生学其他学科  

340 军事医学与特种医学
340.10 军事医学

  340.1010 野战外科学   340.1015 军队流行病学   340.1020 军事环境医学   340.1025 军队卫生学

  340.1030 军队卫生装备学   340.1035 军事人机工效学   340.1040 核武器医学防护学   340.1045 化学武器医学防护学

  340.1050 生物武器医学防护学   340.1055 激光与微波医学防护学   340.1099 军事医学其他学科

340.20 特种医学

  340.2010 航空航天医学   340.2020 潜水医学   340.2030 航海医学   340.2040 法医学

  340.2099 特种医学其他学科

340.99 军事医学与特种医学其他学科  

350 药学
350.10 药物化学(包括天然药物化学等)

350.20 生物药物学

350.25 微生物药物学

350.30 放射性药物学

350.35 药剂学

350.40 药效学

350.45 药物管理学

350.50 药物统计学

350.99 药学其他学科  

360 中医学与中药学
360.10 中医学

  360.1011 中医基础理论(包括经络学等)   360.1014 中医诊断学   360.1017 中医内科学

  360.1021 中医外科学   360.1024 中医骨伤科学   360.1027 中医妇科学   360.1031 中医儿科学

  360.1034 中医眼科学   360.1037 中医耳鼻咽喉科学   360.1041 中医口腔科学   360.1044 中医老年病学

  360.1047 针灸学(包括针刺镇痛与麻醉等)   360.1051 按摩推拿学   360.1054 中医养生康复学(包括气功研究等)

  360.1057 中医护理学   360.1061 中医食疗学   360.1064 方剂学

  360.1067 中医文献学(包括难经、内经、伤寒论、金匮要略、腧穴学等)   360.1099 中医学其他学科

360.20 民族医学

360.30 中西医结合医学

360.40 中药学

  360.4010 中药化学   360.4015 中药药理学   360.4020 本草学   360.4025 药用植物学

  360.4030 中药鉴定学   360.4035 中药炮制学   360.4040 中药药剂学   360.4045 中药资源学

  360.4050 中药管理学   360.4099 中药学其他学科

360.99 中医学与中药学其他学科  

410 工程与技术科学基础学科
410.10 工程数学

410.15 工程控制论

410.20 工程力学

410.25 工程物理学

410.30 工程地质学

410.35 工程水文学

410.40 工程仿生学

410.45 工程心理学

410.50 标准化科学技术(亦称标准化学)

410.55 计量学

410.60 工程图学

410.65 勘查技术

410.70 工程通用技术

  410.7010 密封技术   410.7020 粉末技术   410.7030 真空技术   410.7040 薄膜技术

  410.7050 爆破技术   410.7060 包装技术   410.7070 照相技术   410.7080 物料搬运技术

  410.7099 工程通用技术其他学科

410.75 工业工程学(亦称工程系统工程)

410.99 工程与技术科学基础学科其他学科  

420 测绘科学技术
420.10 大地测量技术

  420.1010 大地测量定位   420.1020 重力测量   420.1030 测量平差   420.1099 大地测量技术其他学科

420.20 摄影测量与遥感技术

  420.2010 地物波谱学   420.2020 近景摄影测量   420.2030 航空摄影测量   420.2040 遥感信息工程

  420.2099 摄影测量与遥感技术其他学科

420.30 地图制图技术

  420.3010 地图投影学   420.3020 地图设计与编绘   420.3030 图形图象复制技术   420.3040 地理信息系统

  420.3099 地图制图技术其他学科

420.40 工程测量技术

  420.4010 地籍测量   420.4020 精密工程测量   420.4099 工程测量技术其他学科

420.50 海洋测绘

  420.5010 海洋大地测量   420.5015 海洋重力测量   420.5020 海洋磁力测量   420.5025 海洋跃层测量

  420.5030 海洋声速测量   420.5035 海道测量   420.5040 海底地形测量   420.5045 海图制图

  420.5050 海洋工程测量   420.5099 海洋测绘其他学科

420.60 测绘仪器

420.99 测绘科学技术其他学科  

430 材料科学
430.10 材料科学基础学科

  430.1010 材料力学   430.1020 相图与相变(包括合金化等)   430.1030 材料的组织、结构、缺陷与性能

  430.1040 金属学   430.1050 陶瓷学   430.1060 高分子材料学   430.1099 材料科学基础学科其他学科

430.15 材料表面与界面(包括表面优化技术)

430.20 材料失效与保护(包括材料腐蚀、磨损、老化、断裂及其控制等)

430.25 材料检测与分析技术

430.30 材料实验

430.35 材料合成与加工工艺

430.40 金属材料

  430.4010 黑色金属及其合金   430.4020 有色金属及其合金   430.4030 非晶、微晶金属材料(包括准晶和纳米晶材料等)

  430.4040 低维金属材料(包括薄膜、纤维和零维金属材料等)   430.4050 特种功能金属材料   430.4099 金属材料其他学科

430.45 无机非金属材料

  430.4510 玻璃与非晶无机非金属材料   430.4520 低维无机非金属材料(包括薄膜、纤维和零维非金属材料等)   430.4530 人工晶体

  430.4540 无机陶瓷材料(包括耐火材料等)   430.4550 特种功能无机非金属材料   430.4599 无机非金属材料其他学科

430.50 有机高分子材料

  430.5010 塑料、橡胶和纤维   430.5020 功能高分子材料   430.5030 高性能高分子材料

  430.5040 高分子液晶材料   430.5099 有机高分子材料其他学科

430.55 复合材料

  430.5510 金属基复合材料(包括多相复合材料等)   430.5520 无机非金属基复合材料(包括无机多相复合材料等)

  430.5530 聚合物基复合材料(包括有机多相复合材料等)   430.5599 复合材料其他学科

430.99 材料科学其他学科  

440 矿山工程技术
440.10 矿山地质学

440.15 矿山测量

440.20 矿山设计

  440.2010 地下矿设计   440.2020 露天矿设计   440.2099 矿山设计其他学科

440.25 矿山地面工程

440.30 井巷工程

  440.3010 矿山压力工程   440.3020 矿山支护工程   440.3099 井巷工程其他学科

440.35 采矿工程

  440.3510 煤矿开采   440.3520 煤及油母页岩地下气化   440.3530 金属矿开采   440.3540 非金属矿开采

  440.3599 采矿工程其他学科

440.40 选矿工程

  440.4010 选矿理论   440.4020 选矿技术   440.4030 矿石处理   440.4099 选矿工程其他学科

440.45 钻井工程

440.50 油气田开发工程

440.55 石油、天然气储存与运输工程

440.60 矿山机械工程

  440.6010 采矿机械   440.6020 选矿机械   440.6030 矿山运输机械   440.6099 矿山机械工程其他学科

440.65 矿山电气工程

440.70 采矿环境工程

440.75 矿山安全

440.80 矿山综合利用工程

440.99 矿山工程技术其他学科  

450 冶金工程技术
450.10 冶金物理化学

450.15 冶金反应工程

450.20 冶金原料与预处理

450.25 冶金热能工程

  450.2510 冶金燃料   450.2520 燃烧理论   450.2530 燃烧计算   450.2540 冶金分析

  450.2599 冶金热能工程其他学科

450.30 冶金技术

  450.3010 提炼冶金   450.3015 粉末冶金   450.3020 真空冶金   450.3025 电磁冶金

  450.3030 原子能冶金   450.3035 湿法冶金   450.3040 纤维冶金   450.3045 卤素冶金

  450.3050 微生物冶金   450.3099 冶金技术其他学科

450.35 钢铁冶金

  450.3510 炼铁   450.3520 炼钢   450.3530 铁合金冶炼   450.3599 钢铁冶金其他学科

450.40 有色金属冶金

450.45 轧制

450.50 冶金机械及自动化

450.99 冶金工程技术其他学科  

460 机械工程
460.10 机械史

460.15 机械学

  460.1510 机械原理与机构学   460.1520 机械动力学与振动   460.1530 机械强度   460.1540 机械摩擦、磨损及润滑

  460.1599 机械学其他学科

460.20 机械设计

  460.2010 机械设计原理与方法   460.2020 机械零件及传动   460.2030 机械公差、配合与技术测量   460.2040 机械制图

  460.2099 机械设计其他学科

460.25 机械制造工艺与设备

  460.2510 铸造工艺与设备   460.2515 焊接工艺与设备(包括连接工艺与设备)   460.2520 塑性加工工艺与设备

  460.2525 热处理工艺与设备   460.2530 切削加工工艺   460.2535 特种加工工艺

  460.2540 机器装配工艺   460.2545 非金属加工工艺   460.2599 机械制造工艺与设备其他学科

460.30 刀具技术

  460.3010 切削理论   460.3020 切削刀具   460.3030 磨削工具   460.3099 刀具技术其他学科

460.35 机床技术

  460.3510 机床基础理论   460.3520 金属切削机床   460.3530 数字控制机床   460.3540 特种加工机床

  460.3599 机床技术其他学科

460.40 仪器仪表技术

  460.4010 仪器仪表基础理论   460.4015 仪器仪表材料   460.4020 传感器技术   460.4025 精密仪器制造

  460.4030 测试计量仪器   460.4035 光学技术与仪器   460.4040 天文仪器   460.4045 地球科学仪器

  460.4050 大气仪器仪表   460.4099 仪器仪表技术其他学科

460.45 流体传动与控制(包括气动液压控制技术等)

460.50 机械制造自动化

  460.5010 成组技术   460.5020 数控技术   460.5030 工业机器人技术   460.5040 计算机辅助制造

  460.5099 机械制造自动化其他学科

460.55 专用机械工程

  460.5510 印刷、复制技术   460.5599 专用机械工程其他学科

460.99 机械工程其他学科  

470 动力与电气工程
470.10 工程热物理

  470.1010 工程热力学   470.1020 工程传热、传质学   470.1030 燃烧学   470.1040 多相流动

  470.1099 工程热物理其他学科

470.20 热工学

  470.2010 热工测量与仪器仪表   470.2020 制冷与低温工程   470.2030 供热工程   470.2040 工业锅炉

  470.2099 热工学其他学科

470.30 动力机械工程

  470.3010 蒸汽工程(包括锅炉、蒸汽机、汽轮机等)   470.3020 内燃机工程(包括汽油机、柴油机、气体燃料发动机等)   470.3030 流体机械及流体动力工程

  470.3040 喷气推进机与涡轮机械   470.3099 动力机械工程其他学科

470.40 电气工程

  470.4011 电工学   470.4014 电路理论   470.4017 电气测量技术及其仪器仪表   470.4021 电工材料

  470.4024 电机学   470.4027 电器学   470.4031 电力电子技术   470.4034 高电压工程

  470.4037 绝缘技术   470.4041 电热与高频技术   470.4044 超导电工技术

  470.4047 发电工程(包括水力、热力、风力、磁流体发电工程等)   470.4051 输配电工程   470.4054 电力系统及其自动化

  470.4057 电力拖动及其自动化   470.4061 用电技术   470.4064 电加工技术   470.4099 电气工程其他学科

470.99 动力与电气工程其他学科  

480 能源科学技术
480.10 能源化学

480.20 能源地理学

480.30 能源计算与测量

480.40 储能技术

480.50 节能技术

480.60 一次能源

  480.6010 煤炭能   480.6020 石油、天然气能   480.6030 水能(包括海洋能等)   480.6040 风能

  480.6050 地热能   480.6060 生物能   480.6070 太阳能   480.6080 核能

  480.6099 一次能源其他学科

480.70 二次能源

  480.7010 煤气能   480.7020 电能   480.7030 蒸汽能   480.7040 沼气能

  480.7050 激光能   480.7099 二次能源其他学科

480.80 能源系统工程

480.99 能源科学技术其他学科  

490 核科学技术
490.10 辐射物理与技术

490.15 核探测技术与核电子学

490.20 放射性计量学

490.25 核仪器、仪表

490.30 核材料与工艺技术

  490.3010 核燃料与工艺技术   490.3099 核材料与工艺技术其他学科

490.35 粒子加速器

  490.3510 粒子加速器工艺   490.3520 粒子加速器应用   490.3599 粒子加速器其他学科

490.40 裂变堆工程技术

  490.4010 裂变堆物理   490.4020 裂变堆热工与水力   490.4030 裂变堆控制   490.4040 裂变堆结构

  490.4050 裂变堆屏蔽与防护   490.4060 裂变堆建造技术   490.4099 裂变堆工程技术其他学科

490.45 核聚变工程技术

  490.4510 磁约束聚变技术   490.4520 惯性约束聚变技术   490.4530 聚变堆工程   490.4540 聚变裂变混合堆工程

  490.4599 核聚变工程技术其他学科

490.50 核动力工程技术

  490.5010 舰船核动力   490.5020 空间核动力   490.5030 核电站   490.5040 核动力运行技术

  490.5099 核动力工程技术其他学科

490.55 同位素技术

  490.5510 同位素分离技术   490.5520 同位素制备技术   490.5530 同位素应用技术   490.5599 同位素技术其他学科

490.60 核爆炸工程

490.65 核安全(包括核电站安全)

490.70 乏燃料后处理技术

490.75 辐射防护技术

490.80 核设施退役技术

490.85 放射性三废处理、处置技术

490.99 核科学技术其他学科  

510 电子、通信与自动控制技术
510.10 电子技术

  510.1010 电子电路   510.1015 天线电波传播   510.1020 无线电技术   510.1025 微波技术

  510.1030 敏感电子学   510.1035 微电子学   510.1040 仿真技术   510.1045 超导电子技术

  510.1050 电子元件与器件技术   510.1055 电子束、离子束技术   510.1060 红外与夜视技术   510.1099 电子技术其他学科

510.20 光电子学与激光技术

510.30 半导体技术

  510.3010 半导体测试技术   510.3020 半导体材料   510.3030 半导体器件与技术   510.3040 集成电路技术

  510.3050 半导体加工技术   510.3099 半导体技术其他学科

510.40 信息处理技术

  510.4010 信号检测   510.4020 参数估计   510.4030 数据处理   510.4040 语音处理

  510.4050 图象处理   510.4099 信息处理技术其他学科

510.50 通信技术

  510.5010 有线通信技术   510.5015 无线通信技术(包括微波通信、卫星通信等)   510.5020 光纤通信技术

  510.5025 通信传输技术   510.5030 通信网络技术   510.5035 通信终端技术   510.5040 电信   510.5045 邮政

  510.5050 邮电通信管理工程   510.5099 通信技术其他学科

510.60 广播与电视工程技术

510.70 雷达工程

510.80 自动控制技术

  510.8010 自动控制理论(包括线性、非线性、随机控制,最优控制、自适应控制系统、分布式控制系统、柔性控制系统等)

  510.8020 控制系统仿真技术   510.8030 机电一体化技术   510.8040 自动化仪器仪表与装置   510.8050 机器人控制

  510.8060 自动化技术应用   510.8099 自动控制技术其他学科

510.99 电子、通信与自动控制技术其他学科  

520 计算机科学技术
520.10 计算机科学技术基础学科

  520.1010 自动机理论   520.1020 可计算性理论   520.1030 计算机可靠性理论   520.1040 算法理论

  520.1050 数据结构   520.1060 数据安全与计算机安全   520.1099 计算机科学技术基础学科其他学科

520.20 人工智能

  520.2010 人工智能理论   520.2020 自然语言处理   520.2030 机器翻译   520.2040 模式识别

  520.2050 计算机感知   520.2060 计算机神经网络   520.2070 知识工程(包括专家系统)   520.2099 人工智能其他学科

520.30 计算机系统结构

  520.3010 计算机系统设计   520.3020 并行处理   520.3030 分布式处理系统   520.3040 计算机网络

  520.3050 计算机运行测试与性能评价   520.3099 计算机系统结构其他学科

520.40 计算机软件

  520.4010 软件理论   520.4020 操作系统与操作环境   520.4030 程序设计及其语言   520.4040 编译系统

  520.4050 数据库   520.4060 软件开发环境与开发技术   520.4070 软件工程   520.4099 计算机软件其他学科

'520.50 计算机工程

  520.5010 计算机元器件   520.5020 计算机处理器技术   520.5030 计算机存储技术   520.5040 计算机外围设备

  520.5050 计算机制造与检测   520.5060 计算机高密度组装技术   520.5099 计算机工程其他学科

520.60 计算机应用

  520.6010 中国语言文字信息处理(包括汉字信息处理)   520.6020 计算机仿真   520.6030 计算机图形学

  520.6040 计算机图象处理   520.6050 计算机辅助设计   520.6060 计算机过程控制

  520.6070 计算机信息管理系统   520.6080 计算机决策支持系统   520.6099 计算机应用其他学科

520.99 计算机科学技术其他学科  

530 化学工程
530.11 化学工程基础学科

  530.1110 化工热力学   530.1120 化工流体力学   530.1130 化工流变学   530.1140 颗粒学

  530.1199 化学工程基础学科其他学科

530.14 化工测量技术与仪器仪表

530.17 化工传递过程

530.21 化学分离工程

  530.2110 蒸馏   530.2120 吸收   530.2130 萃取   530.2140 吸附与离子交换

  530.2150 膜分离   530.2160 蒸发与结晶   530.2170 干燥   530.2199 化学分离工程其他学科

530.24 化学反应工程

  530.2410 催化反应工程   530.2420 催化剂工程   530.2430 固定床反应工程   530.2440 多相流反应工程

  530.2450 生化反应工程   530.2460 聚合化学反应工程   530.2470 电化学反应工程   530.2499 化学反应工程其他学科

530.27 化工系统工程

  530.2710 化工过程动态学   530.2720 化工过程控制与模拟   530.2730 化工系统优化   530.2799 化工系统工程其他学科

530.31 化工机械与设备

530.34 无机化学工程

  530.3410 酸碱盐工程技术   530.3420 硅酸盐工程技术   530.3430 放射化工   530.3440 化肥工程技术

  530.3450 化学冶金   530.3499 无机化学工程其他学科

530.37 有机化学工程

530.41 电化学工程

  530.4110 电解   530.4120 电镀   530.4130 电池   530.4140 腐蚀与防腐化学

  530.4199 电化学工程其他学科

530.44 高聚物工程

530.47 煤化学工程

530.51 石油化学工程

530.54 精细化学工程

  530.5410 表面活性剂   530.5420 香料学   530.5430 化妆品学   530.5440 染料

  530.5450 颜料与涂料学   530.5460 粘合剂(亦称胶粘剂)   530.5499 精细化学工程其他学科

530.57 造纸技术

530.61 毛皮与制革工程

530.64 制药工程

  530.6410 医药工程   530.6420 农药工程   530.6430 兽药工程   530.6499 制药工程其他学科

530.67 生物化学工程

530.99 化学工程其他学科  

540 纺织科学技术
540.10 纺织科学技术基础学科

  540.1010 纺织化学   540.1020 纺织美学与色彩学   540.1099 纺织科学技术基础学科其他学科

540.20 纺织材料

540.30 纤维制造技术

540.40 纺织技术

  540.4010 纺织品结构与设计   540.4015 棉纺学   540.4020 棉织学   540.4025 麻纺织

  540.4030 毛纺织   540.4035 丝纺织   540.4040 化学纤维纺织   540.4045 新型纺纱、无纺布与特种织物

  540.4050 针织   540.4099 纺织技术其他学科

540.50 染整技术

  540.5010 染炼技术   540.5020 印花技术   540.5030 染色技术   540.5040 整理技术

  540.5099 染整技术其他学科

540.60 服装技术

  540.6010 服装设计   540.6020 服装加工   540.6099 服装技术其他学科

540.70 纺织机械与设备

  540.7010 纺织器材设计与制造   540.7020 纺织机械设计与制造   540.7099 纺织机械与设备其他学科

540.99 纺织科学技术其他学科  

550 食品科学技术
550.10 食品科学技术基础学科

  550.1010 食品生物化学   550.1020 食品营养学   550.1030 食品检验学   550.1099 食品科学技术基础学科其他学科

550.20 食品加工技术

  550.2010 食用油脂加工技术   550.2015 制糖技术   550.2020 肉加工技术   550.2025 乳加工技术

  550.2030 蛋加工技术   550.2035 水果、蔬菜加工技术   550.2040 食品发酵与酿造技术   550.2045 食品焙烤加工技术

  550.2050 调味品加工技术(包括食盐加工技术等)   550.2055 食品添加剂技术   550.2060 饮料冷食制造技术   550.2065 罐头技术

  550.2099 食品加工技术其他学科

550.30 食品包装与储藏

550.40 食品机械

550.50 食品加工的副产品加工与利用

550.60 食品工业企业管理学

550.99 食品科学技术其他学科  

560 土木建筑工程
560.10 建筑史

560.15 土木建筑工程基础学科

  560.1510 建筑光学   560.1520 建筑声学   560.1530 建筑气象学   560.1599 土木建筑工程基础学科其他学科

560.20 土木建筑工程测量

560.25 建筑材料

  560.2510 金属建筑材料   560.2520 非金属建筑材料   560.2530 复合建筑材料

  560.2540 特种建筑材料(包括隔音、防水、防火、绝热、耐震、防蚀、装修材料等)   560.2599 建筑材料其他学科

560.30 工程结构

  560.3010 杆件结构   560.3020 薄壳结构   560.3030 悬索与张拉结构   560.3040 实体结构

  560.3050 结构设计   560.3099 工程结构其他学科

560.35 土木建筑结构

  560.3510 木结构   560.3520 砖结构   560.3530 金属结构   560.3540 混凝土与钢筋混凝土结构

  560.3550 喷锚结构   560.3560 复合结构   560.3570 特种结构   560.3599 土木建筑结构其他学科

560.40 土木建筑工程设计

  560.4010 建筑设计方法与理论   560.4020 城乡规划方法与理论   560.4030 建筑美学   560.4040 建筑室内设计

  560.4050 建筑室外环境设计   560.4060 土木工程设计   560.4099 土木建筑工程设计其他学科

560.45 土木建筑工程施工

  560.4510 地基基础工程   560.4520 地面工程   560.4530 地下工程   560.4540 墙体工程

  560.4550 土木施工电器工程   560.4560 装饰工程   560.4599 土木建筑工程施工其他学科

560.50 土木工程机械与设备

  560.5010 起重机械   560.5020 土木工程运输机械   560.5030 土方机械   560.5040 桩工机械

  560.5050 石料开采加工机械   560.5060 钢筋混凝土机械   560.5070 装修机械   560.5099 土木工程机械与设备其他学科

560.55 市政工程

  560.5510 城市给水排水工程   560.5520 通风与空调工程   560.5530 供热与供燃气工程   560.5540 电讯管道工程

  560.5550 城市系统工程   560.5599 市政工程其他学科

560.60 建筑经济学

560.99 土木建筑工程其他学科  

570 水利工程
570.10 水利工程基础学科

  570.1010 水力学   570.1020 河流与海岸动力学   570.1099 水利工程基础学科其他学科

570.15 水利工程测量

570.20 水工材料

570.25 水工结构(亦称水工建筑物)

  570.2510 一般水工建筑物   570.2520 专门水工建筑物   570.2599 水工结构其他学科

570.30 水力机械

570.35 水利工程施工

  570.3510 水利建筑工程施工   570.3520 水工设备安装(包括水工金属结构安装等)   570.3599 水利工程施工其他学科

570.40 水处理(不包括废水处理)

  570.4010 给水处理   570.4099 水处理其他学科

570.45 河流泥沙工程学

  570.4510 水沙动力学   570.4520 河工学   570.4599 河流泥沙工程学其他学科

570.50 海洋工程

  570.5010 海洋工程结构与施工   570.5020 海底矿产开发   570.5030 海水资源利用   570.5040 海洋环境工程

  570.5099 海洋工程其他学科

570.55 环境水利

  570.5510 环境水利与评价   570.5520 区域环境水利   570.5530 水资源保护   570.5599 环境水利其他学科

570.60 水利管理

  570.6010 水利工程管理(包括水利调度、水利施工管理、养护等)   570.6020 水利工程检查观测

  570.6030 水利管理自动化系统   570.6099 水利管理其他学科

570.65 防洪工程

  570.6510 防洪   570.6520 防汛   570.6530 防凌   570.6599 防洪工程其他学科

570.70 水利经济学

570.99 水利工程其他学科  

580 交通运输工程
580.10 道路工程

  580.1010 路基工程   580.1020 桥涵工程   580.1030 隧道工程   580.1099 道路工程其他学科

580.20 公路运输

  580.2010 车辆工程   580.2020 公路标志、信号、监控工程   580.2030 公路运输管理   580.2099 公路运输其他学科

580.30 铁路运输

  580.3010 铁路电气化工程   580.3020 铁路通信信号工程   580.3030 铁路机车车辆工程   580.3040 铁路运输管理

  580.3099 铁路运输其他学科

580.40 水路运输

  580.4010 航海学   580.4020 导航建筑物与航标工程   580.4030 航道工程   580.4040 港口工程

  580.4050 疏浚工程   580.4060 水路运输管理   580.4099 水路运输其他学科

580.50 船舶、舰船工程

580.60 航空运输

  580.6010 机场工程   580.6020 航空运输管理   580.6099 航空运输其他学科

580.70 交通运输系统工程

580.80 交通运输安全工程

580.99 交通运输工程其他学科  

590 航空、航天科学技术
590.10 航空、航天科学技术基础学科

  590.1010 大气层飞行力学   590.1020 航天动力学   590.1030 飞行器结构力学   590.1040 飞行原理

  590.1099 航空、航天科学技术基础学科其他学科

590.15 航空器结构与设计

  590.1510 气球、飞艇   590.1520 定翼机   590.1530 旋翼机   590.1599 航空器结构与设计其他学科

590.20 航天器结构与设计

  590.2010 火箭、导弹   590.2020 人造地球卫星   590.2030 空间探测器   590.2040 宇宙飞船

  590.2050 航天站   590.2060 航天飞机   590.2099 航天器结构与设计其他学科

590.25 航空、航天推进系统

590.30 飞行器仪表、设备

590.35 飞行器控制、导航技术

590.40 航空、航天材料

  590.4010 航空、航天金属材料   590.4020 航空、航天非金属材料   590.4030 航空、航天复合材料   590.4040 航空、航天燃料与润滑剂

  590.4099 航空、航天材料其他学科

590.45 飞行器制造技术

  590.4510 航空器制造工艺   590.4520 航天器制造工艺   590.4599 飞行器制造技术其他学科

590.50 飞行器试验技术

  590.5010 航空器地面试验   590.5020 航空器飞行试验   590.5030 航天器地面试验   590.5040 航天器飞行试验

  590.5099 飞行器试验技术其他学科

590.55 飞行器发射、飞行技术

  590.5510 飞行技术   590.5520 飞行器发射、飞行事故   590.5599 飞行器发射、飞行技术其他学科

590.60 航天地面设施、技术保障

  590.6010 发射场、试验场   590.6020 航天测控系统   590.6099 航天地面设施、技术保障其他学科

590.65 航空、航天系统工程

  590.6510 航空系统工程   590.6520 航天系统工程   590.6530 航空、航天可靠性工程   590.6599 航空、航天系统工程其他学科

590.99 航空、航天科学技术其他学科  

610 环境科学技术
610.10 环境科学技术基础学科

  610.1010 环境物理学(包括环境声学等)   610.1015 环境化学   610.1020 环境生物学   610.1025 环境气象学

  610.1030 环境地学(包括环境地球化学、环境地质学等)   610.1035 环境生态学   610.1040 环境毒理学   610.1045 自然环境保护学

  610.1050 环境管理学   610.1099 环境科学技术基础学科其他学科

610.20 环境学

  610.2010 大气环境学   610.2020 水体环境学(包括海洋环境学)   610.2030 土壤环境学   610.2040 区域环境学

  610.2099 环境学其他学科

610.30 环境工程学

  610.3010 环境保护工程   610.3015 大气污染防治工程   610.3020 水污染防治工程   610.3025 固体污染防治工程

  610.3030 三废处理与综合利用   610.3035 噪声与震动控制   610.3040 环境质量监测与评价   610.3045 环境规划

  610.3050 环境系统工程   610.3099 环境工程学其他学科

610.99 环境科学技术其他学科  

620 安全科学技术
620.10 安全科学技术基础学科

  620.1010 灾害物理学   620.1020 灾害化学   620.1030 灾害学   620.1040 灾害毒理学

  620.1099 安全科学技术基础学科其他学科

620.20 安全学

  620.2010 安全系统学   620.2020 安全心理学   620.2030 安全模拟与安全仿真学   620.2040 安全人机学

  620.2050 安全经济学   620.2060 安全管理学   620.2070 安全教育学   620.2099 安全学其他学科

620.30 安全工程

  620.3010 消防工程   620.3020 爆炸安全工程   620.3030 安全设备工程   620.3040 安全电气工程

  620.3050 部门安全工程   620.3099 安全工程其他学科

620.40 职业卫生工程

  620.4010 防尘工程   620.4020 防毒工程   620.4030 生产噪声与振动控制   620.4040 个体防护

  620.4099 职业卫生工程其他学科

620.50 安全管理工程

  620.5010 安全信息工程   620.5020 风险评价与失效分析   620.5030 工业灾害控制   620.5040 安全检测与监控技术

  620.5099 安全管理工程其他学科

620.99 安全科学技术其他学科  

630 管理学
630.10 管理思想史

630.15 管理理论

  630.1510 管理哲学   630.1520 组织理论   630.1530 行为科学   630.1540 决策理论

  630.1550 系统管理理论   630.1599 管理理论其他学科

630.20 管理心理学

630.25 管理计量学

630.30 部门经济管理

630.35 科学学与科技管理

  630.3510 科学社会学   630.3520 科技政策学   630.3530 科学心理学   630.3540 科学计量学

  630.3550 科技管理学   630.3599 科学学与科技管理其他学科

630.40 企业管理

  630.4010 生产管理   630.4015 经营管理   630.4020 财务管理   630.4025 成本管理

  630.4030 劳动人事管理   630.4035 技术管理   630.4040 营销管理   630.4045 物资管理

  630.4050 设备管理   630.4055 质量管理   630.4099 企业管理其他学科

630.45 行政管理

630.50 管理工程

  630.5010 生产系统管理   630.5015 研究与开发管理   630.5020 质量控制与可靠性管理   630.5025 物流系统管理

  630.5030 战略管理   630.5035 决策分析   630.5040 决策支持系统   630.5045 管理信息系统

  630.5050 管理系统仿真   630.5055 工效学   630.5060 部门管理工程   630.5099 管理工程其他学科

630.55 人力资源开发与管理

  630.5510 人力资源开发战略   630.5520 人才学   630.5599 人力资源开发与管理其他学科

630.60 未来学

  630.6010 理论预测学   630.6020 预测评价学   630.6030 技术评估学   630.6040 全球未来学

  630.6099 未来学其他学科

630.99 管理学其他学科  

710 马克思主义
710.10 马、恩、列、斯思想研究

710.20 毛泽东思想研究

710.30 马克思主义思想史

710.40 科学社会主义

710.50 社会主义运动史(包括国际共产主义运动)

710.60 国外马克思主义研究

710.99 马克思主义其他学科  

720 哲学
720.10 马克思主义哲学

  720.1010 辩证唯物主义   720.1020 历史唯物主义   720.1030 马克思主义哲学史   720.1099 马克思主义哲学其他学科

720.15 自然辩证法(亦称科学技术哲学)

  720.1510 自然观   720.1520 科学哲学   720.1530 技术哲学

  720.1540 专门自然科学哲学(包括人工智能哲学、数学哲学、物理哲学等)   720.1599 自然辩证法其他学科

720.20 中国哲学史

  720.2010 先秦哲学   720.2020 秦汉哲学   720.2030 魏晋南北朝哲学   720.2040 隋唐五代哲学

  720.2050 宋元明清哲学   720.2060 中国近代哲学   720.2070 中国现代哲学   720.2080 中国少数民族哲学思想

  720.2099 中国哲学史其他学科

720.25 东方哲学史

  720.2510 印度哲学   720.2520 伊斯兰哲学   720.2530 日本哲学   720.2599 东方哲学史其他学科

720.30 西方哲学史

  720.3010 古希腊罗马哲学   720.3020 中世纪哲学   720.3030 文艺复兴时期哲学   720.3040 十七、十八世纪欧洲哲学

  720.3050 德国古典哲学   720.3060 俄国哲学(包括俄国革命民主主义者的哲学)   720.3099 西方哲学史其他学科

720.35 现代外国哲学

  720.3510 十九世纪末至二十世纪中叶西方哲学   720.3520 分析哲学   720.3530 欧洲大陆人文哲学

  720.3540 解释学   720.3550 符号学   720.3560 实用主义哲学   720.3599 现代外国哲学其他学科

720.40 逻辑学

  720.4010 逻辑史(包括中国逻辑史、西方逻辑史、印度逻辑史等)   720.4020 形式逻辑(亦称传统逻辑)

  720.4030 哲理逻辑(包括模态、多值、构造、时态、模糊逻辑等)   720.4040 语言逻辑   720.4050 归纳逻辑   720.4060 辩证逻辑

  720.4099 逻辑学其他学科

720.45 伦理学

  720.4510 伦理学原理   720.4515 中国伦理思想史   720.4520 东方伦理思想史   720.4525 西方伦理思想史

  720.4530 马克思主义伦理思想史   720.4535 职业伦理学   720.4540 医学伦理学   720.4545 教育伦理学

  720.4550 政治伦理学   720.4555 家庭伦理学   720.4560 生命伦理学   720.4565 生态伦理学

  720.4599 伦理学其他学科

720.50 美学

  720.5010 美学原理   720.5020 中国美学史   720.5030 东方美学史   720.5040 西方美学史

  720.5050 西方现代美学   720.5060 马克思主义美学   720.5070 艺术美学(包括音乐、影视美学、建筑美学等)

  720.5080 技术美学   720.5099 美学其他学科

720.99 哲学其他学科  

730 宗教学
730.11 宗教学理论

  730.1110 马克思主义宗教学   730.1115 宗教史学   730.1120 宗教哲学   730.1125 宗教社会学

  730.1130 宗教心理学   730.1135 比较宗教学   730.1140 宗教地理学   730.1145 宗教文学艺术

  730.1150 宗教文献学   730.1155 神话学   730.1199 宗教学理论其他学科

730.14 无神论

  730.1410 无神论史   730.1420 中国无神论   730.1430 外国无神论   730.1499 无神论其他学科

730.17 原始宗教

730.21 古代宗教

  730.2110 中国古代宗教   730.2120 外国古代宗教   730.2199 古代宗教其他学科

730.24 佛教

  730.2410 佛教哲学   730.2420 佛教因明   730.2430 佛教艺术   730.2440 佛教文献

  730.2450 佛教史   730.2499 佛教其他学科

730.27 基督教

  730.2710 圣经学   730.2720 基督教哲学   730.2730 基督教伦理学   730.2740 基督教史

  730.2750 基督教艺术   730.2799 基督教其他学科

730.31 伊斯兰教

  730.3110 伊斯兰教义学   730.3120 伊斯兰教法学   730.3130 伊斯兰教哲学   730.3140 古兰学

  730.3150 圣训学   730.3160 伊斯兰教史   730.3170 伊斯兰教艺术   730.3199 伊斯兰教其他学科

730.34 道教

  730.3410 道教哲学   730.3420 道教文献   730.3430 道教艺术   730.3440 道教史

  730.3499 道教其他学科

730.37 印度教

730.41 犹太教

730.44 祆教

730.47 摩尼教

730.51 锡克教

730.54 耆那教

730.57 神道教

730.61 中国民间宗教与民间信仰

730.64 中国少数民族宗教

730.67 当代宗教

  730.6710 中国当代宗教   730.6720 世界当代宗教   730.6730 新兴宗教   730.6799 当代宗教其他学科

730.99 宗教学其他学科  

740 语言学
740.10 普通语言学

  740.1010 语音学   740.1015 语法学   740.1020 语义学   740.1025 词汇学

  740.1030 语用学   740.1035 方言学   740.1040 修辞学   740.1045 文字学

  740.1050 语源学   740.1099 普通语言学其他学科

740.15 比较语言学

  740.1510 历史比较语言学   740.1520 类型比较语言学   740.1530 双语对比语言学   740.1599 比较语言学其他学科

740.20 语言地理学

740.25 社会语言学

740.30 心理语言学

740.35 应用语言学

  740.3510 语言教学   740.3520 话语语言学   740.3530 实验语音学   740.3540 数理语言学

  740.3550 计算语言学   740.3560 翻译学   740.3599 应用语言学其他学科

740.40 汉语研究

  740.4010 普通话   740.4015 汉语方言   740.4020 汉语语音   740.4025 汉语音韵

  740.4030 汉语语法   740.4035 汉语词汇   740.4040 汉语训诂   740.4045 汉语修辞

  740.4050 汉字规范   740.4055 汉语史   740.4099 汉语研究其他学科

740.45 中国少数民族语言文字

  740.4510 蒙古语文   740.4515 藏语文   740.4520 维吾尔语文   740.4525 哈萨克语文

  740.4530 满语文   740.4535 朝鲜语文   740.4540 傣族语文   740.4545 彝族语文

  740.4550 壮语文   740.4555 苗语文   740.4560 瑶语文   740.4565 柯尔克孜语文

  740.4570 锡伯语文   740.4599 中国少数民族语言文字其他学科

740.50 外国语言

  740.5011 英语   740.5014 德语   740.5017 瑞典语   740.5021 意大利语

  740.5024 法语   740.5027 西班牙语、葡萄牙语   740.5031 罗马尼亚语   740.5034 俄语

  740.5037 波兰语、捷克语   740.5041 塞尔维亚语、保加利亚语   740.5044 希腊语   740.5047 阿尔巴尼亚语

  740.5051 匈牙利语   740.5054 梵语、印地语、乌尔都语、僧伽罗语   740.5057 波斯语

  740.5061 土耳其语   740.5064 阿拉伯语   740.5067 希伯莱语   740.5071 豪萨语

  740.5074 斯瓦希里语   740.5077 越南语、柬埔寨语   740.5081 印度尼西亚语、菲律宾国语、马来语

  740.5084 缅甸语   740.5087 泰语、老挝语   740.5091 日语   740.5094 世界语

  740.5099 外国语言其他学科

740.99 语言学其他学科  

750 文学
750.11 文学理论

750.14 文艺美学

750.17 文学批评

750.21 比较文学

750.24 中国古代文学史

  750.2410 周秦汉文学   750.2415 魏晋文学   750.2420 南北朝文学   750.2425 隋唐五代文学

  750.2430 宋代文学   750.2435 辽金文学   750.2440 元代文学   750.2445 明代文学

  750.2450 清代文学   750.2499 中国古代文学史其他学科

750.27 中国近代文学史

750.31 中国现代文学史(包括当代文学史)

750.34 中国各体文学

  750.3410 中国诗歌文学   750.3420 中国戏剧文学   750.3430 中国小说文学   750.3440 中国散文文学

  750.3499 中国各体文学其他学科

750.37 中国民间文学

750.41 中国儿童文学

750.44 中国少数民族文学

  750.4410 蒙古族文学   750.4420 藏族文学   750.4430 维吾尔族文学   750.4440 哈萨克族文学

  750.4450 朝鲜族文学   750.4499 中国少数民族文学其他学科

750.47 世界文学史

  750.4710 古代世界文学史   750.4720 中世纪世界文学史   750.4730 近代世界文学史

  750.4740 现代世界文学史(包括当代世界文学史)   750.4799 世界文学史其他学科

750.51 东方文学

  750.5110 印度文学   750.5120 日本文学   750.5199 东方文学其他学科

750.54 俄国文学(包括原苏联文学)

750.57 英国文学

750.61 法国文学

750.64 德国文学

750.67 意大利文学

750.71 美国文学

750.74 北欧文学

750.77 东欧文学

750.81 拉美文学

750.84 非洲文学

750.87 大洋洲文学

750.99 文学其他学科  

760 艺术学
760.10 艺术心理学

760.15 音乐

  760.1510 音乐学(包括音乐史、音乐美学等)   760.1520 作曲与作曲理论   760.1530 音乐表演艺术   760.1599 音乐其他学科

760.20 戏剧

  760.2010 戏剧史   760.2020 戏剧理论   760.2099 戏剧其他学科

760.25 戏曲

  760.2510 戏曲史   760.2520 戏曲理论   760.2530 戏曲表演   760.2599 戏曲其他学科

760.30 舞蹈

  760.3010 舞蹈史   760.3020 舞蹈理论   760.3030 舞蹈编导   760.3040 舞蹈表演

  760.3099 舞蹈其他学科

760.35 电影

  760.3510 电影史   760.3520 电影理论   760.3530 电影艺术   760.3599 电影其他学科

760.40 广播电视文艺

760.45 美术

  760.4510 美术史   760.4520 美术理论   760.4530 绘画艺术   760.4540 雕塑艺术

  760.4599 美术其他学科

760.50 工艺美术

  760.5010 工艺美术史   760.5020 工艺美术理论   760.5030 环境艺术   760.5099 工艺美术其他学科

760.55 书法

  760.5510 书法史   760.5520 书法理论   760.5599 书法其他学科

760.60 摄影

  760.6010 摄影史   760.6020 摄影理论   760.6099 摄影其他学科

760.99 艺术学其他学科  

770 历史学
770.10 史学史

770.15 史学理论

770.20 历史文献学

770.25 中国通史

770.30 中国古代史

  770.3010 先秦史   770.3015 秦汉史   770.3020 魏晋南北朝史   770.3025 隋唐五代十国史

  770.3030 宋史   770.3035 辽金史   770.3040 元史   770.3045 明史

  770.3050 清史   770.3055 中国古文字(包括甲骨文、金文等)   770.3060 中国古代契约文书(包括敦煌学、明清契约文书研究、鱼鳞册研究等)

  770.3099 中国古代史其他学科

770.35 中国近代史、现代史

  770.3510 鸦片战争史   770.3515 太平天国史   770.3520 洋务运动史   770.3525 戊戌政变史

  770.3530 义和团运动史   770.3535 辛亥革命史   770.3540 五四运动史   770.3545 新民主主义革命史

  770.3550 中国共产党史   770.3555 中国国民党史   770.3560 中国民主党派史   770.3565 中华民国史

  770.3570 中华人民共和国史   770.3599 中国近代史、现代史其他学科

770.40 世界通史

  770.4010 原始社会史   770.4020 世界古代史   770.4030 世界中世纪史   770.4040 世界近代史

  770.4050 世界现代史   770.4099 世界通史其他学科

770.45 亚洲史

  770.4510 日本史   770.4520 印度史   770.4530 东南亚史   770.4540 南亚史

  770.4550 中亚史   770.4560 西亚史   770.4599 亚洲史其他学科

770.50 非洲史

  770.5010 北非史   770.5020 撒哈拉以南非洲史   770.5030 埃及史   770.5040 南非联邦史

  770.5099 非洲史其他学科

770.55 美洲史

  770.5510 美洲古代文明史   770.5520 美国史   770.5530 加拿大史   770.5540 拉丁美洲史

  770.5599 美洲史其他学科

770.60 欧洲史

  770.6010 俄国史(包括原苏联史)   770.6020 英国史   770.6030 法国史   770.6040 德国史

  770.6050 意大利史   770.6060 西班牙史   770.6070 东欧国家史   770.6080 北欧国家史

  770.6099 欧洲史其他学科

770.65 澳洲、大洋洲史

770.70 专门史

  770.7010 政治史   770.7015 思想史   770.7020 文化史   770.7025 科技史

  770.7030 社会史   770.7035 城市史   770.7040 中外文化交流史   770.7045 历史地理学

  770.7050 方志学   770.7055 人物研究   770.7060 谱牒学   770.7099 专门史其他学科

770.99 历史学其他学科  

780 考古学
780.10 考古理论

780.20 考古学史

780.30 考古技术

  780.3010 考古发掘   780.3020 考古修复   780.3030 考古年代测定   780.3099 考古技术其他学科

780.40 中国考古

  780.4010 旧石器时代考古   780.4020 新石器时代考古   780.4030 商周考古   780.4040 秦汉考古

  780.4050 三国两晋、南北朝、隋唐考古   780.4060 宋元明考古   780.4099 中国考古其他学科

780.50 外国考古

  780.5010 亚洲考古   780.5020 欧洲考古   780.5030 非洲考古   780.5040 美洲考古

  780.5050 大洋洲考古   780.5099 外国考古其他学科

780.60 专门考古

  780.6010 金石学   780.6020 铭刻学   780.6030 甲骨学   780.6040 古钱学

  780.6050 美术考古   780.6060 宗教考古   780.6070 水下考古   780.6099 专门考古其他学科

780.99 考古学其他学科  

790 经济学
790.11 政治经济学

  790.1110 资本主义政治经济学   790.1120 社会主义政治经济学   790.1199 政治经济学其他学科

790.13 宏观经济学

790.15 微观经济学

790.17 比较经济学

790.19 经济地理学(包括工业地理学、农业地理学等)

790.21 发展经济学

790.23 生产力经济学

790.25 经济思想史

  790.2510 中国经济思想史   790.2520 外国经济思想史   790.2530 马克思主义经济思想史   790.2599 经济思想史其他学科

790.27 经济史

  790.2710 世界经济史   790.2720 中国经济史   790.2799 经济史其他学科

790.29 世界经济学(亦称国际经济学)

  790.2911 国际经济关系   790.2914 国际贸易学(包括国际市场营销学、国际商品学)   790.2917 国际货币经济学

  790.2921 国际金融学   790.2924 国际投资学   790.2927 国际收支理论   790.2931 美国经济

  790.2934 日本经济   790.2937 德国经济   790.2941 法国经济   790.2944 英国经济

  790.2947 俄罗斯经济   790.2951 欧洲经济   790.2954 北美经济   790.2957 亚太经济

  790.2961 拉美经济   790.2964 非洲经济   790.2967 中亚、西亚经济   790.2971 世界经济统计

  790.2999 世界经济学其他学科

790.31 国民经济学

  790.3110 国民经济计划学   790.3120 区域经济学   790.3130 消费经济学   790.3140 投资经济学

  790.3199 国民经济学其他学科

790.33 管理经济学

790.35 数量经济学

  790.3510 数理经济学   790.3520 经济计量学   790.3599 数量经济学其他学科

790.37 会计学

  790.3710 工业会计学   790.3720 农业会计学   790.3730 商业会计学   790.3740 银行会计学

  790.3750 交通运输会计学   790.3799 会计学其他学科

790.39 审计学

790.41 技术经济学

  790.4110 工程经济学   790.4115 工业技术经济学   790.4120 农业技术经济学   790.4125 能源技术经济学

  790.4130 交通运输技术经济学   790.4135 建筑技术经济学   790.4140 商业与物流技术经济学   790.4145 技术进步经济学

  790.4150 资源开发利用技术经济学   790.4155 环境保护技术经济学   790.4160 生产力布局技术经济学   790.4165 消费技术经济学

  790.4199 技术经济学其他学科

790.43 生态经济学

  790.4310 森林生态经济学   790.4320 草原生态经济学   790.4330 水域生态经济学   790.4340 城市生态经济学

  790.4350 区域生态经济学   790.4399 生态经济学其他学科

790.45 劳动经济学

  790.4510 就业经济学(包括劳动市场经济学)   790.4520 劳动管理学   790.4530 劳动统计学   790.4540 劳动社会学

  790.4550 劳动心理学   790.4560 劳动经济史   790.4599 劳动经济学其他学科

790.47 城市经济学

  790.4710 城市经济管理学   790.4720 城市土地经济学   790.4730 市政经济学   790.4740 住宅经济学

  790.4750 城郊经济学   790.4799 城市经济学其他学科

790.49 资源经济学

  790.4910 海洋资源经济学   790.4920 生物资源经济学   790.4930 矿产资源经济学   790.4940 能源经济学

  790.4950 资源开发与利用   790.4999 资源经济学其他学科

790.51 环境经济学

790.53 物资经济学

  790.5310 物资经济理论   790.5320 物资管理学   790.5399 物资经济学其他学科

790.55 工业经济学

  790.5510 工业发展经济学   790.5520 工业企业经营管理学   790.5530 工业经济地理   790.5540 工业部门经济学

  790.5550 工业经济史   790.5599 工业经济学其他学科

790.57 农村经济学

  790.5710 农村宏观经济学   790.5720 农村产业经济学   790.5730 农村区域经济学   790.5799 农村经济学其他学科

790.59 农业经济学

  790.5910 农业生态经济学   790.5920 农业生产经济学   790.5930 土地经济学(包括国土经济学、农业资源经济学等)

  790.5940 农业经济史   790.5950 农业企业经营管理   790.5960 合作经济

  790.5970 世界农业经济   790.5980 种植业经济学   790.5999 农业经济学其他学科

790.61 交通运输经济学

  790.6110 城市运输经济学   790.6120 铁路运输经济学   790.6130 航空运输经济学   790.6140 公路运输经济学

  790.6150 水路运输经济学   790.6160 综合运输经济学   790.6199 交通运输经济学其他学科

790.63 商业经济学

  790.6310 商业经济学原理   790.6315 商业企业管理学   790.6320 商品流通经济学   790.6325 市场学

  790.6330 商业心理学   790.6335 商业社会学   790.6340 商品学(包括商品包装与技术)   790.6345 商业物流学

  790.6350 商业经济史   790.6355 广告学   790.6360 服务经济学   790.6399 商业经济学其他学科

790.65 价格学

  790.6510 价格学原理   790.6520 部门价格学   790.6530 广义价格学   790.6540 成本管理学

  790.6550 价格史   790.6560 比较价格学   790.6599 价格学其他学科

790.67 旅游经济学

  790.6710 旅游经济学理论   790.6720 旅游经济管理学   790.6730 旅游企业管理学   790.6740 旅游事业史

  790.6799 旅游经济学其他学科

790.69 信息经济学

790.71 财政学

  790.7110 理论财政学   790.7120 资本主义财政学   790.7130 社会主义财政学   790.7140 比较财政学

  790.7150 财政思想史   790.7160 财政史   790.7170 财政管理学   790.7180 税务管理学

  790.7199 财政学其他学科

790.73 货币银行学

  790.7310 货币理论   790.7315 货币学说史   790.7320 银行学   790.7325 银行经营管理学

  790.7330 信贷理论   790.7335 投资理论   790.7340 金融市场   790.7345 农村金融学

  790.7350 金融史、银行史   790.7399 货币银行学其他学科

790.75 保险学

  790.7510 保险管理   790.7599 保险学其他学科

790.77 国防经济学

790.99 经济学其他学科  

810 政治学
810.10 政治学理论

  810.1010 比较政治学   810.1020 政治社会学   810.1030 政治心理学   810.1040 地缘政治学

  810.1050 中外政治学说史   810.1099 政治学理论其他学科

810.20 政治制度

  810.2010 政治制度理论   810.2015 议会制度   810.2020 行政制度   810.2025 司法制度

  810.2030 政党制度   810.2035 选举制度   810.2040 中国政治制度   810.2045 外国政治制度

  810.2050 比较政治制度   810.2055 中国政治制度史   810.2060 外国政治制度史   810.2099 政治制度其他学科

810.30 行政学

  810.3010 行政理论   810.3020 行政组织   810.3030 人事行政   810.3040 财务行政

  810.3050 行政决策   810.3099 行政学其他学科

810.40 国际政治学

  810.4011 国际关系理论   810.4014 国际关系史   810.4017 国际组织   810.4021 外交学

  810.4024 外交史   810.4027 国际比较政治   810.4031 美国政治   810.4034 英国政治

  810.4037 法国政治   810.4041 德国政治   810.4044 日本政治   810.4047 俄罗斯政治

  810.4051 欧洲政治   810.4054 北美政治   810.4057 亚太政治   810.4061 拉美政治

  810.4064 非洲政治   810.4067 中亚、西亚政治   810.4099 国际政治学其他学科

810.99 政治学其他学科  

820 法学
820.10 理论法学

  820.1010 法理学   820.1020 法哲学   820.1030 比较法学   820.1040 法社会学

  820.1050 立法学   820.1060 法律逻辑学   820.1070 法律教育学   820.1080 法律心理学(包括犯罪心理学)

  820.1099 理论法学其他学科

820.20 法律史学

  820.2010 中国法律思想史   820.2020 外国法律思想史   820.2030 法律制度史   820.2099 法律史学其他学科

820.30 部门法学

  820.3010 宪法学   820.3015 行政法学   820.3020 民法学   820.3025 经济法学

  820.3030 劳动法学   820.3035 婚姻法学   820.3040 民事诉讼法学   820.3045 行政诉讼法学

  820.3050 刑事诉讼法学   820.3055 刑法学   820.3060 刑事侦查学   820.3065 司法鉴定学

  820.3070 军事法学   820.3075 环境法学   820.3080 安全法学   820.3085 知识产权法学

  820.3099 部门法学其他学科

820.40 国际法学

  820.4010 国际公法学   820.4020 国际私法学   820.4030 国际刑法学   820.4040 国际经济法学

  820.4050 国际环境法学   820.4060 国际知识产权法学   820.4099 国际法学其他学科

820.99 法学其他学科

830 军事学
830.10 军事理论

  830.1010 马、恩、列、斯军事理论   830.1020 毛泽东军事思想   830.1099 军事理论其他学科

830.15 军事史

  830.1510 中国古代战争史   830.1520 中国近代战争史   830.1530 中国现代战争史   830.1540 世界战争史

  830.1550 军事思想史   830.1560 军事技术史   830.1599 军事史其他学科

830.20 军事心理学

830.25 战略学

  830.2510 战略学理论   830.2520 核战略学   830.2599 战略学其他学科

830.30 战役学

  830.3010 合同战役学   830.3020 海军战役学   830.3030 空军战役学   830.3040 导弹部队战役学

  830.3050 陆军战役学(包括炮兵战役学、装甲兵战役学)   830.3099 战役学其他学科

830.35 战术学

  830.3510 合同战术学   830.3520 陆军战术学(包括炮兵战术学、装甲兵战术学、工程兵战术学、通信兵战术学、防化兵战术学等)

  830.3530 海军战术学   830.3540 空军战术学   830.3550 导弹部队战术学   830.3599 战术学其他学科

830.40 军队指挥学

  830.4010 作战指挥   830.4020 军事系统工程(亦称军事运筹学)   830.4030 军事通信学

  830.4040 军事情报学   830.4050 密码学   830.4099 军队指挥学其他学科

830.45 军制学

  830.4510 军事组织体制   830.4520 军事装备学   830.4530 军队管理学   830.4599 军制学其他学科

830.50 军队政治工作学

  830.5010 军队思想教育工作学   830.5020 军队组织工作学   830.5099 军队政治工作学其他学科

830.55 军事后勤学

  830.5510 后勤组织指挥   830.5520 后方专业勤务   830.5599 军事后勤学其他学科

830.60 军事地学

  830.6010 中国军事地理   830.6020 世界军事地理   830.6030 军事地形学   830.6040 军事测绘学

  830.6050 军事气象学   830.6060 军事水文学   830.6099 军事地学其他学科

830.65 军事技术

830.99 军事学其他学科

840 社会学
840.11 社会学史

  840.1110 中国社会学史   840.1120 外国社会学史   840.1199 社会学史其他学科

840.14 社会学理论

  840.1410 社会学原理   840.1420 社会思想史   840.1499 社会学理论其他学科

840.17 社会学方法

  840.1710 社会调查方法   840.1799 社会学方法其他学科

840.21 实验社会学

840.24 数理社会学

840.27 应用社会学

  840.2711 职业社会学   840.2714 工业社会学   840.2717 医学社会学   840.2727 城市社会学

  840.2731 农村社会学   840.2734 环境社会学   840.2737 家庭社会学   840.2741 青年社会学

  840.2744 老年社会学   840.2747 犯罪社会学   840.2751 越轨社会学   840.2754 妇女问题研究

  840.2757 种族问题研究   840.2761 社会问题研究   840.2764 社会群体及分层问题研究   840.2767 社区研究

  840.2771 社会保障研究   840.2774 社会工作   840.2799 应用社会学其他学科

840.31 比较社会学

840.34 社会地理学

840.37 文化社会学

  840.3710 艺术社会学   840.3720 知识社会学   840.3730 道德社会学   840.3799 文化社会学其他学科

840.41 历史社会学

840.44 经济社会学

840.47 军事社会学

840.51 社会心理学

  840.5110 社会心理学史   840.5120 社会心理学理论与研究方法   840.5130 实验社会心理学   840.5199 社会心理学其他学科

840.54 公共关系学

840.57 社会人类学

840.61 组织社会学

840.64 发展社会学

840.67 福利社会学

840.71 人口学

  840.7110 人口学原理   840.7115 人口经济学   840.7120 人口社会学(包括老年人口学、妇女人口学、发展人口学等)

  840.7125 人口学说史   840.7130 人口史   840.7135 人口地理学   840.7140 人口生态学

  840.7145 区域人口学   840.7150 人口系统工程   840.7155 人口预测学   840.7160 人口规划学

  840.7165 人口政策学   840.7170 计划生育学   840.7199 人口学其他学科

840.99 社会学其他学科

850 民族学
850.10 民族问题理论

  850.1010 民族问题与民族政策   850.1020 民族关系   850.1030 民族经济   850.1040 民族教育

  850.1050 民族法制   850.1060 民族心理学   850.1070 少数民族政治制度   850.1099 民族问题理论其他学科

850.20 民族史学

  850.2010 民族史   850.2020 民族关系史   850.2099 民族史学其他学科

850.30 蒙古学

850.40 藏学

850.50 文化人类学与民俗学

850.60 世界民族研究

850.99 民族学其他学科

860 新闻学与传播学
860.10 新闻理论

  860.1010 新闻学   860.1015 马克思主义新闻理论   860.1020 西方新闻理论   860.1025 新闻法

  860.1030 舆论学   860.1035 新闻伦理学   860.1040 新闻社会学   860.1045 新闻心理学

  860.1050 比较新闻学   860.1099 新闻理论其他学科

860.20 新闻史

  860.2010 中国新闻事业史   860.2020 世界新闻事业史   860.2030 新闻思想史   860.2099 新闻史其他学科

860.30 新闻业务

  860.3010 新闻采访   860.3020 新闻写作   860.3030 新闻编辑   860.3040 新闻评论

  860.3050 新闻摄影   860.3099 新闻业务其他学科

860.40 新闻事业经营管理

860.50 广播与电视

  860.5010 广播电视史   860.5020 广播电视理论   860.5030 广播电视业务(包括广播电视采访、写作、编辑等)

  860.5040 广播电视播音   860.5099 广播与电视其他学科

860.60 传播学

  860.6010 传播史   860.6020 传播理论   860.6030 传播技术   860.6040 组织传播学

  860.6099 传播学其他学科

860.99 新闻学与传播学其他学科

870 图书馆、情报与文献学
870.10 图书馆学

  870.1010 图书馆学史(包括图书馆事业史)   870.1015 比较图书馆学   870.1020 图书馆社会学

  870.1025 图书馆管理学(包括图书馆统计学、图书馆经济学等)   870.1030 图书馆建筑学   870.1035 图书采访学   870.1040 图书分类学

  870.1045 图书编目学(包括目录组织法、文献著录方法、计算机编目等)   870.1050 目录学(包括普通目录学、专科目录、目录学史等)

  870.1055 图书馆服务学(包括读者心理学、读者咨询学等)   870.1099 图书馆学其他学科

870.20 文献学

  870.2010 文献类型学   870.2020 文献计量学   870.2030 文献检索学   870.2040 图书史

  870.2050 版本学   870.2060 校勘学   870.2099 文献学其他学科

870.30 情报学

  870.3010 情报学史(包括情报事业史)   870.3015 情报社会学   870.3020 比较情报学   870.3025 情报计量学

  870.3030 情报心理学   870.3035 情报管理学   870.3040 情报服务学(包括情报用户研究等)   870.3045 情报经济学

  870.3050 情报检索学(包括情报检索语言等)   870.3055 情报系统理论(包括情报系统分析与设计、情报网络建设理论等)

  870.3060 情报技术   870.3065 科学技术情报学   870.3070 社会科学情报学   870.3099 情报学其他学科

870.40 档案学

  870.4010 档案学史(包括档案事业史)   870.4020 档案管理学   870.4030 档案保护技术学   870.4040 档案编纂学

  870.4099 档案学其他学科

870.50 博物馆学

870.99 图书馆、情报与文献学其他学科

880 教育学
880.11 教育史(包括中国教育史、外国教育史等)

880.14 教育学原理

880.17 教学论

880.21 德育原理

880.24 教育社会学

880.27 教育心理学

880.31 教育经济学

880.34 教育管理学

880.37 比较教育学

880.41 教育技术学

880.44 军事教育学

880.47 学前教育学

880.51 普通教育学(包括初等教育学、中等教育学等)

880.54 高等教育学

880.57 成人教育学

880.61 职业技术教育学

880.64 特殊教育学

880.99 教育学其他学科

890 体育科学
890.10 体育史

890.15 体育理论

890.20 运动生物力学(包括运动解剖学等)

890.25 运动生理学

890.30 运动心理学

890.35 运动生物化学

890.40 体育保健学

890.45 运动训练学

890.50 体育教育学

890.55 武术理论与方法

890.60 体育管理学

890.65 体育经济学

890.99 体育科学其他学科

910 统计学
910.10 统计学史

910.15 理论统计学

  910.1510 统计调查分析理沦   910.1520 统计核算理论   910.1530 统计监督理论   910.1540 统计预测理论

  910.1550 统计逻缉学   910.1599 理论统计学其他学科

910.20 统计法学

910.25 描述统计学

910.30 经济统计学

  910.3010 宏观经济统计学   910.3020 微观经济统计学   910.3099 经济统计学其他学科

910.35 科学技术统计学

910.40 社会统计学

  910.4010 教育统计学   910.4020 文化与体育统计学   910.4030 卫生统计学   910.4040 司法统计学

  910.4050 社会福利与社会保障统计学   910.4060 生活质量统计学   910.4099 社会统计学其他学科

910.45 人口统计学

910.50 环境与生态统计学

  910.5010 自然资源统计学   910.5020 环境统计学   910.5030 生态平衡统计学   910.5099 环境与生态统计学其他学科

910.55 国际统计学

  910.5510 国际标准分类统计学   910.5520 国际核算体系与方法论体系   910.5530 国际比较统计学   910.5599 国际统计学其他学科

910.99 统计学其他学科
!!周颂 清庙之什 清庙

于穆清庙,肃雍显相。济济多士,秉文之德。对越在天,骏奔走在庙。不显不承,无射于人斯。

!!周颂 清庙之什 维天之命

维天之命,于穆不已。于乎不显,文王之德之纯。假以溢我,我其收之。骏惠我文王,曾孙笃之。

!!周颂 清庙之什 维清

维清缉熙,文王之典。肇禋,迄用有成,维周之祯。

!!周颂 清庙之什 烈文

烈文辟公,锡兹祉福。惠我无疆,子孙保之。无封靡于尔邦,维王其崇之。

念兹戎功,继序其皇之。无竞维人,四方其训之。不显维德,百辟其刑之。於乎,前王不忘!

!!周颂 清庙之什 天作

天作高山,大王荒之。彼作矣,文王康之。彼徂矣,岐有夷之行。子孙保之。

!!周颂 清庙之什 昊天有成命

昊天有成命,二后受之。成王不敢康,夙夜基命宥密。於缉熙!单厥心,肆其靖之。

!!周颂 清庙之什 我将

我将我享,维羊维牛,维天其右之。仪式刑文王之典,日靖四方。伊嘏文王,既右飨之。我其夙夜,畏天之威,于时保之。

!!周颂 清庙之什 时迈

时迈其邦,昊天其子之,实右序有周。薄言震之,莫不震叠。怀柔百神,及河乔岳,允王维后。

明昭有周,式序在位。载戢干戈,载橐弓矢。我求懿德,肆于时夏,允王保之。

!!周颂 清庙之什 执竞

执竞武王,无竞维烈。不显成康,上帝是皇。自彼成康,奄有四方,斤斤其明。钟鼓喤々,磬筦将将,降福穰穰。降福简简,威仪反反。既醉既饱,福禄来反。

!!周颂 清庙之什 思文

思文后稷,克配彼天。立我烝民,莫匪尔极。贻我来牟,帝命率育,无此疆尔界。陈常于时夏。

!!周颂 臣工之什 臣工

嗟嗟臣工,敬尔在公。王厘尔成,来咨来茹。嗟嗟保介,维莫之春,亦又何求?如何新畲?于皇来牟,将受厥明。明昭上帝,迄用康年。命我众人:庤乃钱镈,奄观铚艾。

!!周颂 臣工之什 噫嘻

噫嘻成王,既昭假尔。率时农夫,播厥百谷。骏发尔私,终三十里。亦服尔耕,十千维耦。

周颂 臣工之什 振鹭

振鹭于飞,于彼西雍。我客戾止,亦有斯容。在彼无恶,在此无斁。庶几夙夜,以永终誉。

!!周颂 臣工之什 丰年

丰年多黍多稌,亦有高廪,万亿及秭。为酒为醴,烝畀祖妣。以洽百礼,降福孔皆。

!!周颂 臣工之什 有瞽

有瞽有瞽,在周之庭。设业设虡,崇牙树羽。应田县鼓,鞉磬柷圉。既备乃奏,箫管备举。喤々厥声,肃雍和鸣,先祖是听。我客戾止,永观厥成。

!!周颂 臣工之什 潜

猗与漆沮,潜有多鱼。有鳣有鲔,鲦鲿鰋鲤。以享以祀,以介景福。

!!周颂 臣工之什 雝

有来雝雝,至止肃肃。相维辟公,天子穆穆。于荐广牡,相予肆祀。假哉皇考!绥予孝子。宣哲维人,文武维后。燕及皇天,克昌厥后。绥我眉寿,介以繁祉,既右烈考,亦右文母。

!!周颂 臣工之什 载见

载见辟王,曰求厥章。龙旂阳阳,和铃央央。鞗革有鸧,休有烈光。率见昭考,以孝以享。以介眉寿,永言保之,思皇多祜。烈文辟公,绥以多福,俾缉熙于纯嘏。

!!周颂 臣工之什 有客

有客有客,亦白其马。有萋有且,敦琢其旅。有客宿宿,有客信信。言授之絷,以絷其马。薄言追之,左右绥之。既有淫威,降福孔夷。

!!周颂 臣工之什 武

于皇武王!无竞维烈。允文文王,克开厥后。嗣武受之,胜殷遏刘,耆定尔功。

!!周颂 闵予小子之什 闵予小子

闵予小子,遭家不造,嬛嬛在疚。于乎皇考,永世克孝。念兹皇祖,陟降庭止。维予小子,夙夜敬止。于乎皇王,继序思不忘。

!!周颂 闵予小子之什 访落

访予落止,率时昭考。于乎悠哉,朕未有艾。将予就之,继犹判涣。维予小子,未堪家多难。绍庭上下,陟降厥家。休矣皇考,以保明其身。

!!周颂 闵予小子之什 敬之

敬之敬之,天维显思,命不易哉。无曰高高在上,陟降厥士,日监在兹。维予小子,不聪敬止。日就月将,学有缉熙于光明。佛时仔肩,示我显德行。

!!周颂 闵予小子之什 小毖

予其惩,而毖后患。莫予{艹幵}蜂,自求辛螫。肇允彼桃虫,拚飞维鸟。未堪家多难,予又集于蓼。

!!周颂 闵予小子之什 载芟

载芟载柞,其耕泽泽。千耦其耘,徂隰徂畛。侯主侯伯,侯亚侯旅,侯彊侯以。有嗿其馌,思媚其妇,有依其士。有略其耜,俶载南亩,播厥百谷。实函斯活,驿驿其达。有厌其杰,厌厌其苗,绵绵其麃。载获济济,有实其积,万亿及秭。为酒为醴,烝畀祖妣,以洽百礼。有飶其香。邦家之光。有椒其馨,胡考之宁。匪且有且,匪今斯今,振古如兹。

!!周颂 闵予小子之什 良耜

畟畟良耜,俶载南亩。播厥百谷,实函斯活。或来瞻女,载筐及筥,其饟伊黍。其笠伊纠,其镈斯赵,以薅荼蓼。荼蓼朽止,黍稷茂止。获之挃々,积之栗栗。其崇如墉,其比如栉。以开百室,百室盈止,妇子宁止。杀时犉牡,有捄其角。以似以续,续古之人。

!!周颂 闵予小子之什 丝衣

丝衣其紑,载弁俅俅。自堂徂基,自羊徂牛,鼐鼎及鼒,兕觥其觩。旨酒思柔。不吴不敖,胡考之休。

!!周颂 闵予小子之什 酌

于铄王师,遵养时晦。时纯熙矣,是用大介。我龙受之,蹻々王之造。载用有嗣,实维尔公允师。

!!周颂 闵予小子之什 桓

绥万邦,屡丰年。天命匪解,桓桓武王。保有厥士,于以四方,克定厥家。于昭于天,皇以间之。

!!周颂 闵予小子之什 赉

文王既勤止,我应受之。敷时绎思,我徂维求定。时周之命,于绎思。

!!周颂 闵予小子之什 般

于皇时周!陟其高山,嶞山乔岳,允犹翕河。敷天之下,裒时之对。时周之命。

!!鲁颂 駉之什 駉

駉駉牡马,在坰之野。薄言駉者,有驈有皇,有骊有黄,以车彭彭。思无疆,思马斯臧。

駉駉牡马,在坰之野。薄言駉者,有骓有駓,有骍有骐,以车伾々。思无期,思马斯才。

駉駉牡马,在坰之野。溥言駉者,有驒有骆,有骝有雒,以车绎绎。思无斁,思马斯作。

駉駉牡马,在坰之野。薄言駉者,有骃有騢,有驔有鱼,以车祛祛。思无邪,思马斯徂。

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
!! 参考链接 

* 格式参考 http://tiddlywiki.com/#WikiText
* 官网 http://tiddlywiki.com
* 华语论坛 https://groups.google.com/forum/#!forum/tiddlywiki-zh
* 蜜汁台版文档 http://tw5-zh.tiddlyspot.com
* ~TiddlyWiki 使用手册 | 站长百科 http://www.zzbaike.com/wiki/TiddlyWiki
* tid.li Plugins - A ~TiddlyWiki Plugin Source http://tid.li/tw5/plugins.html
* Community 官方导航 http://tiddlywiki.com/#Community:Community%20Plugins
* 社区插件合集 http://erwanm.github.io/tw-community-search/#CommunityPlugins
* ~TiddlyWiki 使用教學中文版 http://web.nlhs.tyc.edu.tw/~lss/wiki/TiddlyWikiTutorialTW.html

!!! 相关阅读

*  应用tiddlywiki的一点经验 http://forum.ubuntu.org.cn/viewtopic.php?t=46941&highlight=wiki
* ~TiddlyWiki 使用心得 http://blog.csdn.net/yxj911/article/details/1577778
* 一个小巧好用的个人知识管理系统 - `TiddlyWiki` http://sinojelly.blog.51cto.com/479153/200468/

!! 配置计划

# 管理员用户系统
# 网页直接保存
#* 利用 PHP 配置参考 http://tiddlywiki.com/#Saving%20on%20a%20PHP%20Server

Home范德萨范德萨分ds
/9j/4AAQSkZJRgABAQEAYABgAAD/4QBaRXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAEAAIdpAAQAAAABAAAAJgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAACoqADAAQAAAABAAADgAAAAAAAAP/tACxQaG90b3Nob3AgMy4wADhCSU0EJQAAAAAAENQdjNmPALIE6YAJmOz4Qn7/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAG4AUsDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9WtA0T4iftK/tGfF60s/i/wCKvhp4V+GevWfhXTdM8LaTo001/K+jabqk95dT6lZXjFi2pCJI4hGqrBk72c7et/4ZG8ff9HRfHX/wV+Df/lDUf7Hv/Jef2o/+yo2v/qHeGa95oA8K/wCGRvH3/R0Px1/8Ffg3/wCUNH/DI3j7/o6H46/+Cvwb/wDKGvdaN1AHhX/DI3j7/o6H46/+Cvwb/wDKGj/hkbx9/wBHQ/HX/wAFfg3/AOUNe6bx6ijevqKAPC/+GRvH3/R0Px1/8Ffg3/5Q0f8ADI3j7/o6H46/+Cvwb/8AKGvdN49aTevrQB4Z/wAMjePv+jofjr/4K/Bv/wAoaP8Ahkbx9/0dD8df/BX4N/8AlDXuu6k3j1FAHhf/AAyN4+/6Oh+Ov/gr8G//ACho/wCGRvH3/R0Px1/8Ffg3/wCUNe67uaKAPCv+GRvH3/R0Px1/8Ffg3/5Q0f8ADI3j7/o6H46/+Cvwb/8AKGvdaKAPCv8Ahkbx9/0dD8df/BX4N/8AlDR/wyN4+/6Oh+Ov/gr8G/8Ayhr3WigDwr/hkbx9/wBHQ/HX/wAFfg3/AOUNH/DI3j7/AKOh+Ov/AIK/Bv8A8oa91ooA8K/4ZG8ff9HQ/HX/AMFfg3/5Q0f8MjePv+jofjr/AOCvwb/8oa91ooA8K/4ZG8ff9HQ/HX/wV+Df/lDR/wAMjePv+jofjr/4K/Bv/wAoa91ooA8K/wCGRvH3/R0Px1/8Ffg3/wCUNH/DI3j7/o6H46/+Cvwb/wDKGvdaKAPCv+GRvH3/AEdD8df/AAV+Df8A5Q0f8MjePv8Ao6H46/8Agr8G/wDyhr3WigDwr/hkbx9/0dD8df8AwV+Df/lDR/wyN4+/6Oh+Ov8A4K/Bv/yhr3WigDwr/hkbx9/0dD8df/BX4N/+UNH/AAyN4+/6Oh+Ov/gr8G//AChr3WigDwr/AIZG8ff9HQ/HX/wV+Df/AJQ0f8MjePv+jofjr/4K/Bv/AMoa91ooA8K/4ZG8ff8AR0Px1/8ABX4N/wDlDR/wyN4+/wCjofjr/wCCvwb/APKGvdaKAPCv+GRvH3/R0Px1/wDBX4N/+UNH/DI3j7/o6H46/wDgr8G//KGvdaKAPCv+GRvH3/R0Px1/8Ffg3/5Q0f8ADI3j7/o6H46/+Cvwb/8AKGvdaKAPCv8Ahkbx9/0dD8df/BX4N/8AlDR/wyN4+/6Oh+Ov/gr8G/8Ayhr3WigD5/179kX4nnRbr+yf2pvjJDqgiY2j6hoXhG5tFlx8hmij0WJ5I843KksbEZAdThh2X7G/xjvP2iP2Rfhb8QNUtrOx1Txz4S0rxBe21orfZ7ee7s4p5Ej3EtsDyMBkk4AyTXp1eA/8Euf+UZ37PH/ZNPDn/prtqAJf2Pf+S8/tR/8AZUbX/wBQ7wzXvOa8G/Y9/wCS8/tR/wDZUbX/ANQ7wzXvD/cP0oAoeIvElr4X0q51C+ubWz0+yhe4ubm4lEcVvGg3M7seFUAEkngYrwT/AIek/AozNGvjq3kKkjdFp126n3BEWMe9Wf8AgpVpMutfsVeNrWHzPMuIbaMqmcyKbuHcnHZgMH2r8yfDfwdYrEJImDleeOp9q+74O4WwWbUp1MZUlGzsuW3ZPW6fc8XNMwrYaSVJJ6dT9Mov+CmXwTlI2+NI278aXef/ABqrUP8AwUg+DVyPk8XK2f8AqG3X/wAbr889M+Cv3f3R/wC+a6DTfg7s6xnp2Ga+z/4hnk/WvP8A8l/+RPD/ANYsZ/LH7n/mfecP/BQT4Ryr8viwf+C+6/8AjdTx/t7fCmZfl8UBucf8eFz/APG6+IrT4UiMAbe3cVfh+F2FH7oeuazl4b5Mtq8//Jf/AJE558S46P2I/j/mfZ5/bw+FoXnxMv8A4AXX/wAbrG8af8FL/gl8OdFm1TW/GsOn2VqvmSSyWF0dozjoIyevtXydefD6PT7KSaZVSOFSzM68AAZ55r8yv2ivitqnjjX755Hl1ZCyxSQRL/osl2gMalBuOFXDKc5DFlNfG8X5Fk+T0E6dScpy2vy2/I7stznH4qpyuMUl5P8AzP6F/wBmj9sf4b/th6FNq3w38WaX4ms7KRY7oQiSK4tSwJTfDIqyKGAJVioDYOCcGvVa/Ej/AINk9TutS/ay8V+Wz/Y4fBMwvcKyI9yb+z28HuoEidOAP9o1+25O0c18Dh6jqQU2j62nJuN2FFYnxA+I+gfCvwld694k1zRfDui2O37Rf6pex2drBuYKu+WRgq5YgDJ5JArT0/U4dSsobiGaGWG4QSRvG4ZZFPKspHBBHII4NbFliijcKw9I+Iuia94z1fw/Za1o95rWgJBJqWnwXkcl3p6TqzQNNEpLRiQI5UuBuCkjODQBuUVkeNfHWj/D3w8+q63q2l6LpscsMD3eoXcdtbpJNKsMSF3IUM8roijOWZ1AySBVbWviRpPhnxBo+k6nqWmabqfiKWSDS7S5ukin1KSONpZEgRiGlZY1ZyEBIVSTgc0AdBRTY5NyKW+Vj2z0o81f7y/nQA6imrKrHhlP0NOoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK8B/wCCXP8AyjO/Z4/7Jp4c/wDTXbV79XgP/BLn/lGd+zx/2TTw5/6a7agCX9j3/kvP7Uf/AGVG1/8AUO8M17w/3T9K8H/Y9/5Lz+1H/wBlRtf/AFDvDNe8mgDyL9te0W+/Zq8SQtIIVZYPmPbFxGR+Z4/Gvzc+IXx98N/C/wASN4eWSLUfENvbtdPbiQKsaqAwRm6b2DZA9Oc4r7v/AOCtHj2T4Z/8E/fiHrUHE1rbWyqcZ2l7uFMj3G7ivwh0Lx5DKY5FiWW6vHX5p0y65A2fN14G36ADk1NbjmvkeHdDC0+aUnzNvorGNTKVipe0b0Ssfp74Q+NXgXXpoY7bWbeVpJPIB2FFD7C5XnHTaQT64HevVtE0Gw1V5I7e4s7mSElXWGdZDGckc7SfQ/ka/KG58RaVqkKXV5bNJYrEkyxu5V4LradkgZTwFYKSOmFYfxcd/wDsr/H7xB8MdMsfEkV4sd5ZTvFJJt+WaJwSAYznce2DjJwe3PPS8asTD2dTF0lySdm4vVfI4p8N+63Fn6br4GjOB5YBx1zVhPAKsRtRTkYye1dF8AvHWk/H34a2viLS4ZYI5iYZreQ5aCRcZUkcHIIII7GsH9p/9ofwZ+zD4H1I61r2m2HiCTS7m90vT3Yme6K7wjhQDhS67cnAJ49a/SpcYUfq6xSn7jV07/1qeM8pd7NHxb/wU8/aquvg74Xk8L6VHa2Uuub7Wa6Mw+0rHt+bagORnJHXPH4j4P8ACWmpD4ftI9R+zyXFwYpZYYyRKqF/mUsoAUYDcDnAznIGc/x14s8RfFv4qXniTxVcSGS6uDPFbzgFIdzbhjB56AkDj5e1aUPjpfBdjazWNtFc6gs6x+dI2EkACvt2EHgMob2DEZr8Rzbiavjsw+s4i9ktF2R9Zl+Uxo0bdWfoB/wQT0fS/Df7YWsWml28cKyeDNQupnhyqS77/Tdm5SMZCAbcfwnnmv1a+KV9rmmfDXX7nwza6XfeJLfT55dLttSuXtbK4ulQmJJ5UVmjiZwoZgpKqScHFfjz/wAG6fxi1L4gftta/p8zR/2ba+ALmSFY4VUAre6Yi5I5ztzweoxnJBr9m9YXfpdwPJa4+Q5iABMo/u4JA56ckDnqOtfUYfERrU1OGxU6Ps3yH4FftU/tJeOtN8Taz8Vv2htc/ZZ/au8N+C7GPV9H8BaP8W7Ky8K6XcPDsm8vQmgnk1S6i82WOOe6kc7HYqgbaV9m/wCCZnjL40fBT43WPhXwF8Sv2Z7X4R6tq9hBp3wn1X4vxeMr7SraYyte/wBiXkMUdxF5KJG0dnMs8bK0mHBGa83/AG3P2cbfUP2W/i82rfso6f4F8VfGDT10j4M+AfCvwmtNS1bw4tvPGkl/qmq2Vswt727Mm8Qed5cEMSgF3Lsftjw//wAE/wBv2SP2+fh/4t8H/A74Z+LPhr4rjttPuk0rwho+ma38I9UgtXH9p2t2kccl1Z3PzidZGeWJwrRMwfyW2JPPfEH7L+val/wXdl8EWvx5/aQs/Dd98M7v4qxaQ3xH1E6ZBqw8SJAlv9mVxH/Z4jfy/soG3YAue5+f4/Ev7WH7NX7VH7ffxJ034nfB278UfC3wl4X1TxfJJ4IufsuvG20S6vLWC1j+15t2WFiru5cM0ikKoXFfUvxx/YV+OSftUeMP2oPHHxuXwbpvg3w5f+HrTw98KPBUmoa3rPhaHUTqUFu8148rC+l2RrJ9nhAyuFkC7ifn7x/4t8YeBf8Agnt8fbHxh8L/AIsaz+0Z+3Jbaj4gsPDuieFbzUIdCtLyP+zdM025vFTyoXtLONJJVlKMgkIKggZAPVv+CmPxXvda8efsvat4t1fw941fxImg3ngn4Lw3X9lDxv4wuJl3alqlyUl8vSdPhlSaOMIQ1xgOWG1W/OD47/so+JtY/aJt9Zh+C+oWUPhvVtcJ0tPhN8Qb+3umfXE06I3Fyl43nN/ZjS6mstrJEhMZhbe7qo/Uv/gqR+zjpPw7j/ZF8eWXgNvEnxI8J/Evwjolzd6VYpdas+m2Nlqdx9hjkyAkTXDscsyoXkUs2AuPz78W/su6H8JtU08/Fz4D33hXxJJofhbxtFpXh7wV4q1i18UyXEV8+uaB58V3N9jutzWaxyM6CKeLB/dO+QD9YP8AgiB4WvPCX7AGlw6h4OHgW6bxDreNOGlatpK3ESX80UF2LXVJpbuHz4IopdkjnG/gDmsH/goX8XPHXg346aVZ6NrWsaNpS2EVxYiwneJbybe4k3hTiXB2LsYEDK8c5Ox/wSX+Evir4A/sfa54dvPhc3gGSz8SalqWgadNcFf7TsLtI7yzaVTNM8E0aTJaTIzEiWzkYbt25k1X4L/Fn4nahrGp+PvCdvrWqRWvm+GvsmqpbW+iXWTtIVJF3LyrndvYtEoPB4+k4Yq0KGJeKxPJKMVblk1duWmifbdvttqfC8eU8VicEsFg+dTk0+aKlZKOrTcbvXZJJtvyuz6v+Ht1e33hrTJtThS31N7OM3kajHlzFVMi47YbIwCcYroK8f8A2Tk+J1npN9Z/EqzsxPZiNbG+imjkmvFO7eJQnyhlwmGGNwY5GRmvYK8LFUfY1pU+ZSs3rF3i/TyPrMtxTxGFhVcZRbW01aSfW62v6aPcKKKKwO4KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArwH/glz/yjO/Z4/wCyaeHP/TXbV79XgP8AwS5/5Rnfs8f9k08Of+mu2oAl/Y9/5Lz+1H/2VG1/9Q7wzXvDfdP0rwf9j3/kvP7Uf/ZUbX/1DvDNe8tyKAPk3/gttpM2vf8ABMP4o2duzrNcwWSKY878m/t/u4BJPoACfTmv57NA+CfjDTvHq2ujL42uNHWBLia5k0ogieSYJIVV0QusUZJKoC5wAuelf0O/8FmPFlp4C/4Jt/EjVdQ07+1rW0hsjJabiplBvrdeo54Jzx6V+GVx+39qur+FrTTPhvfN4Z1e6vI7d5Ltibe1AO0KgjRijHdu3Fc9Oua+L4iq4iOJjCjBSTW72Wp6OClTjB+0djgNY+HPxKtb2RpDrVzp+l2l0iyS6NNb7BuaNJSZI+m0q5BPcggA8ewfsw+AfFuv+CpodIuND8WQW8sHntbXXk3doolB2yW4DMzBct+7Vt2TtyBXD/GjXfipb63Do/i/4lR+Mru6gORoutT3FvEV3bQz+TEpIdeSFPXviu4+HWtz6LpM1t4btYfB9jeWUVpqX9nqsNzqbKWJeWRMH5nkJPrwOgAry6+B56PJioRiv7qMq2cUKT9ml/mfaH7K0vxM+Fn7Qmn2vhjWLWOzvb6WW60xrmSTTrxdpCR3KLyhUZ+8qtGV5AHT4P8A2oPiX4y8bfGf4jeIvixrtnD4itrj+zr21lSWW4tGUlI7e1toFc+WhBxggKHLN94E/oL/AME/rnTfh/4R1TVv7Jt/7QlvWjtb51DS+Vswdp6r94gkfeGO1eAf8FKf2arXx/8AErxF8UNLk077Hq2nB9ctJpisktzECokRR94siR9wdy+9feYLguayWlOEZST1cb3svmfOS4iourrFeh8F6V8QrbX9AjkhvLh5YH8uONLcyRkbJGJaQkYJkWPAPXeQSpHGf8R/E/iqw0vRJG0ya6m1+ENDN9ot/LxJIIR86uyrgyBWDbSpABAUHHoXxG+Lvgf4L/EC8/sLwrpPj7wRrMa3EUeoWEH/AAkOleajCT7LesjiVVZSQlyrnJXDA5r1T9jf4yeHfEeiXVv4V1rxF8RtNW3lF14Q1XUFhvrVJDGXH2WGJZdqvHAzPbsE/cqWcKMHwcyy+WBm26XPFdU7/wBWPpcuxtOtFJyS+Vj0v/g1U1+aX/gpz4209hNFH/wra/leGS8huzEw1PRxgyRFkJJdzgHgMB2wP6Ea/MP/AII5+Jrbx3+2/wCPvEk3hLR9L1jxJ4cE8uox2AhuI4oZLG3jgjJDFY5FjWSRTK26RA2BwB+nletk2Mp4nDKrSVldq3oRjqbhVcW7kbwbyfmYZ606KPyk25ZvrWbH4ptJfFlxo63UBv7W3jvJbfP7xIZGdEc+zPG4H+4aqeLPih4f8FQ3zaprel6e2mae+q3SXFyqPBZoSHuGUnIjUggtjGeOteochuyx+amMle+RTBbYXG96xfDPxS8N+ML77HpfiLQdUvNhkMFpfxTSbRjLbVYnAyOfcVdl8XaZ/a11p6alp7alYpHLcWv2hPOgSTcI2ZM5UNsfaTwdrY6GgC0umqpY7pPmznnsacLTau0SSLzk4PWsDwj8VdB8cNKdL1rS75beGOeXyphlI5CwjcjP3WKOAehKMM5BAs6P8Q9H127vo7XVNPuBpt01lc7JR+5mVVYoTnGQHXOM4JwecgAG1GnloF5OO5p1czq3xf8ADPh/xba6LqHiDRbLU75Hkt7aa6RJJVXZnAJ/6aKcHkhsjODiPS/jh4N1qTVvsfizw3droNsbvUmh1KGRdPhG7MkzBsRqNrZLYwFJoA6qivPf+GtvhVgn/hZnw/wvJ/4qG04/8iV31rdR3ttHNDJHNDMoeORGDK6kZBBHBBHegCSiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvAf8Aglz/AMozv2eP+yaeHP8A0121e/V4D/wS5/5Rnfs8f9k08Of+mu2oAl/Y9/5Lz+1H/wBlRtf/AFDvDNe8k4rwb9j3/kvP7Uf/AGVG1/8AUO8M17y33aAPjf8A4L53Nvb/APBKD4ryXCyyRRwaexSNgrSEaja4XJ6AngnnAPQ9K/nF8Haa3izxbNepD/ZukxXQdIraPbGuNgCgcFsBQct2PSv6Qv8Agu5ZQX//AASt+Kkc27Y8NgPx/tG2I/Wv537SH+ydscO1rYrnA9a562Eqzj7SnG/Q8fMsZ7JqF7aHs3g3V9IS1unuIJPtV0hJlZyzDGcYP07DAGRgV0Xwwgk8Rstrbxr5kjfNvbCgDJJz6V5r4fsoJoVE903UHanAVcf19K9I8I+LbXQIttqqo2OWx8x59fSuzCcNYjGTpxxdowjq+7PjcVj2ruOrPrLwv44HhbwtZaXZ3jRw2kIjDYG4+/SuT+N0M3xD+GmraYNQYtdwtwF6nnGPfOD+FeS2PxPLD/WtnuK0YviXvTa0h6etfqjrRjReHp6Rtb00sfOyr1Iz5mfIXin9nS/aZoFuC0lupiJ3EdDzXD+L/wBljUna31KzvJtN1u2b91eW7FZAewyuOBt+vzfSvqb4hanCNYkkRWVpCWJ7Ma5W/wBWjmkTc26POdpPINfj8ozo4l0562bPrMJm1VQWp9cf8GwP7SHxC8eft7+LPBPxCs9J1bUNM+H11qNr4k8hV1C5i+36WohklQjzVxIGzKHkBUDeB8tfu8TtHNfiL/wbii3n/b+8QyRxqsqfD2/DEDk51HSuv/fIr9sNZ0a08R6TcWF/a295Y3kZhnt54xJHMjDDKynIZSOCDwRXVOFOMmqastz7bBYiVeiqktzx3xT4S1TxX+1nrg0zxNq3hvyvB+mb2sra1nM+b3UcZE8UgGMHG3HU5ri/28IIjoEFi182oahNp8LLb3U32W3slTULKL7e08MZkiYyzRgpzE4TftHkEn17/hkj4V7Nv/CtvAeMYP8AxT9pyP8Av37n866fw38N9B8Gsp0fSdP0nbbRWQFnbpABBEZGiiAUDCI00pVRwDIxHWpOo+Wv2N9daP8AaSWxhfSPLuNJ1OWSL/hKLvU7hY1vo1gZUli2MAgKrIjL5kbBmG4FTuftnajDF41ms4Qdav5W0cvbz6LbXy6VBNeNEY4nNtcTbrny5G8sQS4+ysw2bhn6H8P/AA00Pwt4h1DVrDT47fUtWffeXO4tLccswUsxJ2BnchBhQWJABNLe/DbQdR1aW+m0mxkvJ7mC8knMK+ZJNAMQyFsZLRj7uemTQB8W/sVwWuleAPF9vqtn4V0vTbfwZbXAn8Q6QlvYBmubwF7l3srN5LcGKIsu+RflOHUkgWPCXgey+GVlF/aHgH4W3Hh/T/DNhqdxdatpMomzcXVwst9cKbITR7iN8iuqxwoAcIoO36+8P/BXwp4Va4bT9B0u1+2Rwwz4gVvNjhJaJDuB+VGZmUDgMxbqSataZ8MdB0bX9W1S1023h1HXlRNQuMbpLtUBCqxbOVG5vl6fMxxknIB8q/tHyQ2f7TemyRXiw+HUbSH1SWGe1SGyjgk861bJspGVVYs0mJSDFs37I9pqr8Ol1/Rv2TfHGh3uvXF1o9h8IbTUrbTns7eFLOS9tb8v86IsjbFt0A3sT877ixww+qrz4K+Fb+/+1TaDpkk32WWyJ+zqFaCWOOKRCoG0ho4o0OR9xFX7oxV64+HWh3c2pPNpVjN/bFpHp98ssKut5bIJAkMikENGBNKNpGMSMO9AHgvii48aT/F1b2xt/HV58K9P8QRXeowzxyLqLXauwBtIzi5k0yOfZJKjjJ2L5Ae3yh+koE8uFF/uqBXAn9k34Wldv/CtvAOMYA/4R60wPw8uu603TbfRtOt7Ozt4bW0tY1hghhQRxwooAVVUcKoAAAHAAoAmooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArwH/AIJc/wDKM79nj/smnhz/ANNdtXv1eA/8Euf+UZ37PH/ZNPDn/prtqAJf2Pf+S8/tR/8AZUbX/wBQ7wzXvJOBXg37Hv8AyXn9qP8A7Kja/wDqHeGa95JwKAPI/wBtr9l+1/bN/Zf8YfDO/vrjSYfFVgbeK/ijErWM6uksMxQkb1WREJTI3LkZGcj8f4v+DYj9oKymZI/G3wjuIoyQsjX+oRmQdiU+yHafbccep61+6ralCrYMg7dvWpd6+tb0cVUpK0GceIwdGu7z6eZ+HVn/AMG1f7QFrj/ir/hK2P8AqJ6h/wDIda1p/wAG5Xx8thz4t+FPA7alf/8AyHX7X+YvrR5i+tbrMq6d7nFLIcG90/vZ+MVp/wAG8vx5tzz4q+FnTtqV/wD/ACHVuP8A4N9vjtEP+Ro+F3/gyvv/AJEr9kvMX1o8xfWtP7YxPdfcjKXDmBe8X97Pxk1z/g3k+Omr2oj/AOEo+FqsM8nUb7/5ErCf/g23+O7If+Kr+FO7+8dSv+f/ACTr9uDKqjOelN+1R7wu75m6D1rz683Wn7SpqzSnkODguWKf3s+B/wDgkJ/wR/8AEH/BP74ieIvG3jTxJo+t+Jta07+xbW10ZZWs7G1aWOaVmklVGkkd4YuAihQh5bdx9+UUVJ6tGjClBU6askFFFFBqFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXgP/BLn/lGd+zx/wBk08Of+mu2r36vAf8Aglz/AMozv2eP+yaeHP8A0121AEv7Hv8AyXn9qP8A7Kja/wDqHeGa94cZU/SvB/2Pf+S8/tR/9lRtf/UO8M17zQB8c/8ABWD9pbxx+zB8MPCWqeCdYj0O+1LV5bS6kezgu/NjW3dwAJUcL8wByAD744r4X/4e6/tB/wDQ9w/+CHT/AP4xX1j/AMF5/wDkingT/sYZ/wD0levy8r+pvCbhfKMZw9CvjMNTqTcp6yhFv4tNWr6H8h+MHFec5fxJUw2CxVSnBRhpGckvhXRO2p9Jf8Pdf2g/+h6h/wDBDp//AMYo/wCHuv7Qf/Q9Q/8Agh0//wCMV820V+lf6k8Pf9ANL/wXH/I/Lv8AX/iT/oPrf+DJf5n0l/w91/aD/wCh7h/8EOn/APxij/h7r+0H/wBD3D/4IdP/APjFfNtFH+pPD3/QDS/8Fx/yD/X/AIk/6D63/gyX+Z9Jf8PdP2gm6+Oocf8AYB0//wCMV8z/ALTf/Bfn9q74fftqfDLwfovxQtbPQfEMumC/t/8AhF9JkacTag8Mg3vbFlzGu35SMdRg81NXxf8Atl/8pJfgv/120b/07S1+Z+LHDeU4Hh+VfB4anTnzxV4winbW+qVz9Z8GOKs4zDiJYfHYmpUh7ObtKcmrq1nZux/YehyPxNLTY/u/if506v5bP60CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK8B/4Jc/8AKM79nj/smnhz/wBNdtXv1eA/8Euf+UZ37PH/AGTTw5/6a7agCX9j3/kvP7Uf/ZUbX/1DvDNe814N+x7/AMl5/aj/AOyo2v8A6h3hmveaAPgL/gvP/wAkU8Cf9jDP/wCkr1+XlfqH/wAF5/8AkingT/sYZ/8A0levy8r+w/Bn/kmaf+Kf/pTP4j8cv+Sqq/4Yf+koKKKK/VT8fCiiigAr4v8A2y/+UkvwX/67aN/6dpa+0K+L/wBsv/lJL8F/+u2jf+naWvyXxo/5JuX+OH5n7R4Df8lQv+vc/wD20/sOj+7+J/nTqbH938T/ADp1fyCf2oFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV4D/wAEuf8AlGd+zx/2TTw5/wCmu2r36vAf+CXP/KM79nj/ALJp4c/9NdtQBL+x7/yXn9qP/sqNr/6h3hmveScCvBv2Pf8AkvP7Uf8A2VG1/wDUO8M17ywypoA+AP8AgvLJu+CXgI8/N4hnxx/06yV+X2D6Gv3W/a//AGLdD/bN8NaHpPiS+1iwttDvWvYX02aOORnaNo8NvRgRhicYH9K8JH/BCT4U4/5GTx9/4GW3/wAj1/QHh34m5PkuSwwGMU+dOTdo3Wrutbo/mvxK8K88z3PJ5hglDkcYr3pWd0knpZn5P4PoaMH0NfrB/wAOI/hV/wBDJ4+/8DLb/wCR6P8AhxH8Kv8AoZPH3/gZbf8AyPX3X/EbOHf+nn/gP/BPgf8AiA/E/an/AOB/8A/J/B9DRg+hr9Yf+HEfwq/6GTx9/wCBlt/8j0f8OI/hV/0Mnj7/AMDLb/5Ho/4jbw7/ANPP/Af+CH/EB+J+1P8A8D/4B+TwVifumvjD9s5DH/wUn+C6sMHzdFP/AJVZa/ouk/4ISfCsIdviPx9u7f6Za/8AyPX4Yf8AByV+zzp/7Av/AAVE+Fen+CZNU1m4tfB2leIrePU2FxJNdrq+ohIgIlQlT9njG0ckk4PIr4PxE8SsnzvKHgMHz87lF6xsrLfW7P0Xwv8AC7Osgzv6/j1Dk5JR92V3d2tpZdj+q6P7v4n+dOr+b2f/AIOgP2/45mX/AIUF4bXk/L/wgWt8e3Nxmm/8RQf/AAUA/wCiCeG//CC1v/5Ir8BP6NP6RKK/m7/4ig/+CgH/AEQTw3/4QWt//JFH/EUH/wAFAP8Aognhv/wgtb/+SKAP6RKK/m7/AOIoP/goB/0QTw3/AOEFrf8A8kUf8RQf/BQD/ognhv8A8ILW/wD5IoA/pEor+bv/AIig/wDgoB/0QTw3/wCEFrf/AMkUf8RQf/BQD/ognhv/AMILW/8A5IoA/pEor+bv/iKD/wCCgH/RBPDf/hBa3/8AJFH/ABFB/wDBQD/ognhv/wAILW//AJIoA/pEor+bv/iKD/4KAf8ARBPDf/hBa3/8kUf8RQf/AAUA/wCiCeG//CC1v/5IoA/pEor+bv8A4ig/+CgH/RBPDf8A4QWt/wDyRR/xFB/8FAP+iCeG/wDwgtb/APkigD+kSiv5u/8AiKD/AOCgH/RBPDf/AIQWt/8AyRR/xFB/8FAP+iCeG/8Awgtb/wDkigD+kSiv5u/+IoP/AIKAf9EE8N/+EFrf/wAkUf8AEUH/AMFAP+iCeG//AAgtb/8AkigD+kSiv5u/+IoP/goB/wBEE8N/+EFrf/yRR/xFB/8ABQD/AKIJ4b/8ILW//kigD+kSiv5u/wDiKD/4KAf9EE8N/wDhBa3/APJFKn/B0B/wUBldVX4B+G2ZjgAeAdb5P/gRQB/SHRX8yfg//g7z/bI+IVzNDoHw4+FuuTW8fmyx6f4Z1O6eNMgbmEd2SFyQMnjJrc/4ipf27v8Aoing3/widZ/+SaxqYijTfLUmk/NpFRpyeqTP6UKK/mv/AOIqb9u7/oifg3/widY/+SaP+Iqb9u7/AKIn4N/8InWP/kms/r2G/wCfkf8AwJf5lexqfyv7j+lCiv5r/wDiKm/bv/6In4N/8IjWP/kmj/iKm/bu/wCiKeDf/CJ1n/5Jo+vYb/n5H/wJf5h7Gf8AK/uP6UKK/CP/AIJl/wDBw/8AtfftY/t6fDH4c+Pvhb4V0Hwf4s1VrPVL238KanazQRCCVwVllnZEO5F5ZSMfXNfu1BMtxHuXOD61tTrU6ivTkn6O5Moyjuh1eA/8Euf+UZ37PH/ZNPDn/prtq9+rwH/glz/yjO/Z4/7Jp4c/9NdtWhJL+x7/AMl5/aj/AOyo2v8A6h3hmvea8G/Y9/5Lz+1H/wBlRtf/AFDvDNe80AFN8tfSnUUAN8tfSjy19KdRQA3y19KPLX0p1FADfLUdq/nD/wCDqhtv/BfH9ncjgjwp4bwf+5i1Ov6Pq/nA/wCDqn/lPf8As8f9in4b/wDUi1OgD9Of+C6H/BcO4/4Ixt8L3i+GcfxGX4kHVQQ/iM6R/Z5svseP+XafzN/2v/Z2+X3zx+f7/wDB8jeI2P8AhmW1P0+IZ/8AldVz/g+S/wCPT9mL/f8AFX8tIr9C/j3e/sy/sH/sgeAPHnj74H+D9ZtNat9O07/iU+CtJubp7iWzM29/O8oYIjfJ3E5I45rOtWhSg6lR2S3Z3ZbluKx+Jhg8HBzqTdoxW7b6I/Ob/iOTvP8Ao2W3/wDDht/8rqUf8HyV4x/5Nltv/Dht/wDK6vpH/h8V+wi3H/DN83/hu/D/AP8AJFepeNrr9nD9s/8A4JMfHX4l/Dr4LeEvD8OmeEvElpbS6j4N0u0vra5t9Od/NQwiQLgyKVYMGBHQEVx4XNMJiZ+zoVFJ72R9Fnvh/wAR5Lhli81wc6NNtR5pKyu9UvXRnU/8EPP+C1dz/wAFmPDvxH1B/hzH8N/+EBudOttia+dX+3falnYnJt4PL2+Rj+LO/tjn4E8V/wDB7he+GPFeqaSf2areY6bdzWpl/wCFgsvmeW5XOP7O4zitP/gx4Ofht+0X/wBhTQP/AEVf1+Bnxdbb8W/FODj/AInF30/67PXoHx5/YF+0r/wVruf2ev8AgjNof7WX/Cv/AO15tY8PeH9ebwx/bRgWEarJap5f2vyGz5f2kHd5I3bRwueM/wDZO/4K/wB1+1F/wSE8ZftVN4Bj0JvCOjeINW/4RhddNyt1/Zccz+WbvyF2+b5WN3lHbno1fzB/sOfC/wCOX/BTz4x+F/2cfDHxO1OO3161mWw0zxL4jv10CCKxtnuljMUazBQqwfuwsRAYL90cj+kv9h7/AIJMfEr9mv8A4IQ+Pv2Y9d1bwXdePvFHh/xRpVne2F7cyaSkmpxTpAXleBJQoMo3kREgA4DUAfDGif8AB7xe63q9lZ/8M0W0IvJkhDn4hsSu5gucf2dzjP6V+hn/AAW7/wCCzN1/wRu+HHgHxCvw7X4if8JvqV1p5t5NeOk/YvKijk3Bvs82/O7GMLjHU548l/4It/8ABCm4/wCCeX7InxE8PfHTw38G/H3ibUtYn1jStQs9PGr/AGS3FlDGE827tY5EIkiZgqgqM5zkmvx5/wCCNn/BZL4f/su/EPx3eftWWPxC+OWi6pZW8Xh6zv7a38UDS7hJXMsqpqVwqwlkKrujyWxg9BQB+s3/AASK/wCDnO7/AOCqv7Y1n8JT8FY/AoutIvdU/tVPFrakU+zoG2eT9jizuzjO8Y9DX6Cft4ftWP8AsWfsbfEP4qpobeIpvAOiyasdMe8+xC9KbR5Zm2PszuznY30r+aX/AIKL/wDBMj4vfs5+CfEP7cXgPxZ4Z8D/AAu+KmsDWfDOneHdTvNL8RaZpusO01tbyQwQJbw7YnVZI4p2RSMKXAzX7Cf8Emv2n9H+HH/Btt4c+Kfxkj1z4jaDoejazqHiKC9C6ze6tbpql0pjK3cgSXjaAsjhQABkACgD1j/gj7/wV/uv+CsH7Jnjr4of8K/HgWTwZrNxpC6XHrh1QXpisobreZfs8RTd5uzARsYzznA/N1v+D46+jRS37Mdv8w4/4uG3P/lOqP4ofs8eOv8Ag4HvV+Jn7CviC3/Z/wDhX4Xtv+ES8QeHdYv5/CLanqql7iS5FrpCXNvKjW91bxmWRxIfLKldqKT9Of8ABAv/AIN5PEH/AATxm+K3/DQGkfBb4jR+Ll0gaELS3bWf7PNt9u+0Z+2Wkfl7/tEP3M7thzjaKANz/gjJ/wAHJVz/AMFdP2r9U+GL/B6L4fLpvhm68Rf2knittUMvkz20Pk+V9khxn7Ru3buNnQ54/UxphAibt7FhxgZJri/h3+y/8NPhDr7at4T+HfgbwvqkkDWzXukaDa2Nw0TFS0ZkiRW2kqpK5wSo9BX50f8ABVT/AIKT6V+1x8WvH/8AwT9+Fc3jrwj+0V4kksbTSfFFxIum+H7J4o7bW5GN7bTveIps4pI/ktiWkYIRsJegDp/+Cg//AAX/ALr9hP8A4Kd/Dz9nJfhSvidfHh0Qf8JA/iU2Rs/7RvGtT/o/2WTf5e3d/rBu6fL1rZ/4Lkf8F2Lj/gjNqvw3to/hhH8R1+IEWoyM7+IjpP2A2jW6gAC2n37/ADz3XGzvnj86vg1/watfthaf+2D8NfiZ8RPip8LvGJ8G+JNJ1S7uL3xVrOoag9paXkc7RRtPY8nar7VLBct1GSa1f+D4Nt/iP9nE+tt4hP8A5EsKALbf8HyN4o/5Nltfw+IZ/wDldTf+I5S8/wCjZbf/AMOG3/yur9EPj7rP7MX7A37I3w18Z+Pvgd4R1i38RWthp4OkeCdJubh7h7MSmSTzvKGCEbJ3Ekkcd6+f1/4LDfsINIFH7ONx83/VOvD3/wAkV5+JzbB4efs61RRfZs+zyPw74lzjDLG5ZgqlWm20pRV1dbr5Hziv/B8heMP+TZbX6f8ACw2/+V1fpB/wQ8/4LITf8Fj/AIW+OPE0nw7j+Hf/AAhmrQaZ9mXXTq32wSwmTfuNvDsxjGMHPrXmnxsk/Z2/bG/4Iy/tC/FL4dfBnwj4dh07wJ4ogs5r7wdpdnqFpdW+mTMJYzD5gUgspVlcMCM8EV85f8GRP/JrHxv/AOxrsf8A0jNdlKrCrBVKbunqmfMZhgMRgcTPB4uDhUg3GUXumt0/Q+E/+DU+4kg/ad+LWx3Q/wDCExjKsR/zErSv25XUbrHFxP8AhIf8a/EP/g1V/wCTnPiz/wBiVH/6crSv24T7g+lfwL9IbTjGp/17p/8ApJ+k8J/8i2L83+hL/aN1/wA/Fx/38P8AjR/aN3/z8XH/AH8P+NR0V+H8zPpLkn9o3Wf+Pi4/7+n/ABo/tG7/AOfi4/7+H/Go6KOZhc6/4F31xN8YfDqNPMwa65DSEg/I1fX9gc2/1Jr48+BH/JZ/Dn/X2f8A0W1fYen/APHov41/bX0Yf+SfxX/X9/8Apumfm3Gf+9wf939WTV4D/wAEuf8AlGd+zx/2TTw5/wCmu2r36vAf+CXP/KM79nj/ALJp4c/9NdtX9KHx5L+x7/yXn9qP/sqNr/6h3hmvea8G/Y9/5Lz+1H/2VG1/9Q7wzXvNABRRRQAUUUUAFFFFABX84H/B1T/ynv8A2ef+xT8N/wDqRanX9H9fzgf8HVP/ACnv/Z4/7FPw3/6kWp0Aei/8HyP/AB6/sx/7/ir+WkV9Uf8ABfV93/BJn4Rj01XRuf8AuFXFfK//AAfIjNr+zHxn5vFX8tIr7++NHib9lD9tz9k3wH4F+Ivx1+G9lYaLbadqHlWHxB0uzuo7mKz8nY+6RuAJHyuByBXn5rhZ4nB1KFPeSsrn2HAOe4fJuIsHmmLv7OjUUpWV3Zdlpc/n5j+Vx83Xiv2E/wCCbvy/8G6n7QgPfSfGOP8AwVIatP8A8ExP+CdpX5f2gPD4PY/8LU0cf0r0Hx/4j/Zg/ZD/AOCVvxx+Gnwz+N3w31i11Twh4jurW0ufHmm3+oXN5cadInlxhHUsW2IFQKSST1Jr5Xhrh3F4HFOtXtbla0d97eXkf0B42eNWQcVZBDLMrVT2iqRl70VFWSknrd90fJ3/AAY+KzfDL9ozbw39paBj/v1f13n/AAXg/wCDdLQ/iF+zf4fT9k/4D6B/wsh/FqXet3FnrEVhK2nG1uvMy99dJGwNw8BwuWyBjABrhP8Agx7Rk+G37RinKn+1NAz/AN+r+vU/+CCH/BcH42f8FJf2+PiX8N/iVH4K/wCEd8JeG73U7NtI0d7S5M8Wp2lqm52mcFPLmkyuOTg545+6P5PP58fCXjn4sf8ABM/9rPUpNG1K8+H/AMVvhzqF/oV3NZy291LplyoktbqIOvmQvwZELKWB6g9DX6Tfsm/FD/grr+3N8GbL4hfCrxj4w8VeDdSuJ7a2vzr3hyxMkkLmORfKuJI5RtYEZKgHqMjmv0K+Ln/BAT9g/wDa+/bC8b3eofE7UdR+K/jLxBqWrax4d0rx/pzX0N88sk93GtmI2mQRsXJQglApz0r59tv22/Gn/BGD/grN8Lf2Hfg2NFl+CeqeLPDsEkmv2Zvta8vWbm3a8AuUeNc/vX2Hy/l+XO7HIB8Y/tl/t7/8FMP2DfiNo3gn4yfE/wAX+E9e8VWIvLCx/tDRb/7XbvK8G7fa+ai5dXXDsp4z05rgz/wa7/t1yMW/4Ubu3c/8jn4e5/8AJ6vq/wD4PI90X/BTP4H5b5h4Mtuh/wCotd1/Qp8U/wBon4f/AAB0vT7nx5428H+CbbUGMNpPr+s22mx3TqoZljaZ1DsByQMkDrQB/LJ/wUD/AGcP+Ci37PX7Btj4f/aCh1vTfgL4bl07SrWwm1/Qr23tGi/d2capaTPOdoXAPTgbj3r5X0b/AIKd/Hbwn+y1P8D9P+JXiC1+FctpcadJ4cVYDaNBNK0sseTH5gVnZ2PzZyx6Cv6Lv+DsbxPpnjX/AIImXesaLqFjq2k6p4k0S6s72ynS4t7uF3ZkkjkQlXRgQQykgg5Ffmz8HP8Agh18EPHn/BuxqX7UV83jQfE2z8NarqiiPVo100z219NBF+58knbsjXI35JycjPAB8H/sNf8ABTn47fscrZeDfhd8S/EHgvw3ruvQ3t9Y2MduY553MUTSHfGxyY0VcZAwor+kT/gvZ4L/AG3PHDfC3/hje41qFrOTWR4uFhrGk2AIb7D9i3fb5E3/AHbvHl52/Nuxlc/y9fs1/sxfEj4u67pfiLwn8P8Axt4n8P6Xq8Ed7qWkaDd31pZsjJI6ySxRsqlUIYgnIU56V/bT8Hf2lPhv+0JcaingHx34J8bNpKxvff2Brlrqf2MSl/LMvkO+zf5b7d2N2xsZwcAH82X7Zfx1/wCCtH/BPr4U2vjj4weOPF/g/wAL3mpRaPDfHWvD1/vupI5JEj8u1eWTlYZDuK7Rt5IyM+cfs0fsL/8ABRL9sn4k6D+2D8N9F1jxN4s8SedLpvjoeJdBs7u58qKTS5D5NxcIV2xwvBh4lyq5xyGq9/wVN/4Kq/tM/wDBVPxx42/Z5fwjY+MtF8C+NrzVLOz8JeFrq41UR2E1zaRvJ5TyExhZ8MSgG4pyOhP2M/8Agud+2Z+wh8PvCf7NPgX4f6X/AGl4RE9rYeHdS8FX1x4hdp5Zr9w8AkWVm2zs4AjH7vacfxEA/f3/AIIieHP2lvCn7HV5Z/tWy6pN8UP+Eju5Ijfajp99J/Zxit/Iw9i7xBd4m+UncDnIwRX5Yf8AB79/yH/2b/8Ar18Qf+h2Fch8Hf8Ag5g/bWt/2zfhh8NfiZ4P8IeDT4z8SaRp15Z6l4Mu9LvzZ3V7HA0iLNMGAIZwr7SMqeuDXY/8Hwa7fEn7OIHa28Qj/wAiWFAH1Z/wcAxtJ/wS7+BOP4dR0wn/AMFUtfjOltIlwuVPXr+Ffvz8cda/ZM/bq/ZS+G3g34ifHb4c2Nr4bs7G+WOw+IOl2dwlytmISr7nfgB3BUgHOPSvCf8Ah19/wTv/AOjgtA4OQf8Aha+kf4V8HxBw3jMbjHXo2tZLVn9deDfjhw9wvw5DKsyVT2inKXuxTVm7rW//AA1vMq/sPgr/AMGx/wC0hnj/AIpfxt/6aWrhP+DIn/k1j43/APY12P8A6RmvoT43+LP2YP2T/wDgjr+0J8K/hj8avh5rUWreBPFE1jaTeOtN1C/u7u40yZfKjEbqzliqhUVCSeBkkV89/wDBkT/yax8b/wDsa7H/ANIzX12W4eVDC06M94pJ+p/N/HGc0M24gxmZ4W/s61SUo3VnZu6uujPhD/g1V/5Oc+LP/YlR/wDpytK/bhPuD6V+I/8Awaq/8nOfFn/sSo//AE5Wlftwn3B9K/g/6RH/ACWNT/BT/wDST6zhP/kWx9X+gtFFFfhp9EFFFFAHV/Aj/ks/hz/r7P8A6LavsPT/APj0X8a+PPgR/wAln8Of9fZ/9FtX2Hp//Hov41/bn0Yf+SfxX/X9/wDpumfm/GX+9Q/wr85E1eA/8Euf+UZ37PH/AGTTw5/6a7avfq8B/wCCXP8AyjO/Z4/7Jp4c/wDTXbV/Sh8eS/se/wDJef2o/wDsqNr/AOod4Zr3mvBv2Pf+S8/tR/8AZUbX/wBQ7wzXvNABRRRQAUUUUAFFFFABX84H/B1V/wAp7/2ef+xT8N/+pFqdf0f1/OB/wdUn/jff+zx/2Kfhv/1ItToA/U//AILUf8EPdL/4LLn4b/2p8RNQ8Ar8OTqZiFrpCah9uN6bXdu3Sx7Nn2VcYzneemBXwj/xBAeEfP8AL/4aF8Sbuv8AyKEGP/Sqv0G/4K/f8FtvBn/BHT/hXv8Awl/gzxT4tX4iHUvsh0aWBPsps/su/f5rLnd9qXGP7p9q/F3/AILn/wDBx94F/wCCpn7Iuj/D/wAE+CfH3gzWdM8UW2uvfahdW6xPDHb3MTR/uXLbi0ykZ4+U98UAfT//ABA9eEv+jhvEf/hIwf8AyTUMv/BkP4Qhl2t+0J4mz2x4Qg5+n+lV+MP7AX7O3jb/AIKB/tc+D/hDoPjSXQdW8ZSzw299qF1cNbwGK3lnO4IS3IiI4HUiv2T+H/7QS/8ABH/4P6l/wTp8bDVPGfxQ+MonstM8ZaTPt0fTX8Qr9itnl84rcYhcb32LyPu80AfoF/wRZ/4ItaX/AMEcNG+IGn6Z4/1Lx0vxAurG4c3mkJp5szarcKAoWWTfu88knjG0dc8fkz/waKwM/wDwVw+OxUE58FapgAcn/id2H+Br9O/+CA//AASB8f8A/BJHw58T7Hx7460HxxJ44u9Nnsn0xrlvsYtluVcP5yj73nLjb/dOe1fh1/wWD/4ITfEr/gk98OYfixrnxG8M6zY+NPFj6NFaaF9rhuIWmjubsM5dVG0Lb4IBPJHXGaAP22/Zy/4N39H/AGf/APgrXrH7WVv8UNS1LU9Z8Qa/r7eGpdDjigifVUukaL7QJSxEX2okNsBbYM4yauftXf8ABv3pP7TH/BVnwj+1RcfE7VNH1DwnrOgatH4ch0OOeK6bSpInWM3BmVlEvlAE7Dt3H72BX0d/wSEkab/glR+ze7MzM3w08PszMckk6dBkk13n7a/wW1D9pL9jz4p/DvSL610vVvHvhPVPDtle3JbybSe7tJYI5X2AttVnDHaCeOKAPij/AILHf8EEdH/4Kl/HXwv8T9U+JWreC7jwHoH9nxafb6LHeperDcTXW8u0yFCTIVxgjCg55r4g8AfFeT/g8NuLn4feJrGP4Ew/BMDX4bzS5Tr7aq13/o5iZJRB5YTytwILZ3YwMZOl8If2qLX/AINSfh3rXwO+MkGsfFzxD8VjJ4wstV8LzBbaytniFiIZPtZR/MD2zt8oI2svfIr4D/4IAf8ABYbwd/wSB+KPxK8QeL/CfibxVD420y1sbWLSJIEa3aKaSRi/msvBDADbnkGgD7o0P42N/wAFWPFd1/wTAvbCPwd4d+DrSaRb/EC1k+3XmqL4dJt0drAhERpwmWUTHYTgbqdf/tF3H7OvjZf+CRsOjpqXhzWnTwgfiVNOYb6JNVUaibj+zgpQmNrkxhfPwwQHIyRX6E/8FBf2U7v/AILc/wDBKPwu3wzuNJ+HOqfEldG8YW93q0TCW2gdRO0Uj2wZjIRIBxkEg896/MzwD/wbvfEv/gj58SdK/au8d/Enwf438OfA25TxXqulaULv+09Tgg4McLTKE3nIA3sB70Afqd/wTB/4JSaf/wAEhv2NPiR4B0vxtqPjq38QXl7rpvLrTVsWt3NhHB5QVZJAR+5B3Eg5bGOK/N3/AIMaBsvf2nvmVt0fhY8HpzrFJ8c/g34g/wCDoTxhZ/tJfCLXP+FV+FfhLbr4V1HRPEssrXmpT2rtqLyx/Zd8e1orpEAYg7kPbFemaX/wek/AbQ5JGsfgb8R7Np8eY0B06MyYzjO2TnGT19TQB88/8G1txs/4OLv2hmDfK2k+LScHqP7ftD/SunuZWP8AwfIr8zf8hFRye3/CEgfy4r1yx/4PQvgHpl69zbfAn4iW9xJndLF/ZyO2Tk5Ikzyea83bwlJN+0x/w+HEiD4Pg/2j/wAIISf+El2C2/4RjG/H2bP2kefjzP8AVcfe4oA4T/g4JVm/4OcP2fTydr+C+OpP/E6lr9Rf+C0n/BCzSf8Agshqvw9udU+I2peA/wDhX8eoRxpaaOmofbftTQEli0se3b5HQZzuPTFfz6/8FVv22dH/AOC4H/BUbwFrvgHS9Y8DJ4ot9F8EQf25IjPbXT3kiCcmAt+7BuUPHzfKeOlfZX/EGx+0MZMH9oHwJ1wf3up5/wDQKAPWbj/gyD8I25Xd+0J4lO44yPCEHH/k1TpP+DH/AMIxuq/8NDeJCzdh4Rg/+Sq8U/4M9bfVtD/4KffGLQdV1S51STQ/Bt5ZszzvJGzxanaxllDHvg4yM4Neof8ABxf/AMHAngn4k/CT43/sq6b4M8baX4y0jXINK/t77TAtiXs76GZ3G1/N2usRUDGfmGe4oA3f+IHrwl/0cN4j/wDCRg/+Sa/Qf/gjF/wRz03/AII7/Dfxp4b0zx5feO4vGWqw6o011pSae1oYoTFsCrJJuznOSRjgY71/Oz+yh/wRl+K37Wn/AATT8dftM6T8VNK0vw34CtNau7vSLue9a+uF021+0SBGUFMuvC5IwetfqL/wZO61ea3+y98bpLy8urt18V2IDTzNIR/oZ9TQB8D/APBqr/yc58Wf+xKj/wDTlaV+3CfcH0r8R/8Ag1V/5Oc+LP8A2JUf/pytK/bhPuD6V/AP0iP+Sxqf4Kf/AKSfq3Cf/Itj6v8AQWiiivw0+iCiiigDq/gR/wAln8Of9fZ/9FtX2Hp//Hov418efAj/AJLP4c/6+z/6LavsPT/+PRfxr+3Pow/8k/iv+v7/APTdM/N+Mv8Aeof4V+ciavAf+CXP/KM79nj/ALJp4c/9NdtXv1eA/wDBLn/lGd+zx/2TTw5/6a7av6UPjyX9j3/kvP7Uf/ZUbX/1DvDNe814N+x7/wAl5/aj/wCyo2v/AKh3hmveaACivg//AILy/tA/tSfs9/BjwLf/ALK/hfV/FHijUNclt9agsPDf9uGGzFuzKzJtbyx5m0buM9K/MH/h5n/wWI/6I/4w/wDDXD/43QB/RdRX86P/AA8z/wCCxH/RH/GH/hrh/wDG6P8Ah5n/AMFiP+iP+MP/AA1w/wDjdAH9F1Ffzo/8PM/+CxH/AER/xh/4a4f/ABuj/h5n/wAFiP8Aoj/jD/w1w/8AjdAH9F1fzgf8HVJ/433/ALPH/Yp+G/8A1ItTrR/4eZ/8FiP+iP8AjD/w1w/+N18Q/tqfHP8AaR/aB/4KYfB3Wf2pPDepeF/iFavodnp9re6CNGkfS11aZ45BDgbgZ5Lkb8c7SP4eAD+iT/gsj8bf2Nfg1dfD1v2uNC0DWl1EakPCn9p+HZ9X8nYbX7Zs8pG8vO61zuxu2jHQ1+K//Bc39o7/AIJ+fF39j/R9N/ZZ8M+F9I+IkPii2ubyfTvCd1pU39nC3uVlUyyRqpUytB8uckgHtX3B/wAHgv7Gfxa/bAT9nuP4WfDjxl8QG8OnxG2p/wBg6XLe/YPP/swReZsB27/Kl2567G9K/Bv49/8ABPL46fso+DIfE3xK+Evj7wLoE92lhFqGtaLNZ28lw6u6xB3UKXKo7Adwh9KAHf8ABPTwb8X/AIg/tieDNH+At/fab8WL6a4TQLmz1BNPmjcW0pl2zyMqpmESDkjIJHevvz4k/wDBCn/gpd8ZPjhpPxL8WaVqPiD4gaE1s+neILzxtp0l/ZtbSeZAUkM2R5b5ZfQ819MfsN/8EsND+Cf/AARt8BftefAbwb4o1r9q2z0b+0dDFrLNqkNxcyXr2U5Gn8o4+yPKduMAjd2r59+In/Bwn/wUk+Efxk0v4deKNPh8P+Ptba2TT/D1/wCBIINRvWuH8uARwsu5jI4KqAOSMUAfrV/wQM+DH7X3wa8OfE6P9rbWvEGs31/eaa/hk6p4gg1jyolS5+07DE7eXljDkHGcDA4NfiB/wWg+Av7dHwq+FNrq37TXiHxNrHwwvvF7ReH4NQ8U22qQx3rRXTwssUbsykW4mAYgAAkcZAr9w/8Aggv+0T+1v+0ZoXxMk/aw8J6x4VvtLu9NTw3HfeFxof2mN1uDclcKvm4KQ887cj1r8+P+CdX7RXij/g42/as8dfAf9qa6tvFHw7+HNheeLtGtdEtk0S5j1GC9hsI3aaABnUQXk42HglgeSBQB+f37Bv7a37b37S3xG8H/AAP+Cfxi+IS3yaa1l4f0SLxGtja2tpZWjSeSjSMqIscEJCgn+EAZNfsH8Fv+Cjni/wDZj/Yk179lX44fEnxSn7dPi6x1PSPDEMk819cf2nqqOmh7dTi3W8RMksBDNKBFnL7cGvmf/gk1/wAEq/id+x3/AMHHkus2fwh+IXh74J+F/EXiyx0TX7/TbhtPGnfY9Qgsn+1SDDrIpiCuWO8uvJzX2v8A8FZf2ff2T/8Ahp3xN8Um8VaT/wANo+GNKttS8A+HP+EmP22+8QWtuJNChTTN3795blLYLFtPm7gMHdyAfl/8ff8Aghh/wUY/aq8aaL4q+Muj3XjpvDsCwi81nxlp11LBYrIZpIwfOyV+aQ4GSdxx2Fc1/wAF8vj3+w/8YPhV8PLf9k7QPDWja9Y6tdP4hbTPDNxpLyWxhURBnlRQ4DhuAT61+33/AARY+Ov7UH7RH7J3xIvv2oPC+teHPGlvq81jotpfeG/7EknsTYxsrJEFXzAZnkG4Z547YH8r37R/7Cvxl/ZI0vT9S+KHwx8beAbHWriS3sJ9d0mWzju5FAZlQuAGYAgkDtQB93f8EIf+C5fif9mr9q3w3Y/Hj40eNo/gj4d8M3OlWmkztcahY2rJCkdpGtvErHCBQFOMLgciv1I/bY/4Lb/s5/8ABTv9knx5+zz8GfGeoeJvir8WNIl8OeGNLn0S8sI7+9kxsjaeeNYogdp+aRlUdzXlP7Pv/BA39hDQv+Cb/wAJfjJ8ZmvfCcfivwvo99qur6l4ym0+ya9u7ZJCBlgq73LYUfTtX5S/tBaRo37Lf/BaCGP9imSPxpZ+GtY0+fwE2mS/8JGL+7NlE8ioTu88iZpRt5xjHagD9Nv+CV/x68L/APBvF+yP47+Cv7WGoSfD74hfEDULvxPolhZ2761HdWEtlFZpIZbQSRoTPbyrtZgflzjBzX89IHy9K/pk/Yo/4Jg65/wW3+HuqfET9vz4e+MtJ+KXhbUT4c0GPyJvC+/RljS4RvIjCiT/AEie5HmEZ42/w1oftD/8EAP+Cav7I50f/haWrN8PV8QGcaWde8fTWX9oeT5fneVvYbtnmxbsdPMX1oA/InwJ/wAGxn7ZHxK8D6L4i0f4baTdaT4g0+31OxlPibTkMkE8ayxsVMwKkqwOCAR0NeSftU/FX9pj9ijQPEH7JvxC8aeJtH8N+GY4rTUvBUerx3WkwCZo9SjA8stG2Xmjl4PDEj1FffP7Rv8AwWS/4KDfsJ+HJptP0Kbw38DdJ1D/AIR/wTruqeCYmstQ01N66d5d3ImJ/MtIVdXyS6gtznNfGn7Mnxo8K/8ABT3/AIK/aH4u/a38QaLY+F/HlzMfF+qm6TQbSNbfSJIrUiRMCH57a1Xgjc3H8RoA6v8A4I0/8Egvj5+1T8VPhb8avA/hO11b4d+FfiBpx1K/fV7S3kg+xXdtPcYhkkEjbY2BG1Tu6DJ4r9RP+Du/9ur4w/sceIPgSvwp+JHi3wDH4gt9cbUl0a+a2W+MT2QjMmOpUO+PTea94+FP7X/7Ff8AwTE/YG+Ing/9nf48/DK1vbTT9Y8QaFZ3Xi6DVZptXayxCAJGJfdJDCBH0J471+Ff7Qf7Qn7Yn/BfxdLurzwXrnxUX4ViWEP4T8KbRppvdrYm+zr1f7L8oP8AcbHegD9p/wBvn/gmD8QPCv7I/wAOfFn7Dvg/Tvh/8ZvEklpN4s13w5f2+h3+p6dLZNLMs08jKJFe68iQrnJZQe1fHH/BOL/g3p/aQ1z/AIKdaD8Qv2sPhro/jPwTq02o3niq41rXbHVDf3EtnMsUkkUcpeRvPMRyF4IBPSv2u/Yj/bg+EPx28IaH4I8F/Ebwb4s8XeGfD1qdV0bS9Uiub3T/ACY4oZfNiUlk2SkIc4wxAOK+bf8AgtZ/wWr8G/slfsjfEiP4T/F74bx/HnwjeWllB4flu7e+voZft0Ed1G1oxyXWEykgj5dpPagD8lf+Djn4zeKP+Cdv7ZGtfAX4H65qfwv+DfiDwbbzal4N8OzGz0i+e9S4hu2eEcEzRhVf1A/Gvsb/AIMiuP2Wfjh/2Ndj/wCkZr8k/jt4O/bA/wCC2XjdfjZdfC7xh8R5Gtk0Aax4Z8LMtiRbEnyv3K7S6+acnryB2r9rv+DRL9kz4n/skfs7/F7S/ih4B8WeAdQ1fxLZ3Nlb67pstlJdxralWeMSAblB4JHQ0Afmd/waq/8AJznxZ/7EqP8A9OVpX7cJ9wfSvxH/AODVX/k5z4s/9iVH/wCnK0r9uE+4PpX8A/SI/wCSxqf4Kf8A6Sfq3Cf/ACLY+r/QWiiivw0+iCiiigDq/gR/yWfw5/19n/0W1fYen/8AHov418efAj/ks/hz/r7P/otq+w9P/wCPRfxr+3Pow/8AJP4r/r+//TdM/N+Mv96h/hX5yJq8B/4Jc/8AKM79nj/smnhz/wBNdtXv1eA/8Euf+UZ37PH/AGTTw5/6a7av6UPjyX9j3/kvP7Uf/ZUbX/1DvDNe814N+x7/AMl5/aj/AOyo2v8A6h3hmveaADFFFFABRRRQAUUUUAFfzgf8HVP/ACnv/Z4/7FPw3/6kWp1/R/X84H/B1T/ynv8A2ef+xT8N/wDqRanQB+iv/Bwh/wAFqvGH/BHcfCmTwp4L8MeMB8RhrC3P9rzzxfYzZfYimzyiNwf7U2QT/AuOpr17/gov/wAE/vCv/BZP9i3wb4Q8YeLrzwZbte2Hi1ptIMEsgnNpIpixLkbP9JY56/KK8n/4OAf+CKPij/gshN8KYfDfjjw/4LX4cnVzcnUrKa5N4b77Fs2eX93b9kbOeu8Y6V+dcn/Bk/8AFiKNmb48eCAFGf8AkFXv+NAH6o/F/WZP+CEX/BEmeXwAsfxDb4N6XDBpp1j92NSE+oqrGTyOm0XDY2n+AZ71/Nx+2P8A8FYvG/7ZX/BR3wZ+0jq3gLS9I8QeC5tImg0i0+0PZ3J06489N7N843ng4PA6V/Vp/wAEyf2SNQ/Yd/YK+HHwj1vVrHxFqHgnT5LK4vraF44Lom4llBVJPmGA4HPcV3/7R/xT079nP9n3xx8QLvSf7UtfA+g3uvTWcGyOW6S1geZo1ZhgMwQgE8ZNAH8/yf8AB6d8bg3PwJ8BFc5x9p1D/Gvgf/gl5/wVR8a/8Evv2oPGnxQ8O+A9L8Ual400i50mey1MXEdvbJNeQXTMpj+YkNAFGezZr+lb/gjv/wAFlPCf/BYXQ/Hl/wCHfh/qng2HwHcWFtMNSuoLg3bXSzMu3yxxtEJznuw9DXHf8Etv+C+ngr/gqR+094y+F+hfDHXvCeoeDdHudYnvtQvLeeGdYbyC1MYWMZBLThsngBD7UAbX7UH/AAVn8SfAz/gh54b/AGn9M8N+GdW8Xax4a8N61LoEk8v2JJNSktEmjXa3m7YxcNtySflGc4OfgPwd+ztaf8FLPgvf/wDBUHxNfah4V+JXwrhufFdn4J02FW0a9n8Lgy20MksgM4Sc2yLIVIIDttxgV9Lfsu/8G/njb4B/8Ftde/atvviN4b1Pw3rXiXxHri+H4rG4W7WLVI7tIoi7Hy90f2lSx5B8s4HIx+qtrBE1nsWONY2BBQKNpz1496AP5wbr/g9b+M2m7Fm+CXw5i3DKh7y/XI6d2r46/wCCvf8AwXk8af8ABYDwD4N0HxV4E8LeEYvBmoXGoQTaTc3Ej3DTRLGVYSEgAbc5HNfWv/B6Do39r/8ABRj4O6fGVhF14FhhUhchC+qXa5wPrWsP+DJD4obRn45eARn/AKg15/jQBk/sBftxap/wXi+FvgP9hHx1pOk/D/wP4Z8N21xH4o0WV5dUlbR4EWLckxMQ8zq3HHavIfgT+xLpv/BP3/g50+GPwn8O6xq3iXw/4T8aaSLbVb2FFlufOsorht3ljZw0jLkdhzzms7/gp7/wbSeOP+CW/wCynefFjW/ip4X8TWNnqdppZsdO0+4gmY3DlQ29zjC4yR3r9xv+DY2COb/gif8ABWR0SSTy9VO9ly2f7Vu+c9aAPGv+C7n/AAX++IX/AASY/ag8L+BvB/w38MeMLDxF4Yj12W71Ga6SWGRrq4hMYERC7cQq2Tzlj7V+JP8AwWS/4LSeNv8Agr3bfDkeMvAOgeCf+FfvqbWh0yS4YXpvRZ79/nZ+79lQjb/z0Oe1f0Af8Fe/+DhLwX/wSS+P3h/wH4n+GXiDxlda/oKa7DeaffW8McUbXE0AjIkGdwMJPHGGHvX4f/8ABf8A/wCC2XhL/gsHp3wlTwv4E17wT/wr2TV3uRqN1BMt59tFiFKeVjG37I2cjnctAHL/ALef/Bd/x1/wUQ/YV8D/AAD1T4e+GdF0fwJPpl1b6jps1xNd3H2Gyls13qxKgMspY4HBHvXwVd2cllK0cysrqcFWUqw+oPP/AOuvsn/ghf8A8FNvD3/BKL9sXV/iV4k8J6t4ysdS8K3Xh6Ox0+4ihlSWa5tZRITIMFQLdlIHPzg9AQeo+KcKf8HC3/BcW8bwZj4ar8aLlFsl1ofa/wCzTYaIm/zPJA3eYbF8benmLk8E0AfJf7Lvwdj+OP7RHgHwheT3ljpvi7xLp2h3V5bx7mtYri6iheRdw25VZC3zccDPFftp8ffFS/8ABn9Lptj8I5IPjInx68241N/FUgtzpJ0vasQh+ykbvM+3Pu39PKXHU19qfsl/8E09a/4JXf8ABDD4/fDHxF4k0bxdqB0LxXrceoadbSQRIk2k7AmJPm3AwkkjjkV/JxJcPOih5HfaMKGYnH0oA/oA+Nfwas/+DZDwHpf7VPw8u7j4meJPjpImhajofiQC3sdNjvEOpvJC9vh2ZZIFQByRtck8gV+dH7JXwjT/AILsf8FnZLfxs174BtfjNqmq65ezaJD5/wBgdbOe5CRGYEFS0QXJzw3riv1I/wCDtU/8ac/2ef8AsYNL/wDTNcV9QfsuftxaP/wTe/4Nxvg78ZNZ8OXniex8K+CtESSwspY4bib7RNHbAq7jA2mXcc9QD3NAHwh8a/8AgpN4k/4NaPHn/DK/wx8N6P8AFLw95Mfi4ax4kklt79577KvCEttqFF8hdvG4liPSv0V/4IGf8FcvGP8AwV0+FHxA8ReMfBuheDbnwbrNvptvBpkk7rOkkHmln80k5BxjHY1+B/7dX/BYrwv+1t/wWM+F/wC07p/gvXNI0HwBe+Hru40O6vIZLq+Gm3v2iRUkUbBvX5RnOD161/RN/wAEc/8AgsB4Z/4K9fDrxp4j8M+CNY8E2/hDVINNmi1C6hna6aSIyBh5YGMYxzQB+Dn/AAaq/wDJznxZ/wCxKj/9OVpX7cJ9wfSvxH/4NVf+TnPiz/2JUf8A6crSv24T7g+lfwD9Ij/ksan+Cn/6Sfq3Cf8AyLY+r/QWiiivw0+iCiiigDq/gR/yWfw5/wBfZ/8ARbV9h6f/AMei/jXx58CP+Sz+HP8Ar7P/AKLavsPT/wDj0X8a/tz6MP8AyT+K/wCv7/8ATdM/N+Mv96h/hX5yJq8B/wCCXP8AyjO/Z4/7Jp4c/wDTXbV79XgP/BLn/lGd+zx/2TTw5/6a7av6UPjyX9j3/kvP7Uf/AGVG1/8AUO8M17zXg37Hv/Jef2o/+yo2v/qHeGa95oAKKKKACiiigAooooAK/nA/4Oqf+U9/7PH/AGKfhv8A9SLU6/o/r+cD/g6p/wCU9/7PH/Yp+G//AFItToA/R/8A4L8fsaftZftc3XwpX9l34ia34AbQTqw8TNp/ja78Ni9842X2TcLdh52zy7jG7JTecfeNfza+J/8Agpx+1f4R8W6ho15+0t8fPtml3UtnPs+IursvmRsUbaftHIypx61/YZ+09+3Z8If2MH0dPir8RPCvgH/hIvPbS/7ZvBb/AG7yDH53l5+9s82LPpvX1r5auf8Ag2w/YW+IAk8SN8F11CTXHOoG5j8Za9tuvOPmeYoW+C4bduwABz0oA/EHUfhZ/wAFFNM/4J1p+1FJ+0h8Vf8AhVklgmpLIPi1q39oeU90LUfuPN+95pHG7pzX6v8A/Bvh+0ve/Ef/AIIYeNPiF8dfEfib4m6bpGoeIZvEE3iW6l8Q3F5pcFtE0tuy3TOZo/K8wCEnadxGPmNeQ6b+yt+0RrH/AAUdb9ky/wDh74xf/gnPHqD6ZFop0lU00aclobyIf2wFGolf7QCtv+1bicISUJWvD/8Agoz8fJv+CSv/AAUk8Mfsj/DLXrX4a/skeMF0mXxr4auUjv4ZrLVJjBqzvqF4s19CslspBaK4QxgFk2NzQB+pn/BHL9rr9ln9rnRfH1x+y98P9H8B2ug3FgniFdP8GWvhoXskqzm23C3UedtCTctnYH/2jnj/APglf+3R+xj+1F+1N4w8L/s7/DXQ/BPxC0vRbm81rUrL4f2WgTXFml5bxSxtcwqHkBneFijcMVDdVr4P/aU1HVv2Ur7S7f8A4JDGXVNB1iOaX4nf8IXCvjRY7mIqNN89tTF01uSjXu0RFBJhyQxUEdh/wWL+CGh/8ECP2S/Bnxw/ZZ0mT4R/GD4ga7beGPFOsSTya419Z3FlcX1xAbbUmubeIm6tYX3RRowMe0EKSpAPmPwn/wAFj/Fn7G3/AAcTfEy8+LPxe+MWpfBPwj4+8X2MnhlNfv8AUtNijJv4LSFLBpvJMcUjxbE27Y9ilQNox6t/wUU139qr/gotY+PP2uf2XfjN8RPB/wCzbo/h6a++wR+PNQ8PXEX9lWrf2g8enwyeWGLQuRgguSD1Y19S/Dj/AIJR/sQ/Fn9gTwL+1F+0x4Q0lfE3xK8N6T4u8ceLtT8WavpVtfavqkUMs9w0VtdR28PnXU5IjhjSNS4CqqgAW/jn+2L+wr+zZ/wSF+OHwX+BXxX+G2nafqfgLxNb6J4ftfEs+pT3V9eWM4Ecb3EkkrPLKwAUsRlgBgUAfjf+yj/wTU/a6/4Lj+E774k6Z42u/iIfBd//AMI7/aPjfxrcz39k6olz5cLTmR1jHnBhggb2Y4yM1+l37F/xw+N3/Bv54i1rxV+3n8UPH/jTwz8Q7WPSPCcEHiq98X/ZryBjLOxink2w5jZBuHJwRX43/sMf8Fdf2kP+Cfng/UPBvwT+IL+E9J8RamNRurRdA0zUmurto0hDBrq3lZSVRF2qQOM4zk1+qn7OGp+LP2qNa1Sx/wCCui3Gl+BdJhS4+Hh8Y26eDIZNSdit35MumLatOwhEeUkZwoIIAzmgD9AP+Cxf7PviT/gtD/wSC0Oz+CcNncT+PrjRvFOljW5/7NzZEecC+4Ntfa6/L65r5l/Yb/4LE/Br/ghP+zH4Z/ZZ+PNx4mtfit8LluI9dj0LSzqWno15cSX0IiuNy+Z+4uYicKMMWXnGa2P+CSHxW/aym/4KMTeDp7bxKf2I9JsdTg+HN1/wj1mNHk0eIBdGaHUvJ+0zxm38so8sztIMFixJNd9/wX5/4JEfs8+MP2Q/j9+0RqXw9+0fGGHw02px6+dd1KPZcQRRQxP9mW4Ft8saKuPLwcZIJ5oA8r+PP/Bf/wD4J0/te6t5vjD4dRePPFVxZnSdL1HxJ8MbLU7izDl/LRZpw7pGskhbAOAWJAyTX4lf8FJv+CPvxi/4JTQeDX+LEPhmH/hO2vk0saTqf20k2gtzN5nyLt/4+o8dc/N0xz+jf/BtT/wSi/Z//bf/AGCPiV8Rvif4B/4Sbxl4Q8VXVvpGof23qNn9kjh0+2uI18q3njifbKzN86NnODkcVkf8E0f23vhH/wAFeW8Zr/wUq+InhPxUvw/Fg3w6/tq9Xwn9lN99o/tTyzpf2Tz932XT93nFxHtXbt3vkA9L/wCDgj9kP4SfBr/ggx8DfGng/wCFfw38JeLtZ1Lwwt/reieGbHT9RvVm0S6llWS4hiWRg8iq7AsdzKCckVy3/BGn/gsF+wn+w3+x38LYPH3gCyj+O3hSK/8A7Q8VWPw8s7nVEklvLoxldRwJmP2WWOPIbhDtzgVw/wCxv/wUS8Eft8ftc+L/AIE/tg/Ezwxrf7JPgaC/ufAmnalLFodnBcWN1HaaUY9Qslgu5ithLcACWZhIpLMGcAjzL4P/ALHX7Mn7RH/By5pPwh8B6Zpfir9mzXL14rCy03Xb6a1uo4/DbXMgS8877Sdt6khJEv3lK528UAfYX7aHhT9pr/gvr4yvPit+x38TvGmi/Ae70pfCGp6HqXjO88Nw3d/EJDeB7COQxSRyQ3EKlmzvG5SMCvXv+CA//Bu7efsl6d8UYf2ovhV8GfHj65Lpj+HX1GwsvEjWYiFyLgKZ4CYQ2+HhcbtoyPlFcv8AtL+Af2iv+CS/7b/grwH+yn4Z8UeA/wBji0m0vxH42kh0iLW9Lsy90RrFzNqN+lxcxItnChfbMqxqm5QpJJ53/g4P/wCDiXXPhNqnwrP7IP7QHha6g1CLVB4oXRbLTda2srWv2UyfaoJTHw0+Nm3PzZzgYAPYP+CZf/BIf9oLSv2pvG837XU2i/GL4Nyafcp4S8N+LNePjDTdGuvtkZgkgsLwSQ27JarJGHRVKoxQcMRX6fa5+y38OfEnwXj+HOoeA/BOofD23hit4fC9zoNrNosccTB4kFkyGAKjqrKAgCsoI5FfkX/wWg/4OCl+G/7Dnwz1T9mf9oDwdcfFK51Szj8Sx6VFp2q3AtmsJWmLw3EMkca/aAmWVVIJAyASK+oP+Ce3/BeL4E+Iv2IvhjqHxe/aG+HMfxP1Dw7bTeJkvL23srhL5lJlDwxKqRsCcFVVQMdBQB5j+3l+1L/wTZ/4Jw/Htvhv8TP2cvhhb+JV0231XGm/CLSby3MM2/Zh/LHzfIcgjjjrX0t/wRz/AGsv2Yf2tPh54y1L9mLwJo/gTQ9H1SG21qDT/CFr4cS8uWhLRuyQACUhMjc3I6dK+Of+Cptj/wAE9f8Ago94V8eeJtL8VeAfiV+0jqng+60PwKuneML8X2oastvKul2tvZwzrBLK11IiqjRnezKG3Zrc/wCDR/8AY8+Kf7HP7PHxd0v4peAfE3gPUNY8SWdzZQazZtbPdxLalWdAfvANgE9MmgD8yP8Ag1V/5Oc+LP8A2JUf/pytK/bhPuD6V+I//Bqr/wAnOfFn/sSo/wD05Wlftwn3B9K/gH6RH/JY1P8ABT/9JP1bhP8A5FsfV/oLRRRX4afRBRRRQB1fwI/5LP4c/wCvs/8Aotq+w9P/AOPRfxr48+BH/JZ/Dn/X2f8A0W1fYen/APHov41/bn0Yf+SfxX/X9/8Apumfm/GX+9Q/wr85E1eA/wDBLn/lGd+zx/2TTw5/6a7avfq8B/4Jc/8AKM79nj/smnhz/wBNdtX9KHx5L+x7/wAl5/aj/wCyo2v/AKh3hmvea8G/Y9/5Lz+1H/2VG1/9Q7wzXvNABRRRQAUUUUAFFFFABX84H/B1T/ynv/Z4/wCxT8N/+pFqdf0f1/OB/wAHVP8Aynv/AGeP+xT8N/8AqRanQB+rv/BZD/glZ8B/+CmP/Cvf+F3fEjXvAK+ChqZ0cabrmnaZ9tFz9l88v9sgl37PIhxs27d5znK4o/8ABZ79tT4lf8Eu/wBhLwX4k+CPhfS/iHrS6zYeHFt9V0271RHsfsU7faCtlLC2/MEY352fOfl5Fc//AMF4P+CIOof8FmX+GC2PxEs/h/8A8K3GrFjPob6n9vN6bPAG2aPZs+yc5znePQ13f/BUL/gpJa/8EVP2IfBni6+8IzfEJY9RsPCH2S31IaWdws5m8/cY5eP9GPyYz83Xg0AcL46/4Kn/ABV+Hn/Bv0P2pL7wr4U0/wCKkejQ39xol7p17FpUMr6otoVMDTi4VfLO4AzZ3YOccV/Ot8cP2zdc/wCC1v8AwU0+HOvfGC38O+EF8XajovhDVZfDHmWMFtYm6EbTq13LOEkVJnO5iUG0ErgHP7zf8FTv2u4/29P+DXzxt8YIdBk8LxeONEsr0aXJeC8ayC61BDtMoRN2dmc7R97GK/J3/gkh/wAG0Opf8FWf2Ro/ipZ/GPT/AASkmtXej/2ZN4be/YGARnzPMFzH97zPu7eMdTngA/d7/gj9/wAEt/gf/wAE1NE8fWfwX+IfiDx5a+MLixk1f+1Na07UzZPbrOsQU2kEWzcsr5D7s7BjGDn8D/8Agrf/AMFSv2pf+Covw9h+Gfjj4K6fpfh7wn4pfWLC88PeEtYgu5nijubZQ7TTzIUKTsThAdyqcgZB+yfC/i5f+DNaKbQdbtf+GgJPj8RqEVxYt/wjf9ijS8xlGDi587zPtwIIKbfLPB3ZH2b/AMEb/wDg4s0//gr3+0N4k+H1j8KL/wAAyeHfDUniI38/iFdSE4S6trfyvLFvGQT9o3bsn7mMc5oA7L4f/sb+B/2yf+De74N/Cj4va9q/gXwnqnw88Jrq19Bd2+m3dlLbRWcqRmS6jeOMmaJEIZMnJAwTXyPpn/BqB+wx4g1a3srP9oD4jXt9fTLBBbweNfD8ktxK5wqKosCWZiQABySad+2n/wAFLLf/AILZ/tH/ABK/4J0Wfg25+HepX3ibUNHXx5PqI1SGM6FcveGQ2KxxNicWBQAT5TzQfmwQfIrD/g1f1T/gl5qMP7S118atN8aWv7PUi/EqXw/H4Xexk1xdHP8AaBtFnNzIIWl+z+WJDG4QuG2tjFAH0rp//Bl/+y/ol9BfR/ET48xvaSLOrNrOkbQVO4E/8S3pxX1R/wAFFv8Agmx8C/8Agtp4S8L+GvEnxG1iSHwHdy6lCPBOuae0xadFiJm8yG4wmE+XAXnPJ4A/Omb/AIPYND8dRNoa/s66rbnVwbESt4zjdYvN/d7iPsYzjdnGecY96+vv+CF//BA2+/4I8fE/x94iu/ibY/EBfG2mWunpDb6C2nGz8qZpNxZp5NwYMBgAdKAPzR+LP/Bzp8eP+CaXxP8AEH7PHgXwf8I9Y8GfA2/m8C6Hf69puozare2WnMbSGW6eG9iiad0iDOY4o0LE7UUYA6v4C/8ABcn9pP8A4LLeMPDv7P8A8SPhb4R0b4Q/HG6Xwxr3iPwr4c1WC8tLOViskttdT3M9skisuN0kUijBytfKR/4Jw3P/AAVN/wCDgL4+fCW38WR+CJrrxd4o1T+0pdNOoKn2e8kbYYhJGfmzjO7j0PSv6VP+CWn7E15/wTv/AGGvA/wbvPEi+K5vBqXanVYrJrNLoT3k9wMRM7ldolCkbjyCeM0Ac/8A8E4v+CR/w9/4Jifs9eKvhr4D1/xrrGh+MNSn1W7n1+5tZ7uGWW2jtmEbQ28KBdkYIDI3zEnJHFfA/jP/AIM/v2Nfho1mPEnxl+Lugfb9wthqPinQ7T7Tt279nmaeN2Ny5xnG4eor3X/gsv8A8HFen/8ABID9ojw34AvfhLfeOj4h8Opr63sPiFdO8gNczweV5Zt5N3+oLbtw+9jHGa/Dz/gu9/wXE07/AILL2nwrWz+G918P2+G7asW8/XF1L7cL4WWMbYY9mz7JznOd46YoA+Jf2h/BGmfDL49+NvDOi3Ul/ovhzX7/AEywuZJkme5ghuZIo5GdAEYsiqSyAKc5AANfWX/Btz4j03wh/wAFrfgfqOrahYaTp9tc6qZrq8uEt4Ys6NfqNzuQoyxAGTySB1Irif8Agjr/AMEurr/grd+1Lqnwxs/Glv4Em03w1c+Iv7Qm0ttQWUQz20PleWJIyM/aM7t3GzGDmu6k/wCCKN5H/wAFsf8AhjU/ES1N59qFt/wlY0ZjF/yBf7Uz9k83d0PlY8zr82ccUAf1Mfty+OtD+In/AATl+O194f1nStcsV8A+IYTc6fdx3UQcabPldyEjcMjIzkZFfzj/APBub/wRK+Ff/BX7SPitcfEnxB8QNDfwHLpcdgPDV7Z24nFytyZPN+0W0+ceQu3btxk5zxj9lP2bP+CZ1z/wSe/4IgftAfCy68YW/jiWbw/4q13+0odMOnLifSDGIzGZJDlfJzndzuHpX4b/APBCf/gunp3/AARq0j4lW978Nb34gN8QJdOkRoNbXTRY/ZVuAQcwy793nj+7jaeueADqP+CNH/BD7Qv2+f23fiV8Ovipb/Fjwf4Q8J6XeXelalp0CafNeyRX0UCLJJc2skTbo3ZiFVSSMjjIr6o/4K7f8Gs3wa/YV/YC8afEz4Z698bPFnjPQZrBbDS726sb2C5868hgk3RW9hHK22OR2yrjBXJ4Br7q/wCCNf8AwcQ6f/wWA/aC8SeBLH4T6h4D/wCEb8Ptrr3s3iAakJgLiGDyxGtvHt/127cSfu4x3r9KJU3HcG2lRzjrQB/MR/wS/wD+CZ3wv8B/8E/tc/as8YeK/E/hP4//AAPvdR8YeGvBuq6lZ2Om6nc6PEl9p6T2U0AvJIZ5ogjiKZGdchGRsEfrH/wbr/8ABXL4kf8ABXP4NfEbxJ8R9D8EaHe+EdbttNs4/DVpdW0UsckBkYyC4uJyW3dNpUY7HrXzf/wcaf8ABBrUP2wPFPxH/afX4nWegWfw9+HU14fDz6E91Lff2Zb3NyVFx5yBPM+6D5Z25zg1k/8ABkT/AMmsfG//ALGux/8ASM0AfCH/AAaq/wDJznxZ/wCxKj/9OVpX7cJ9wfSvxH/4NVf+TnPiz/2JUf8A6crSv24T7g+lfwD9Ij/ksan+Cn/6Sfq3Cf8AyLY+r/QWiiivw0+iCiiigDq/gR/yWfw5/wBfZ/8ARbV9h6f/AMei/jXx58CP+Sz+HP8Ar7P/AKLavsPT/wDj0X8a/tz6MP8AyT+K/wCv7/8ATdM/N+Mv96h/hX5yJq8B/wCCXP8AyjO/Z4/7Jp4c/wDTXbV79XgP/BLn/lGd+zx/2TTw5/6a7av6UPjyX9j3/kvP7Uf/AGVG1/8AUO8M17zXg37Hv/Jef2o/+yo2v/qHeGa95oAKKKKACiiigAooooAK/nA/4Oqf+U9/7PH/AGKfhv8A9SLU6/o/r+cD/g6p/wCU9/7PH/Yp+G//AFItToA9t/4PRfjl43+CcP7OLeDPGXizwidUPiZL3+xdXuNP+1hP7K2eZ5Trv273xuzjccdTX6/eF/hT4X+OH7OXgqz8baDofjCzbR7C7+z67YQ6jH5/2ZR5u2ZXG/DN82M/MfWvxZ/4Pk/+PT9mL/f8Vf8AuIr6g/4OEv2vviZ+xL/wSG+Efi74U+MNS8F+I77WdE0ye9sljaSS2fS7l2jIkRhgtHGeBn5R70AfEfhHXL27/wCDsS5+C8t5dSfByLxJcWaeA2mY+GVgXRGmWIadn7NsEoEgXy8Bxuxnmv0M/wCCh/8AwUn+CP7IfifxB+x74P0DWPBHxQ+KGgtpvhd/DeiW+naLa6nrEclpZzPNDIjQkT7C8ixllADDcVxXhH/BDz9oP9jf9pLxJ8HPGHjDVvD/AIj/AG4fEaXNzqmqT21+uqXWoBLhWZmVVtAws1xwAu0etey/8FddU/ZBj/aF1i216Pw7/wANlyeH4R8OZJIr7+0l1YrINFMLgfZQ4vNhQyHAbG7igD8yPif/AMGr37dvxvuLE+NPiD4K8XtpoaO0bWvHWoag1qGxvEZmgYoG2qSFxnaPQV4Z/wAG9/8AwUV+Hv8AwSK/bc8f+KPipH4huNPvfC114XhXQbNL2U3Y1C0lJKu8eI9tu/Oc9OOeP3O/4N/tL/bI0zw38Tv+GvpPEz6g15pv/CMHV5rCTEWy4+07DasR97yM7/bHev5QviyzL8XPFDqM/wDE3u8HGRzM9AHqP7YH7WM3jz/gof8AFr4vfDXXPEvhmPxd4y1nW9Hvre4k03UoLW8uZnUM0T7kZopNrKGI5I5Ff0Yf8EE/2h4oP+De3UPiP8XL7WvHmjeHIPFGp+IRqjnV7nUdOtnmeaErcMRMDCjKI3YKQdpwDWp/wTS/4IV/sk/Gz/gnd8C/GHij4I+F9Y8SeKPAWiapqt/Lc3YkvbqaxhkllbbMBud2ZjgAZPAFeJ/tC/sCftO/CP8A4KMeHfhB8DvBut6R+wjrGqaPY+KPD1heWY0m40u8eNddR/OkN3skje4D7TuwxCY4wAflf/wXE/br+An7bH7Vnw78WfAbwk/g3wt4b0SOz1Sz/wCEetdFaW6W+lmZxFAxRv3boNxOeMdq/TL9sX9rvXv+DkzQND8H/sWeLPGHgXxH8Lbh9Y8S3GvajN4ZS8tLhBDCqPaSStKQ6MSrBQoOQSSa9g/bd/ZA/wCCXH7BPiCPwx8UPAvw/wDBfijWNHfVNLtrmPV5jPFukiRwYmdRmSNhhiDxmvw6/wCCRVl+1/qfjfxwP2QZNfXXFsrdvEP9ky2ET/ZvMfyQ32o4xv34Cc888UAeGfFeX4mfsgftYeOdLuPGOt2PxI8M6xf6NrOt6PrVytxc3KStHcMLpSksiu6klm+91Ir0H9lf4zftJ/tgftE+Efhl4V+N3xIh8R+NtRTTNPfUPGupQ2qzPnHmOrsyrx1Cmv1k/wCC5P8AwTQ8B/A3/giXofxg8RfDjT9H/aQ1y50Gbxrr8kzvf3Wq3Q3ag0gWQw75Ji5bYu3JOOK/JD/gkf8AGfwz+z5/wUy+C/jrxpq0Og+FfDPie31DVL+SN5EtIVzucqisxAyOFBPtQB+vnwF+Ovw//wCCFnhq8+Gv7f2j/wDC5vil4quj4k0HV49Oi8aCz0ZkS2S3+1agUlixcW9w3lKNo3bs5Y19y/8ABMH9p/8AYx/4K03HjZfhX8D/AAvb/wDCvxYNqZ1z4f6VZ7vtn2nyvL2eZu/49Zd2duPl65ON+b4Y/sS/8FwNOu/i1Nofhf4xW/gtG8Pz61Ol/bf2ekSm7a3CkxE7VnL52nO/r2HjP7IH/BTr/gl3+wX/AG9cfCDxr4P8Ct4rjthqwsdM1lvtot/NMO5ZImwU8+XGMH5znOBgA+D/APg2a0y20X/g4i+P1nZW9vZ2dppHiuGCCCMRxQRrrtmqoirgKoAAAAAArqbpgn/B8eCxA/4mS8n/ALEoV+wv7J//AAT5/Z1+EnxGl+NXwq8B6LoniLx7p0l2/iCzmufM1S1v2ju3JSVyoEjCOTG0EcAbeRX8+3/BWGD4zXn/AAdF/ESP9n2TUo/i9Je2A8PNYPAs+/8A4Ri28/aZz5Q/0bz87+2cc4oA/ZH/AIKw/wDBXn4W/CPxZ4g/ZR1i28VN8UPjD4VbQ9Blt7CNtJW41hJ7G08+cyh41EzDeRE21eQG6V+Nif8ABnF+1wzhf7Q+D/XBJ8RXHH/krX6h/wDBOz/gn9ceNP2bZ/jn+354DGqfHH4e6vc6lH4l16cPe6Xo2nxxXVtIBZSeUyROtxIBtLE5yDkA+ef8FNf+Cg3x0/4KJ6h4LuP+Cb/xA1rxnaeE47tfHp0GKCzW1knMJsPNGoxxltwhuseXkDa2cZFAH4z/APBLz/gn78fv2sf2nPGngL4GeMIfB3jTwrps8ur3S+I7rR0nt4rqOB41mt1LSAysh2sACAD1Ff0Ef8Et/wDgrZ4J8HfETwD+xT4uuvG2t/tBeCrCXw54g1OWD7Zpd3qFhbyTXMgvZJfOkUrG2HaMEnHAr5W/4Ni/+CYH7R/7Fv7dnxG8b/Gj4d6p4VsPEvhKe1TUbm8tJxd3kl/bTMMQyuQxCyNnAHFfYn/BUz/gl1aeDfhT4++NH7Lvw5isf2tNQv4b/S/EumXIXUnluLmOO+dftMn2cb7V7hWyoG1mwM4oA+jv+Ctrr/w6x/aSGf8Aml3iXj/uF3FfmN/wZFnH7LHxu9/FliP/ACTNfnT+1J+2V/wUY0T4ur+zb8UvHXjZfFfxRs4tCHhW4k0tzrEGp7rWOAyRrsAm3tH99cZ5I61+u/8AwaofsBfGD9gL4A/FbRfi94JvvBeo694jtLzT4bi5t5zdRJalGYGGRwAGwOSKAPyx/wCDVZf+MnPixjv4Kj/9OVpX7bDIHevyI/4MyPCGm+Nv21vi1Z6pZx3lv/wgQbYxI5GpWpHQj0r+jNP2bvBRH/IBtx/20k/+Kr+Z/FLwTzbibPp5rg61OMJRirScr3irdIta+p9lkvElDB4VYepBtpt6W6nyH83vR83vX17/AMM2+Cv+gHB/39k/+Ko/4Zt8Ff8AQDg/7+yf/FV+c/8AEsfEH/QTR++f/wAgep/rphv+fcvvR8g/N70uW96+vf8Ahm3wV/0A4P8Av7J/8VR/wzb4K/6AcH/f2T/4qj/iWPiD/oJo/fP/AOQD/XTDf8+5fej5s+BTFfjJ4dPf7V3/ANxq+xrHi3HXgnrXJ6R8AvCmgavb39jpMVteWrb4pVd2KHBGeSR0NdhFGIk2iv6E8IeAcdwnltbA42cZudRzvFu1uWMesV/KfK59mlPHV41aaaSVtfV/5jq8B/4Jc/8AKM79nj/smnhz/wBNdtXv1eA/8Euf+UZ37PH/AGTTw5/6a7av1o8Ml/Y9/wCS8/tR/wDZUbX/ANQ7wzXvNeDfse/8l5/aj/7Kja/+od4Zr3mgAooooAKKKKACiiigAr+cD/g6p/5T3/s8/wDYp+G//Ui1Ov6P6/nA/wCDqn/lPf8As8f9in4b/wDUi1OgD2b/AIPVPhD4s+LFv+zcvhXwt4k8TNp58TtdjSdMmvfsof8AskIZPLVtu7a2M4ztOOhr1H/g6I+GfiX4j/8ABF34Q6T4d8O69r2q2/iTQ5ZbLTtPmuriJV0q7VmaONSygMQCSBgkDrXvX/Bdv/gt3qH/AARol+F8ln8N7X4hL8SDqoYTa6+lmwNl9jxjbBL5m/7Wc5242Drnj89m/wCD4LWgf+TbtJz6jx1J/wDIVAEv7K3/AASj0n9gj/gk74P/AG1/APh7x/P+094U0sajaaBqUMlzYG5mvH0+RX09YlnIFtK7BRIMEBugxX5+ftO/tL/tZftaftyeFf2hPFXwd16Px54Pm0yaxjsfBGoxaezafMZoPMibczZc/NhxkdMV+gCf8HxWuIOP2b9K/HxzIf8A2ypw/wCD4zXSf+Tb9I/8Ll//AJCoA8+T/g5P/wCCjAlB/wCFK6Uec7f+Fbatz3/57Zr5V/4IX/sWfB7/AIKJ/tl+PtB/aE8QXHg3QbTw7da5FcQ61DouNR/tC2j8rfcKyn5Jpvkxu+X2r9/f+CF//Ba/Uv8Agsl4b+JWoXnw6s/h+vw/utOgWO31ttTN99pW4YkkwRbNvkAcbs7z0xz8TeKv+DJzSPFHiLUtUk/aK1eN9Qu5bsxf8IPE3lmRy5Uf6dg9f89KAP2H+BWkfD39kb9kPwLoum+LNNh+HPgvw/p2j6Truqarb+RcWkcUcFtI9yNkTmQeXhlwGLDA5Aru/BHxC0D4maFHqnhvXNH8QaZI7RpeabeR3du7KcMoeMlSQeCM8V8l/tH/APBJGH9oX/gjvoP7J03jubS7fRdB0HQj4nTRBNJMulyWziX7KZ1CmX7NjHmnbv6tjn8w9Z/4K33X/Br9qsn7IuleBbP40QeD8a0PFF1rDaBLdHUgLoxG0WG4C+XuC7vNO7AOFzgAHJf8Hk/wM8b/ABU/bt+GV94X8G+K/EllZ+ARHPcaXpFxeQwuNQvGKs8aEAhSCQTkAg96d/wZCfJ+0b8ed3y7fDemg57f6VLX6g/8Edv+Cs2of8Fff2TPiP48uvAcPw/PhnVLjQ0tLbV31Jbk/YY5zJvMMWCPOA2gHoDnmvy9/wCDJCYD9pP4+YYbm8O6awGfvD7XL/iPzoA+zv8Ag7P+OXgnxX/wSi8ReG9L8YeFdS8RWfi3S0n0u11aCa9gZJnDhoVcupU8EEcd6/nX/wCCcvwY8HftE/tz/C/wL8QtRk0fwX4o12Gw1m9S9jsWtbds7mE0gKRkYHzMMV+oX/BxD/wQG039knwb8TP2oo/ijfa1deMPG5u28Ov4fW2jtDqN1JIw+0faGLeXk8+WN2O2a/LT9gb9lyP9tv8AbP8Ah38KZtZk8Ow+P9aj0p9TitBdNZh8nzBEXQNjb03CgD9i/wBoT4reLv8AgiF8QNJ+Cf7Eum/8LS+D/wARYE1zxNq1xZP4sls9RuJGspoVurPZFFi2ggYRupYFtxyGArwb/g4Z/wCCCXhD/gnlYfCNfgD4d+KnjBvFj6z/AG806trP2QWwsfs//HvAoi3efN97723j7pr6A8S/tgT/APBoJep8AtJ0GP48W/xEQfEBtZvL4+GpLB5SbE2ogRLkOoFir+YXGTIV2/Lk/en/AAQb/wCC4N5/wWRu/ilHdfDaz+Hq/DpNJZTBrr6p9v8Atpvc53QRbNn2Uf3s7+2OQDjP+CpX/BQn4k/8Eq/+CKPwN8dfD+z0WLxVKPDXh27t9f06SeOGKTRpZJFMW9GWQPboOTx8wIrlf+CTf7JXw1/bA0r4cf8ABSL4sa/eeHfjN4ge9vtWli1OHTvC8LQtc6DEPJlUsim2iiHM2TK2c4O2vrj/AILH/wDBLm1/4K0fsraZ8MrrxrdeBIdP8SW3iH+0YtLGotIYYLmHyvLaWIDd9pLbt3GwDBzx+Hn/AAU8/b9b/gnV+xv4+/4JnxeFI/F+l+CorSyX4hS6ibGe5NzeW/iDedOEUiqFafyAPtBJCb8jOwAH0T/wcKf8F5Pil8F/2l9W+Bfwbuvh1408A+PfBEdlczWtodXvJJ7/AO1Ws0UU0E23zNmzau0kFhwc4P55/wDBMr9s/wDbA/4JN2HjK2+Fvwf1qdPHElpJqJ1zwNqN4ym2Ewj8vYY9v+ufOc5wOmK+Z/8AgnjKT/wUA+BY2oB/wsPQOQPTUoP8a/p+/wCC7H/BdnUP+CNes/DW1svhvY/ED/hYEOoysZ9dbTGsfsjW6jAEEu8N555+XG3vngA/KPx7/wAHTn7enwq0qK+8UfDnwf4bsZ5RBHcar4E1CzikkIJCBpJ1BbAJwDnANfU//BGT/gul+2B+3b+3R8PPCPxK8A6Lp3ww8V299cT63YeDr6zjKR2U80LR3TyNEFaWNBnkNnA5Nbf/AAeFeM5fH/8AwSw+C+tvH9l/trxjZXxhR9yx+bpN1Jtzxu27sZwM9cCuR/4N3f8Ag4I1D4t+M/gT+yK3wtsrGz07QpdH/wCEn/4SJ5JpBY2M84f7L9nABfyQu3zflBzk4AIB5n/wWeOf+Ds39m//ALDXgT/07V/RVX8yf/Byj8dl/Zk/4OHvh/8AEyPT49ak+Hen+F/Eqae1x9nW/NpdyXAhMgVim/YF3bWwGzg1+wH/AAQy/wCCyd7/AMFi/hf478RXngGz8AN4N1a30xbeDWTqX2oSwmTeWMMW3GMYwc/hQB+SP/Bk1/yfX8Wf+xDH/pxta/par+aX/gya/wCT6/iz/wBiGP8A042tf0tUAFFFFABRRRQAUUUUAFeA/wDBLn/lGd+zx/2TTw5/6a7avfq8B/4Jc/8AKM79nj/smnhz/wBNdtQBL+x7/wAl5/aj/wCyo2v/AKh3hmvea8G/Y9/5Lz+1H/2VG1/9Q7wzXvNABRRRQAUUUUAFFFFABX84H/B1T/ynv/Z4/wCxT8N/+pFqdf0f1/OB/wAHVP8Aynv/AGeP+xT8N/8AqRanQB6L/wAHyX/Hp+zH/v8Air+WkV+pXxJ+Mfw//Y8/ZN+H/irxF4Gs9ZtL+y03T/LsNLtWuPMez37iZCox+7OeSea/LX/g+TOLT9mL/f8AFX/uIr7u/wCCrP8AyjX+FZ9brSP/AE2y19BwnllHMc4w2CxN+SpNJ2dnZ+Z8xxpmlfLcjxOPwrSqU4tq6ur+hC3/AAWM+BUo2/8ACo9c5/vaRpmP/RtdJ8cfir4D/aq/4JSfHnxl4b8C6botvb+CvElki3mmWqXSSxabKS4Me4AfOuCDn6V+VueV9yBX6Cfs5L5n/BBX9oRj95fD/i4f+Uyv1vxN8PMnyPKo43ARkpucY6ybVmpPZ9dD8Y8KfErPM/zl4LMJxcFCUtIpapq2qV+rPlj/AIMenZvhr+0YRjd/aWgAcf8ATK/Ffev/AATP/wCC/Pwy/wCCoP7Svir4YeD/AAh488O6x4P0m41e9utcis1tZI4buC1ZEMM8jbi86kZUDapyQcCvgn/gx3/5Jr+0X/2FNA/9FX9eK/8ABoWgl/4K+/HJW6f8IXqn/p80+vwQ/o4/eD/goX+3V4b/AOCc37JXiL4weKNK1rXtB8NzWcNxaaOsTXcv2m6itUKCV0Th5VJyw4Br8d/24/8Ag6w/Zv8A2pv2UPiz4KsfhJ8SrbxR488H6p4esNS1DS9JaO1uLmzlt4ZJJFuWkCI0gJKgsADgZxXhvjD/AIKmS3v/AAXC+K3wv/aq+J+sax+yfpfjrxPp2p+GNWtrjUNJWG2lu/7NhNvaxPMyxXUdqU2j5TGpJwCa+P8A/gp14c+Dn7WP/BT218M/sfaXpF/4N8ZHR9C8M6fptnNosF3qkypA0YW+WExl52ALybVJIO7GaAPln4YeOda8P+K9LttP1bUrG3m1CBnjtrqSFJDvUbiFYAnHGTziv6/P+CnH/BU/4V/8EX/BvhPxF4q8C69qUPji8m06EeFtPso5Y2gjWQ+b5kkWVIcYwT0PTv8Ayr/tR/8ABPb4uf8ABOn46eEfC/xi8It4O13XBBqljanVbHUfPtvtBi8zdaTSqvzxsMMQflzjGK/qo/4K9fEX9j74deBPA8v7X9roNxoN1eXC+HP7U0LUdURLkRJ52wWcMhQlCmd+AccZIOAD5J/4JW/8EpviT4h/4KHXP7YuseKfDWr/AAf+MlnqfinR/C13dXVxqmnwavi5tY54HiNsJIlkCvslZQQdpYYNfkP/AMHJq/8ACF/8FuPjANFQaV9jm0lrcWS/Z/IP9lWhymzG05JORX9YX7K+q+BNc/Zp8BXnwvjt4fhvdaBZy+GI4LWa1iTTTCptgsUyrIi+XtwrqGA6gGv5pf8AgrDrvwx8M/8AB0vr2ofGdLCT4V2mvaLJ4nS9s57yBrP+ybbfuigVpX7cIpOe2M0AXP8Aghv/AMF9PhD/AME4f2aPFHhD4weB/HXxB8Qaz4mfV7S9tLWy1BLa2NrBCIS93OrqQ8TttA2/PnOSa/az/gjn/wAFfPhL/wAFVb74iD4X+AfEnglvAsemnU21ewsrU3ouzd+SE+zSPuCfZpM78Y3jGcmviay/aO/4Ir6rfW9ra6V8OZLm5kWKOP8A4QDxIS7McAD/AET1Irtv+Cq3/BLz48/s1QeAx/wTl8B/8K4bWX1H/hYP/CK61p+jf2iIvsv9meeb6dPN2eZqG3y87fMfONy5APzI/YC/4Kw6H/wS9/4LJ/HDx58Rbfxx4s8N3Vz4l0C1sNJnjnlt7iXWI5VfZcSxoECwOCQc5ccHmvqzWfAQ8R/tYzf8Fdry1sLr9nmaRb+TwTcL5niySJbX/hGRmJlNkW+2Dztv2niLBzv+WvRtA/aB/wCCS/hnRbPTvjFY+BZPi3YwR2/jd7vwXr15cPriKF1AyTQ2zRSuboTZeNmRjkqSCDX09+1j8B/CP7eP/BvT4q8D/sZeHbHXvB3i+1hTwVpdhGdDgn8nxDHLebRqJgMeJobxyZSu8gld25cgH4a/8FIv+CrPwz/a+/4K2fC/4+eC/CPibw74N8DN4fkvNJubW0t72c2F+9zN5aQytESyMFXc4ORzgCv1L8Rf8Hkv7Lfip0OqfBv4tal5W7y/tek6RNsDYzjddnGcDOOuBX5n/CL/AINyv2qPgT8UvDfjb4u/BWGz+FPg/VrTXPGdxP4n0a9ig0S1mWe/Z4Le8eeZRbJKTHCjSOBtVWYgV7z/AMFHv+Cf/wAJv+CtV14Rm/4Jq/Drw74rtPAq3aeP20qJvDH2Z7oxHTw41drXz9wgu8eRv2bTv2703AHK/wDBfj/gv78Jf+CsX7KvhDwD4B8H/EDw3qHh3xOmtyy69BZx27QraTw7E8meRt26VcAqBgHnoK/Vz9kD9q7wH/wTg/4N8fgz8cPFPhO41mz8MeC9HFwujWVsdTka5ljtQyPIyDgzAsS4O0HqeK/mr/ZM/wCCbPxk/bl+MPiLwD8K/Bv/AAlXi7wnby3Wraf/AG1YWP2SOKZYHbzLmaON8SMq/IzdcgEc1+ov7LH7MX7WH7F1n4ZtP28LHVNP/Yb8G2n2DxLpOq65p2u6TbRiMx6ZGbLTpp7yQLftabfLjbawVmwiswAPsD4Gf8HU/wCzV+1v+0X4H8C2fwd+I0niDx9r+n+GbO+1XSdJeKCS6uEt42lf7S7iNGkBOATgHAJr9a/D/g7SvCiSLpenWOnJK2+RbW3SFXbGASFAyccc1+dv7LHwA/4J1+MfgTdftMfC34e+AW8F/Cy5n1yXxXb+G9TtZdHn0tUu5J0gmjW4ZoQquNkbZIwu4givrD9iH/gpD8Gv+CjnhvXNZ+DPjL/hM9L8N3UdlqU39j3+nfZppELouLuGItlRnKggdyKAPwZ/4Mmv+T6/iz/2IY/9ONrX9LVfzS/8GTX/ACfX8Wf+xDH/AKcbWv6WqACiiigAooooAKKKKACvAf8Aglz/AMozv2eP+yaeHP8A0121e/V4D/wS5/5Rnfs8f9k08Of+mu2oAl/Y9/5Lz+1H/wBlRtf/AFDvDNe814N+x7/yXn9qP/sqNr/6h3hmveaACiiigAooooAKKKKACv5wP+Dqn/lPf+zx/wBin4b/APUi1Ov6P6/nB/4Op1L/APBfH9ndVGWPhTw2APX/AIqLU6APRP8Ag+SG60/Zi/3/ABUf00iv0C8U/tf/ALF/7S/7MXgfwl48/aG+Dn2fSbGwumt4fiHYWk0NxHaCMhis2eA7Aqeh9xWr/wAFj/8AgiX4b/4LGS/DseJPG/iLwanw5OpG1/suyhuPtZvfsu8v5h42/ZVxt/vn0FfEZ/4Mjfhaf+a3fED/AME1n/jXRhcVWw1WNfDycZxd007NPun0OfGYOhiqMsPiYKcJKzTV015o9/8A+EJ/4Jvj/m4D4Xev/JV7T/49Wp8ev2tv2Pfgh/wTF+N3w9+G3x8+Ed9JrXg/xAbLTx4+sb+8vLu40+RBHGPOLMzsEVUUEknA5NfNf/EEZ8Lf+i3fED/wT2f+NOH/AAZHfC0H/kt3xA/8E1n/AI16eYcSZrj6XsMbiZ1I3vaUm1dXs7N76s8nLeF8oy+r7fA4aFOdrXjFJ2fS6Oa/4MeUZPht+0YCOf7T0A4/7ZX5r9Kf2Gf+CK/wJ/4JzfHTxB8R/hpo/iLT/E3ijTptKv5b/W5ryJ4JriK4cKjcBjJDHg9cZHc1h/8ABHP/AIIw+G/+CPGj+PrHw5408ReMo/H1xY3Fw+qWkNv9lNqs6qE8vru885z02DHWvtC9Qz25Vep9q8Q94/A3/guJ/wAEx/2SfiH4R+NWufA/WoviF+11rvilrw+DvD/i7+2takv5dUV9URdJiZ5v3MRu3dAn7lY2J2hDX5N/sSfDrXv2Of8Agq/8BLb4t6Nqfwvm8N/EPw3qmrJ4rt20c6ZaDULeU3E/2gJ5cQjUvvbC7QTnHNf0k/s/f8G9vhP4A/8ABVjV/wBq60+InijUPEWsa9ruuyaDNYW62cbapHdI8QlHz7Y/tJKnGTsGeprkP+Cl3/Bsh4K/4KZ/tb6x8Wte+J3i7wrf6tYWdidPsNNtpoIltoViBDsdxLBcnI4yR0oA9G/al/4J+fslf8FufEMPxVHiKx+KWqeA9POhWl74O8Xie0tnjL3aQyC2Zl83dNuwTuIZe2K+Mf2GP2f/AI5f8F3vE/iDwv8At/8Awx8faD4W+H1tFqfhB38NXPhBZbydzFOBJ5a+cfLRDtydvXvX6Hf8Eh/+CSnh7/gkf8F/FHgnw/4s1zxhZ+Jtd/t2S61G1it5IX+zxQeWojOCuIs5PrivrQ24i2ld7EEdSaAP5oPEn/Baf9tD4D/ta+Mv2ZP2ddPTxR4f+EOqX3hbwvodh4QXWtUi0nTZWt4fMZVaSVkijQNIRknk8mu8+PP7JHwe/bj/AGIPF3xN+NVz5f8AwUO8T6TOZfAC6x/ZniCfU4n8jT4U8PgibzHs47dxGI8yBt4B35r9Kf2W/wDggd4V/ZX/AOCmvjD9pvTviB4l1fXvGN1rF1NotzYQR2ludRkZ2VZFO4iPOBkc4Gar/EH/AIIAeFfiH/wVotf2tZviB4ntvEVnrVjrSeH1sLdrFmtbWO3WPzfv7WEQJOMgtx0GAD8q/wDgjl/wSd/Zn0v4P6lN+20958FfixD4mEnh3SPGPiR/B99f6YIYDFPFaXBjeWM3InTzVUgsjKDla++v+Dnv/grf8af+CWlv8D5PhHqmiab/AMJw+ujVl1DSo77zfsg07ydu/wC7j7TNnHXI9K9Z/wCCqX/Bv/4U/wCCqP7SXhH4la98QPFHhO+8I6TBpFvZafY29xDMsV1Lc+YxkOQxaUqRyMKPU103/BYz/giV4b/4LIL8Ol8UeNvEHgtfh2dTa2/su0huPthvfsm4P5mMbPsi4x13tnoKAPwD/wCCA/7HHgb/AIK//wDBTjx1o/xts77VrPV/Dmq+L510u7bTT/aDahaZcGPon+kzfIOOR6V7x+3n/wAFffjZ/wAEN/2tPGH7LP7P+raLo/wi+FcltF4fs9Y0uLVL2Bb20g1GffcSDfJm5vJ2G77qsFHCiv1F/wCCTn/BuP4N/wCCTH7Tl98TPDfxI8V+Lb7UPD9z4fey1HT7eGFY5preYyBkOdwNuBjp8x9OeJ/4KFf8Gr/gT/goj+2P41+Mmu/FTxl4c1TxpJayTadZabbSwW3kWcFqArsdzZEAbnHLY7UAfmjo/wDwWg/4KWft5fs/+JLPwz4B1z4geBfFFneeHNQvvDnwzkvYGWWExTwiaGNgsgSX1yNwNfOP7M/7Y/7X/wDwQNtNXtbDwVrnwtT4nPFK6+NPBskLakbIMP3BuUUkJ9p+bbn7657V/Tx/wSe/4JpaN/wSn/ZfuPhdoXibWfFmnza3c62L3UbeO3mV544UMYWMkbR5IOTzljXmH/BYn/ght4Z/4LFX3gG48SeOvEXgtvh/DfRW66bZQ3K3f2owEl/MII2+QMY67jQB/P8A/sK+H/8AgoB+wb8ZvEfxS+FnwF+K0evePLGSG9vJ/hreX9tcQTzJclo1MJUBnVSCvGOOlfuLJ+1l+z5+3f8A8E0vD3wt/bB+MHw38K+OvEGlWL+PfDV/4qtPDOr6XqcEyTtBNbNIstrIksabomUEYIIGa/Qr4e+Eh4F8E6ToqySTR6PYwWMcrja0qxRrGGbHGTtzjtmvym/bA/4NIvh5+2L+1F48+KWqfFvxvo2oePNZuNZuLG20q1khtWlbcURmOSB0yeTQBpfEr4o/sT/sT/8ABGv9oD4N/BL46fCu8tdc8FeJ5dO0o/EGy1S+vr+60ySMRRDzS7M7LGqooyWPAJNeTf8ABkT/AMmsfG//ALGux/8ASM0J/wAGSPwvT7vxw+IK5640ez/xr72/4I9f8Ee/Dv8AwR9+HnjDw34b8Za74ytvGWpw6nNLqdpFbtbNFCYwq+Wec5zk+lAH42/8GTX/ACfX8Wf+xDH/AKcbWv6Wq/mn/wCDJtSv7dXxY/2vAQI9/wDiZWtf0sUAFFFFABRRRQAUUUUAFeA/8Euf+UZ37PH/AGTTw5/6a7avfq8B/wCCXP8AyjO/Z4/7Jp4c/wDTXbUAS/se/wDJef2o/wDsqNr/AOod4Zr3mvBv2Pf+S8/tR/8AZUbX/wBQ7wzXvNABRRRQAUUUUAFFFFABX8z/APweDeDZviN/wWY+EHh62uI7W4174eaNp0U8gJSF5tc1aNXOOcAsDxzxX9MFfzgf8HVP/Ke/9nj/ALFPw3/6kWp0AXT/AMGWXxqZiR8fPBJ5P/Lnf/40n/EFj8av+i+eCP8AwEv/APGv6MY/u/if506gD+cz/iCx+NX/AEXzwR/4CX/+NH/EFj8av+i+eCP/AAEv/wDGv6M6KAP5zP8AiCx+NX/RfPBH/gJf/wCNH/EFj8av+i+eCP8AwEv/APGv6M6KAP5zP+ILH41f9F88Ef8AgJf/AONH/EFj8av+i+eCP/AS/wD8a/ozooA/nM/4gsfjV/0XzwR/4CX/APjR/wAQWPxq/wCi+eCP/AS//wAa/ozooA/nM/4gsfjV/wBF88Ef+Al//jR/xBY/Gr/ovngj/wABL/8Axr+jOigD+cz/AIgsfjV/0XzwR/4CX/8AjR/xBY/Gr/ovngj/AMBL/wDxr+jOigD+cz/iCx+NX/RfPBH/AICX/wDjR/xBY/Gr/ovngj/wEv8A/Gv6M6KAP5zP+ILH41f9F88Ef+Al/wD40f8AEFj8av8Aovngj/wEv/8AGv6M6KAP5zP+ILH41f8ARfPBH/gJf/40f8QWPxq/6L54I/8AAS//AMa/ozooA/nM/wCILH41f9F88Ef+Al//AI0q/wDBlj8agf8AkvngkfSzv/8AGv6MqKAP5qP+DKBt37d3xYwc/wDFBL+H/Exta/pXr+aX/gya/wCT6/iz/wBiGP8A042tf0tUAFFFFABRRRQAUUUUAFeA/wDBLn/lGd+zx/2TTw5/6a7avfq8B/4Jc/8AKM79nj/smnhz/wBNdtQBL+x7/wAl5/aj/wCyo2v/AKh3hmvea8G/Y9/5Lz+1H/2VG1/9Q7wzXvNABRRRQAUUUUAFFFFABX84H/B1T/ynv/Z5/wCxT8N/+pFqdf0f1/OB/wAHVP8Aynv/AGeP+xT8N/8AqRanQB/R7H938T/OnU2P7v4n+dOoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP5pf8Agya/5Pr+LP8A2IY/9ONrX9LVfzS/8GTX/J9fxZ/7EMf+nG1r+lqgAooooAKKKKACiiigArwH/glz/wAozv2eP+yaeHP/AE121e/V4D/wS5/5Rnfs8f8AZNPDn/prtqAJf2Pf+S8/tR/9lRtf/UO8M17zXg37Hv8AyXn9qP8A7Kja/wDqHeGa95oAKK+af+CmH/BVH4Z/8EqPh74b8TfE6LxTLpvinUn0qz/sOwS8kWZYmlJcPJGAu1SMgk57d6+N/wDiMZ/ZI/59fi7/AOE5b/8AyVQB+r1FflD/AMRjP7JP/Pr8Xf8AwnLf/wCSqP8AiMZ/ZJ/59fi7/wCE5b//ACVQB+r1FflD/wARjP7JP/Pr8Xf/AAnLf/5Ko/4jGf2Sf+fX4u/+E5b/APyVQB+r1fzgf8HVP/Ke/wDZ4/7FPw3/AOpFqdfcP/EYz+yT/wA+vxd/8Jy3/wDkqvyc/wCCw/8AwUo+HX/BUz/gr58DPiD8MY/EUeg6PYaB4euBrNktpcfaotau52wqu4KbLmLBz13DHHIB/V/H938T/OnU2P7v4n+dOoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP5pf+DJr/k+v4s/9iGP/AE42tf0tV/NL/wAGTX/J9fxZ/wCxDH/pxta/paoAKKKKACiiigAooooAK8B/4Jc/8ozv2eP+yaeHP/TXbV79XgP/AAS5/wCUZ37PH/ZNPDn/AKa7agCX9j3/AJLz+1H/ANlRtf8A1DvDNe8N90/SvB/2Pf8AkvP7Uf8A2VG1/wDUO8M17vJ/q2+lAH5P/wDB1n4M0vxx+zH8K7fWbOG/hh8Vzuiy5IDfYnHYj1r8M/8Ahn/wR/0Len/99S//ABdfu/8A8HRpx+zN8Lz/ANTNOf8AyUevxK3V+U8VZjiqOPcKdRpWWiduiP8AQD6PfCOR5hwZRxOOwdKrNzqLmnTjJ2UtNWjlf+Gf/BP/AELen/8AfUv/AMXR/wAM/wDgn/oW9P8A++pf/i66rdRur5z+2Mb/AM/Zfez9w/4h7wv/ANC6h/4Kh/kcr/wz/wCCf+hb0/8A76l/+Lo/4Z/8Ef8AQt6f/wB9S/8AxddVuo3Uf2xjf+fsvvYv+Ie8L/8AQuof+CYf5HLJ+z74IdlX/hGrFsnGFaTJ+nz1ws3gvSfA37a/wntdH0+HT7eXWtJlZEzy329Rk5J7Y/KvY91eW+J+f24vhL/2FdI/9OIr6nhHMMTWx/JVm5LlejfofhX0ieEcky7hCWJwGDpUp+0prmhCMXZt6XSv+J/apH938T/OnU2P7v4n+dOr9QP4FCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD+aX/gya/5Pr+LP/Yhj/042tf0tV/NL/wZNf8AJ9fxZ/7EMf8Apxta/paoAKKKKACiiigAooooAK8B/wCCXP8AyjO/Z4/7Jp4c/wDTXbV79XgP/BLn/lGd+zx/2TTw5/6a7agCX9j3/kvP7Uf/AGVG1/8AUO8M17w/3G+leD/se/8AJef2o/8AsqNr/wCod4Zr3mgD5H/4Kh/8E5P+Hinw28LeHJfGg8Hx+HdVk1M3J0s6l9o3xGLy9vmxbcbs5yfTHevjP/iFVjH/ADXRf/CP/wDu2v2CMCNjKKcdOOlHlr/dFeVjsjwOLq+2rQvLvdr8mj9D4b8WOLcgwKy3KcX7OjFtqPJTlrJ3esoN6vzPx9/4hVY/+i6L/wCEf/8AdtH/ABCqx/8ARdF/8I//AO7a/YLyl/uijyl/uiuP/VbLf+ff4y/+SPf/AOI/cf8A/Qw/8pUf/lZ+Pv8AxCqx/wDRdF/8I/8A+7aP+IVWP/oui/8AhH//AHbX7BeWv90UCNR/CKP9Vst/59/jL/5IP+I/cf8A/Qw/8pUf/lZ+Pjf8Gq8arn/hemcdh4P5P/k7XKar/wAGhI1f44eE/GH/AA0HsPhm9tLtbT/hCB/pAguBNtLi+G3OCM7TjOcHpX7XeUpH3RQIlU5Cr+VdeDyPBYWp7WhC0rWvdvf1bPA4k8V+K8/wX9nZvi3UpNqTjyU46rZ3jFP8bDbdGRW3dWYng9Kkoor1j88CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD8z/APgif/wbvyf8Eefjv4q8bf8AC3V+IX/CT+HxoZs/+EY/sr7P/pMU5l3/AGqbd/qtu3A+9nPGK/TCiigAooooAKKKKACiiigArwH/AIJc/wDKM79nj/smnhz/ANNdtXv1eB/8Et4y3/BM39nc/wDVNPDn/prt6AH/ALHv/Jef2o/+yo2v/qHeGa95rwb9j3/kvP7Uf/ZUbX/1DvDNe80AFFFFABRRRQAUUUUAFVdd1y18M6JealfTx2tjp8D3NxNI21IY0UszMewCgkn0FWq8p/bNhWb9m3xx5lrY3ka6POxjvLxrWNSI2IYMFbLA4Kpj52wMjOaAO5l+Jegw6sdPk1nSY9QEiw/ZWvYln8xiAE2Z3biSABjJyK24ZvPTcAR9a+a/ind2ek3uh6T/AMJR4Blms/FGgW7abbaG0d/5iapZhgszXTkYbLcoxC/KSTlj65J4b+IMs8rW/izwjHbtIxiSTwvPI6Jk7QW+3AMQMAkAZPOB0oA6rWfFFnoE9rHeTR27Xs32eDe2PNk8t5No/wCARueeymqugfETRPFN79n07VtLvptpfZbXsUzBRjJwrE4yQM+49a8c+OfhrUp/Ffw1XXrrwtfX9v4iM7aibaa2WOOO1uJSqWnmsWAVQWkM42sEOxhlareBvFemj4+aDdnxP4I1Szs9D1eWWTSNNGmi0XzLElpWa4kBUgZz8uMEn2APeLfxFZ3euXWmxzRyXlksbzxKctCsgYoWHYNsbH+6awPE/wAevBPgvVbix1bxh4V0u+tWVZre81e3t5oiwBUMruCM7lxnGdw9RXma+OPDutfHnxTfQ/Ei10W1+w6WoW01KwEN0VN0Wy0qOcjIBCkcEd+a4b9pjxct78Tbq1HiK4UxahZyQ2Q1h4rcQrp8lzHKIRe2qcXKRuH3k7lAw3AAB9F6V8ZPC/iDR7rUNN1/RdUsbFlS4nsb+K5SBmIChijEAkkYB5Oa17PxLa6hfXltA4muNPdYrpFOTA7IrhW9CUdWwezA18q6X4jtvFnwr0FbzXItb01vFNks0uqvca5BuPh0XEiOiymRgLgs4QPhJMHGFxWr8MPCsPhu1+Gl9dR28usa5LpWoDUpbljql7v05xcRyoTuZY1ijw2AuwKpGYyzAH0nN4w0u3dlk1DT0dSQytcopUjsQTTbnxjY2d7b28lxDHNdRSTwo0gBljjCl3Hqqh1yeg3L6ivNbn4gfB3ULiSa6t/DdxNOxeWSTRCzSMeSWJiySfU1wP7RdzY+NddtG0vXrmx0W68K3saR2N9FaSOmH2qkIjNwEPl/Ow2p+6iGQVYkA96X4q+Hz4fuNWOrafHpdmUE93LcpFBDvRJE3OxCjcksbDJ5Dqe4rPg/aE8C3N/a2sfjHwpJc3xUW0S6zbM9yWIC7F35bcSAMDkmvln4d3Mf/CqvjM2k3Xh21vP7EifzYVtH8u2TTLXz9iwOxb5QwU/cD4JO4MtdNq3i3xHJpn9qLqUEumXWpWiWTXOlRRwX66dqcn2eONlvIyjSsI9222JBbGCMYAPoDUv2hvA2janPZXnjDwna3drI0M8M2s20ckEinaUdS+VYEYIIyDV6y+LvhvUdItdQt9e0OfTryR4oLuPUYGgldCQ6q4bazKwIIBOCDnFfL/xJisbvxA1zN4sh0xLXXtWtZFjkZ201H1KYyF445DJ8/wC7J2RxPsQ4uE+6+p41lTxN8JFhtJFv9S1LxLr0FrqOl3SpOu6+cSfZoBOrXG/7pjVzgcllIDUAfR3hb4qeH/G0UbaPrGl6l50P2hVtryOVzHx821SSB8w6gYyK6IHIr5b/AGN9Rku/EkMupWt419daXJNZSahc+XNZwN5OYoYDdT+bAwjQ+cnOQVbOOPpDwd4usfHPhux1bTJvtWn6hAlxbzbWXzEYZU7WAYZ9CAR0IB4oAkfxLax6stgZF+2yQNcpBkeY0asqswHoGZRn1IqPXvGem+FdNkvdUvrPTbOPG+4urhIYk+rMQB+JrwH4222lyfGSW/tbi4g1TT106xM0eoTKJZ7i8jd4VjDhSVtYd7qBgLOrEZOa4WxGkXv7MvjJ9CW3exi0XT5ZfsF9DZRJOdHfzHc4IZizDKgFmYjrg0AfU2j/ABg8OeIrq3g0/WNNvproboI4bpGaYbQ+UGfmGwhvlzwc9OaL/wCMXhrTHuFm1vS42tEnluA10n7hYG2zFueNjZBHXIPocfOvgC8XTvjlpq6hrGofZ7k2rSyHU5723m1GNntTZQStFH50gE1s0jquI0WZccMycj4n0RbxFs742dm8Ud1ol5dWvn3NvYnz9SkjtvIH+tVo7UIZJPnLTRuQxYCgD7LvvF1jpk9lFcTxwSai5jtVdgpnYIXIX3Cqx+gNJoPjCw8TQNJY3EV0kcskDGNw2143Mcin/aV1ZSOxU18w6tHp2m+AvCGpXjwNpUfgTV5W03yI5LfTrsS2bTPskK5ljlfYQ7Ls8pgNpZq6n9kuz03SvHuuWMd1omoagtjDcLcadBa7Yo2mdWUvDPIcsygkHb90HnsAfRNFFFABRRRQAUUUUAFFFFABXg//AASy/wCUZX7O/wD2TTw7/wCmy3r3ivB/+CWX/KMr9nf/ALJp4d/9NlvQAn7Hv/Jef2o/+yo2v/qHeGa95rwb9j4/8X5/aj/7Kja/+od4Zr3ndQAUUbqN1ABRRuo3UAFFG6jdQAVDe2FvqUDRXEMNxGxBKSIGUkEEcH0IB/Cpt1G6gBssKTptkRXUMGAYZGQcg/UEA/UU4DFG6jdQBFLYwz3UU7wxPNBuEcjIC0e7g4PUZwM464pZrWO4P7yOOT5SvzKDweo+hwPyqTdRuoAq/wBhWOMfY7XHp5K/4U0aJbC6eX7Pa7pMbj5S7mwMDJxzgcCrm6jdQBWt9LhtZ2eOGCPe/mNtjCktjbuPvtwM+lObTLZ75LpreBrmNDGkpjHmKp6qG6gH0qfdRuoAKiuLOO5Vg0cbeYuxwyg719D6jk8VLuo3UAQx2EMUWxYYVXbswEAG30+ntTbrR7S+uIJprW3mmtWLwu8QZoWPUqSOD7irG6jdQBTXw9YiRm+x2e52LsfJXLMeSTx1Pc96fZaVb2H+pgt4QpYgRxhcFjljx6nk+tWd1G6gCn/YsK26QpDAkMalVRYwFUHqAOmDT9M02PSbWOCGOOGCFBHHHGgVY1AwAAOgA4xVndRuoArvo9nJcrM1rbtMhYrIYhuUsArYOM8gAH1AAps+iWdzAYpLO1kjO0lGiUqdv3eMdscelWt1G6gBklvHK0ZaNGaNt6ErnY2CMj0OCR+JqK20uC1V1SCBFkfzGCxhdz5zuPqc4OfarG6jdQBTvNBtL8jzbW2kGHXDxK3DkFxyP4iAT64GakGmwx3PnRwwxyFdhYIAxGc4z1xnnFWN1G6gAoo3UbqACijdRuoAKKN1G6gAoo3UbqACvB/+CWX/ACjK/Z3/AOyaeHf/AE2W9e8Zrwf/AIJZ/wDKMr9nf/smnh3/ANNlvQBwnxx/ZW+Lfh342eKvF3wb+KVx4Jj+IFzbX+v6Vf8Ahy112xmvYLOGzW6gEjxSQSNbW1tG43sjeQjBUYsW5b/hT/7Yv/Re/D//AIa6z/8AkyiigA/4U/8Ati/9F78P/wDhrrP/AOTKP+FP/ti/9F78P/8AhrrP/wCTKKKAD/hT/wC2L/0Xvw//AOGus/8A5Mo/4U/+2L/0Xvw//wCGus//AJMoooAP+FP/ALYv/Re/D/8A4a6z/wDkyj/hT/7Yv/Re/D//AIa6z/8AkyiigA/4U/8Ati/9F78P/wDhrrP/AOTKP+FP/ti/9F78P/8AhrrP/wCTKKKAD/hT/wC2L/0Xvw//AOGus/8A5Mo/4U/+2L/0Xvw//wCGus//AJMoooAP+FP/ALYv/Re/D/8A4a6z/wDkyj/hT/7Yv/Re/D//AIa6z/8AkyiigA/4U/8Ati/9F78P/wDhrrP/AOTKP+FP/ti/9F78P/8AhrrP/wCTKKKAD/hT/wC2L/0Xvw//AOGus/8A5Mo/4U/+2L/0Xvw//wCGus//AJMoooAP+FP/ALYv/Re/D/8A4a6z/wDkyj/hT/7Yv/Re/D//AIa6z/8AkyiigA/4U/8Ati/9F78P/wDhrrP/AOTKP+FP/ti/9F78P/8AhrrP/wCTKKKAD/hT/wC2L/0Xvw//AOGus/8A5Mo/4U/+2L/0Xvw//wCGus//AJMoooAP+FP/ALYv/Re/D/8A4a6z/wDkyj/hT/7Yv/Re/D//AIa6z/8AkyiigA/4U/8Ati/9F78P/wDhrrP/AOTKP+FP/ti/9F78P/8AhrrP/wCTKKKAD/hT/wC2L/0Xvw//AOGus/8A5Mo/4U/+2L/0Xvw//wCGus//AJMoooAP+FP/ALYv/Re/D/8A4a6z/wDkyj/hT/7Yv/Re/D//AIa6z/8AkyiigA/4U/8Ati/9F78P/wDhrrP/AOTKP+FP/ti/9F78P/8AhrrP/wCTKKKAD/hT/wC2L/0Xvw//AOGus/8A5Mo/4U/+2L/0Xvw//wCGus//AJMoooAP+FP/ALYv/Re/D/8A4a6z/wDkyj/hT/7Yv/Re/D//AIa6z/8AkyiigA/4U/8Ati/9F78P/wDhrrP/AOTKP+FP/ti/9F78P/8AhrrP/wCTKKKAFX4FftceIN1hqH7QlrZ2N4jQ3E+lfDiwtL6FGBBaCaS4lSOQZyrtG4Bwdp6V9YfBD4U6b8Cfgx4R8D6FFNb6J4N0a00PT45ZfNkjt7aFIYgznlmCIuWPU5NFFAH/2Q==
!!文件编辑者留名册:

出于对版权的尊重,以及对编辑者所作出劳动的尊重,请每一版的编辑者在下方留名,格式不限。



---

4

---

第三版编辑者:

第三版引用材料:

---

第二版编辑者:

第二版引用材料:

---

第一版编辑者:Yu Gongde,希望探索宇宙的人

[img[yudade.jpg]]

第一版引用材料:

来源:[[殆知阁|https://github.com/garychowcmu/daizhigev20]]